LLM Captcha Solver Server - A system for dispatching captcha solving tasks to human solvers via an Electron client, with MCP (Model Context Protocol) integration for LLM-based task management
Three tools with complete input schemas and descriptions, but significant quality gaps. Tool names follow verb_noun pattern (solve_*), which is good. Descriptions are present (80-120 chars) but lack actionable context for LLM selection, they state WHAT but not WHEN or WHY to use each tool. Parameters are typed and mostly described, but lack constraints (enums, ranges, format hints). No output schemas documented. Error handling is absent, no guidance on retryability, failure modes, or recovery paths. The tools appear to be wrappers around a captcha-solving service with human-in-the-loop dispatch, but this critical architectural detail is buried in descriptions rather than surfaced clearly.
Solve a GeeTest captcha (v3 or v4). Returns the validation tokens.
Solve a reCAPTCHA v2 challenge. Dispatches the task to a human solver via Electron client and returns the g-recaptcha-response token.
Solve a reCAPTCHA v3 challenge. Returns a g-recaptcha-response token with the requested minimum score.
No output schemas documented. LLMs cannot plan downstream operations or extract return values. What fields does solve_recaptcha_v2 return? Is it {token: string} or {token, challenge, timestamp}?
Descriptions lack WHEN/WHY context. 'Solve a reCAPTCHA v2 challenge' states WHAT but not when to call this vs v3, or what prerequisites exist. LLMs cannot distinguish between v2 and v3 without explicit guidance.
No error handling or recovery guidance. What happens if the human solver times out? Is it retryable? Should the agent ask the user? No error classification provided.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Parameters lack constraints. 'minScore' accepts 0.3, 0.7, 0.9 (enum present, good), but 'userAgent' and 'cookies' are free-form strings with no format hints. 'apiDomain' defaults to 'google.com' but no enum of valid values provided.
GeeTest v4 'initParameters' is typed as 'object' with no schema. LLMs cannot know what fields are required or valid. Must document the structure (e.g. {captcha_id: string, ...}).