Skip to main content
Glama

solve_captcha

Solve web CAPTCHA challenges (Turnstile, hCaptcha, reCAPTCHA v2, Arkose, Cloudflare) and return a valid solution token. Automatically retries once on failure without double charging. Requires x402 payment on Base.

When to use: Use when an agent encounters a bot wall or CAPTCHA challenge during automated web workflows. When NOT to use: Do NOT use for non-CAPTCHA auth, 2FA/OTP codes, or general login forms.

Parameters:

  • type (string, required): CAPTCHA type ('turnstile', 'hcaptcha', 'recaptcha', 'arkose', 'cloudflare').

  • sitekey (string, required): Public sitekey extracted from the target page DOM.

  • url (string, required): Full target webpage URL hosting the challenge.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesThe full target page URL where the CAPTCHA challenge is hosted.
typeYesThe specific type of CAPTCHA challenge encountered on the target page.
sitekeyYesThe CAPTCHA sitekey parameter extracted from the target page DOM or iframe.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
tokenYesThe resulting CAPTCHA response token to submit to the form
methodNoSolving method or backend engine used
solvedYesWhether the CAPTCHA challenge was successfully solved
elapsedNoTime taken in seconds to solve the challenge

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  2. Changed8 schema fields changed
    • addedInput schema / properties / sitekey / examples
      Added value: +[
      +  "0x4AAAAAAAx..."
      +]
    • addedInput schema / properties / sitekey / maxLength
      Added value: +256
    • addedInput schema / properties / sitekey / minLength
      Added value: +5
    • addedInput schema / properties / type / examples
      Added value: +[
      +  "turnstile",
      +  "recaptcha",
      +  "hcaptcha"
      +]
    • addedInput schema / properties / url / examples
      Added value: +[
      +  "https://example.com/login"
      +]
    • addedInput schema / properties / url / format
      Added value: +"uri"
    • addedInput schema / properties / url / maxLength
      Added value: +1000
    • addedInput schema / properties / url / minLength
      Added value: +8
  3. Changed5 schema fields changed
    • addedInput schema / properties / sitekey / description
      Added value: +"The CAPTCHA sitekey parameter extracted from the target page DOM or iframe."
    • addedInput schema / properties / type / description
      Added value: +"The specific type of CAPTCHA challenge encountered on the target page."
    • addedInput schema / properties / type / enum
      Added value: +[
      +  "turnstile",
      +  "hcaptcha",
      +  "recaptcha",
      +  "arkose",
      +  "cloudflare"
      +]
    • addedInput schema / properties / url / description
      Added value: +"The full target page URL where the CAPTCHA challenge is hosted."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "elapsed": {
      +      "description": "Time taken in seconds to solve the challenge",
      +      "type": "number"
      +    },
      +    "method": {
      +      "description": "Solving method or backend engine used",
      +      "type": "string"
      +    },
      +    "solved": {
      +      "description": "Whether the CAPTCHA challenge was successfully solved",
      +      "type": "boolean"
      +    },
      +    "token": {
      +      "description": "The resulting CAPTCHA response token to submit to the form",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "solved",
      +    "token"
      +  ],
      +  "type": "object"
      +}
  4. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Given all-false annotations (readOnlyHint, idempotentHint, destructiveHint), the description carries the full behavioral burden and delivers: 'Automatically retries once on failure without double charging' and 'Requires x402 payment on Base' disclose retry, billing, and payment/auth semantics that the structured annotations cannot express.

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?

The description front-loads the core purpose, followed by a compact retry/billing note and clearly labeled When to use/When NOT to use sections. The redundant inline Parameters section duplicates schema coverage that is already 100%, adding length without new value, which prevents a 5.

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

Completeness4/5

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

With an output schema present and the parameter schema fully documented, the description need not explain return values. It covers purpose, usage boundaries, payment, and retry behavior. Minor gaps remain: 'failure' for the retry condition is undefined, and 'reCAPTCHA v2' doesn't exactly match the enum value 'recaptcha'.

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

Parameters3/5

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

Schema description coverage is 100% (all three params have descriptions, examples, and an enum for type), so the baseline is 3. The inline Parameters section merely restates the schema — in one spot less precisely ('sitekey extracted from the target page DOM' vs the schema's 'DOM or iframe') — without adding new meaning.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Solve web CAPTCHA challenges (Turnstile, hCaptcha, reCAPTCHA v2, Arkose, Cloudflare) and return a valid solution token.' It enumerates concrete CAPTCHA types and the 'When NOT to use' boundary distinguishes it from auth-related siblings, making tool selection unambiguous.

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

Usage Guidelines4/5

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

Explicit 'When to use' and 'When NOT to use' sections state that the tool is for bot walls/CAPTCHA challenges and rule out non-CAPTCHA auth, 2FA/OTP, and general login forms. It stops short of naming a specific alternative sibling tool (e.g., get_captcha_pricing) for those excluded cases, which keeps it from a 5.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources