ruflo-captcha-solver-mcp-tool
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_onceControles 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 startEn 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-RPCsrc/tool.js— definición de la herramienta MCP y mapeo seguro de erroressrc/recovery.js— contrato de recuperación acotadotests/— pruebas unitarias sin conexiónexamples/— llamada a la herramienta con solo fixtures
Pruebas
npm test
npm run smokeLas 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 toolcaptcha_solver_recover_onceC
Perform one bounded CAPTCHA recovery for an explicitly authorized Ruflo task.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | ||
| budget | No | ||
| context | Yes | ||
| authorization | Yes | ||
| challengeDetected | Yes |
TDQS
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.
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.
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.
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.
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.
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 tool update
v1.0.0- First observed
captcha_solver_recover_once
TDQS
Scored across 1 tool
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.
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.
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.
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
Related MCP Connectors
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Remote MCP for C2PA intake verifier MCP, structured receipts, audit logs, and reviewer-ready evidenc
A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready
Verified component catalog over remote MCP: agents pick component ids and get a stamped project repo that builds. Connect at https://www.botkelp.com/mcp. Auth: MCP OAuth 2.1, or a Bearer bk_live_ API key; initialize and tools/list are open.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI agents to manage secrets and credentials from a secure vault via MCP tools over stdio.7MIT
- AlicenseNot gradedqualityDmaintenanceExposes a user-authenticated Microsoft 365 Copilot Chat browser session as a stdio MCP server, enabling AI-powered chat interactions via MCP tools like copilot_chat and copilot_status.2MIT
- AlicenseCqualityAmaintenanceMCP stdio bridge for the Delx Protocol: continuity, witness, recovery, ontology and passport tools.10037 npmMIT
- AlicenseBqualityDmaintenanceA local, evidence-driven MCP runtime and control plane for open-source maintainers that provides workspace-bounded tools including controlled file operations, command execution, validation primitives, durable execution records, and human review workflows via stdio and Streamable HTTP transports.33MIT