Skip to main content
Glama

Solve an hCaptcha

solve_hcaptcha

Solves hCaptcha challenges to return a valid token. Specify sitekey and URL; if solving exceeds the wait time, returns an ID to retrieve the result later.

Instructions

Solve an hCaptcha and return the token. Waits up to wait_seconds; if the solve is still running then, returns its id and status: call get_solve with the id rather than solving again. Only successful solves are charged.

Input Schema

NameRequiredDescriptionDefault
urlYesThe URL of the page the captcha is on.
typeNohcaptcha (default) or hcaptcha_enterprise.
proxyNoProxy to solve through, as a URL: scheme://user:pass@host:port (http, https, socks5, socks5h or socks4).
rqdataNoEnterprise only: the rqdata the site passes to its widget, if it passes one.
sitekeyYesThe hCaptcha sitekey on the page.
user_agentNoThe user agent of the browser that loaded the page, as is. Leave out if you do not have it.
wait_secondsNoSeconds to wait for the result, 0-50. Default 45. 0 returns right after submitting.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.13.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnly=false and openWorld=true, but the description adds information annotations can't carry: the timeout semantics of wait_seconds, the partial-result shape (id + status), and the billing rule that only successful solves are charged. The billing disclosure is a materially important behavioral trait for an agent deciding whether to retry.

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

Conciseness5/5

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

Three sentences, no filler, and the core contract (returns token, or id+status after waiting) is front-loaded ahead of the fallback instruction and the billing note. Every sentence earns its place.

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 7 params, no output schema, and sparse annotations, the description does a good job of describing both return shapes and the charging rule. It stops short of describing failure behavior — what is returned or what to do when a solve errors out rather than merely running long — which matters for a non-idempotent, open-world operation.

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%, including the wait_seconds 0-50 range, default 45, enum for type, and the proxy URL format. The description only restates wait_seconds, adding no meaning beyond the schema. Baseline 3 is correct when the schema does all the work.

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?

States a specific verb and resource ("Solve an hCaptcha and return the token") and immediately distinguishes the async path by naming the sibling get_solve. An agent can tell what this does and which sibling handles the follow-up without opening any schema.

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?

Gives an explicit conditional rule: if the solve is still running after wait_seconds, call get_solve with the id rather than solving again. That is a real when-to-use/when-not instruction. It doesn't cover the other siblings (cancel_solve, report_solve_outcome), so not a full 5.

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