Skip to main content
Glama
normal-sugar

ruflo-captcha-solver-mcp-tool

by normal-sugar

Cómo añadir una herramienta de resolución de CAPTCHA a Ruflo

Una herramienta complementaria MCP stdio ejecutable que prioriza los fixtures, con un intento de recuperación, sondeo acotado, validación estructurada y traspaso a un humano.

English · 简体中文 · 日本語 · Español · Português · 한국어

Introducción

Cuando un flujo de trabajo autorizado de Ruflo encuentra una interrupción por CAPTCHA, necesita una herramienta de recuperación acotada que devuelva un resultado validado o se detenga para revisión humana. Este servidor MCP complementario muestra cómo una tarea de Ruflo puede llamar a CapSolver solo después de una autorización explícita y de una señal de desafío admitida. No modifica Ruflo ni afirma ninguna asociación oficial. El objeto de tarea de la API sigue siendo revisado por quien llama, de modo que el ejemplo no inventa campos del producto.

Related MCP server: M365 Copilot Web Bridge

Características

  • Una herramienta MCP: captcha_solver_recover_once

  • Controles explícitos de autorización y de desafío

  • ID de recuperación estable para idempotencia

  • Una llamada de creación y un máximo de cinco sondeos de resultado

  • Tiempos de espera, errores estructurados y traspaso a un humano

  • Fixtures sin conexión; no se requiere ninguna clave ni objetivo reales

Cómo funciona

Ruflo enruta una tarea aprobada al servidor stdio local. La herramienta valida la autorización, el estado del desafío, el contexto y el presupuesto antes de usar el contrato oficial de creación de tareas. Solo acepta una solución lista; de lo contrario, sondea dentro del presupuesto configurado y se detiene de forma segura.

Arquitectura

Ruflo → MCP tools/call → policy gates → CapSolver client → result validator → resume or human handoff

Inicio rápido

npm test
npm run smoke
CAPSOLVER_API_KEY=replace_me npm start

En la interfaz web de Ruflo, abre MCP (n) → Añadir servidor, selecciona un servidor stdio y usa node src/server.js como comando local. Ruflo también documenta endpoints HTTP y SSE; este repositorio implementa deliberadamente solo stdio.

Uso

Usa examples/tool-call.json como plantilla de fixture. Reemplaza task únicamente con un objeto de tarea revisado según el contrato oficial de la solicitud createTask. El sondeo de resultados sigue el ciclo de vida oficial de getTaskResult.

Ejemplo de salida

{"ok":true,"status":"ready","recoveryId":"qa-run-0001","polls":1,"solution":{"fixtureResult":"ok"}}

Escenarios admitidos

Fixtures de prueba propios, QA explícitamente autorizado y automatización proporcionada contra objetivos aprobados. Los estados no admitidos se detienen para revisión humana.

Estructura del proyecto

  • src/server.js — enrutador stdio JSON-RPC

  • src/tool.js — definición de la herramienta MCP y mapeo seguro de errores

  • src/recovery.js — contrato de recuperación acotado

  • tests/ — pruebas unitarias sin conexión

  • examples/ — llamada a la herramienta con solo fixtures

Pruebas

npm test
npm run smoke

Las pruebas utilizan clientes inyectados y nunca llaman a una API real.

Solución de problemas

AUTHORIZATION_REQUIRED, NO_SUPPORTED_CHALLENGE, DUPLICATE_RECOVERY, TIMEOUT y BUDGET_EXHAUSTED son señales de detención. Revisa la tarea y traspásala a un humano en lugar de reintentar indefinidamente.

Uso responsable

Usa únicamente datos públicos, sistemas propios u objetivos cubiertos por una autorización escrita explícita. Respeta las políticas de acceso, los términos, los límites de frecuencia, los límites de retención y las decisiones humanas de detención. No uses este ejemplo para datos privados, credenciales, información personal sensible, recopilación sin restricciones ni acceso no autorizado.

Contribuciones

Mantén los cambios que prioricen los fixtures, sean acotados y cierren ante fallos. Ejecuta ambas comprobaciones antes de enviar un pull request.

Seguridad

Nunca confirmes claves, cookies, perfiles de navegador, URLs de objetivos privados ni respuestas de producción. Consulta SECURITY.md.

Conclusión

Esta herramienta complementaria proporciona a Ruflo un pequeño límite de recuperación auditable, al tiempo que mantiene explícitos el enrutamiento, los presupuestos, la validación y el control humano. Para un adaptador de producción autorizado, confirma cada campo de la tarea contra la documentación de CapSolver antes de usarlo.

Nota del mantenedor

Desarrollador que comparte ejemplos de integración con CapSolver.

Licencia

MIT

Available Tools

1 tool
captcha_solver_recover_onceC

Perform one bounded CAPTCHA recovery for an explicitly authorized Ruflo task.

NameRequiredDescriptionDefault
taskYes
budgetNo
contextYes
authorizationYes
challengeDetectedYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral disclosure burden. It mentions 'bounded' (implying a polling limit) and 'recovery' (implying a state change), but fails to disclose side effects, failure modes, whether the operation is destructive, or what happens if authorization is insufficient. An agent is left guessing about the tool's actual impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A tightly written single sentence that front-loads the action and scope. Every word earns its place, avoiding filler or redundant phrasing. It is appropriately concise for the action described, though it sacrifices explanatory depth for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, nested objects, no output schema, no annotations), the description is grossly insufficient. It does not explain what 'CAPTCHA recovery' entails, how the polling budget works, what constitutes a valid 'task', or what the response will be. An agent cannot reliably construct a correct invocation from this description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description provides no parameter-level explanation. The terms 'authorization', 'challengeDetected', 'task', 'context', and 'budget' appear in the schema, but the description gives no hints about their meanings, relationships, or expected values. The agent must infer everything from the schema alone, which the description should supplement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Perform') and a clear resource ('CAPTCHA recovery'), with a scope constraint ('one bounded') and a precondition ('explicitly authorized Ruflo task'). It clearly communicates the core action, though 'Ruflo' is undefined jargon that may confuse an agent outside that domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it should be used only when a CAPTCHA is detected and authorization is explicit, as reflected in the schema constants. However, it gives no explicit when-not-to-use guidance, no mention of alternatives (though no siblings exist), and no context about when recovery would fail or should be retried.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • First observedcaptcha_solver_recover_once

TDQS

C2.9/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no possibility of confusion between tools. The tool's purpose is specific (recover once) even if the underlying 'Ruflo task' is opaque.

Naming Consistency5/5

With a single tool, naming consistency is trivially maintained. The name 'captcha_solver_recover_once' follows a clear verb_noun_adverb pattern without conflicting conventions.

Tool Count2/5

A single tool is far too few for a CAPTCHA solver domain. Typical workflows require multiple operations (solve, verify, status), so this feels like a deliberately minimal or unfinished server.

Completeness1/5

The sole tool covers a narrow 'recover once' action, but lacks standard CAPTCHA operations like solving, verification, or result retrieval. The surface is severely incomplete for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers