通过 MCP 为你的 AI 智能体添加 CAPTCHA 求解能力

作者:solvethree阅读需 1 分钟

在 MCP 宿主中将 solvethree-mcp 作为本地 stdio 服务器运行。它让智能体能够请求 CAPTCHA 解答;智能体仍需自行集成浏览器或应用来提交解答。

本页内容

1. 配置本地服务器

官方 @solvethree/sdk 下载包包含 solvethree-mcp 可执行文件。以下配置使用 npx 从提供的软件包 URL 运行它。无需填写托管的 MCP 端点。

  • 确保 MCP 宿主的运行环境中可以使用 npx。
  • 在宿主环境中将 SOLVETHREE_API_KEY 设置为工作区 API 密钥。不要将其放入浏览器代码或提示词中。
  • 在该环境中设置 SOLVETHREE_PROXY。reCAPTCHA 工具从此变量读取单个代理,而不是从工具请求中读取。

对于接受 JSON MCP 配置的宿主,请添加以下服务器条目:

MCP 宿主 · 本地 stdio 配置
{
  "mcpServers": {
    "solvethree": {
      "command": "npx",
      "args": [
        "--yes",
        "--package=https://solvethree.com/downloads/solvethree-sdk-0.1.0.tgz",
        "solvethree-mcp"
      ]
    }
  }
}

对于 Codex,请改用以下 TOML 配置。其中的 env_vars 条目会转发宿主环境中的两个变量,而不会设置它们的值。

Codex · config.toml
[mcp_servers.solvethree]
command = "npx"
args = ["--yes", "--package=https://solvethree.com/downloads/solvethree-sdk-0.1.0.tgz", "solvethree-mcp"]
env_vars = ["SOLVETHREE_API_KEY", "SOLVETHREE_PROXY"]
startup_timeout_sec = 60
tool_timeout_sec = 100

确保这些环境变量可用后,启动或重新加载宿主。检查它是否提供 solvethree_capabilities、solvethree_create_recaptcha、solvethree_create_kasada、solvethree_create_tmpt 和 solvethree_get_task。

2. 创建 reCAPTCHA 任务

创建 reCAPTCHA 任务前,请先配置目标站点,并确保该配置在工作区中处于启用状态。通过 MCP 发送主机名和 action 不会创建该配置。

使用 solvethree_capabilities 查看可用功能。对于 reCAPTCHA v3 Enterprise,请使用以下请求调用 solvethree_create_recaptcha:

工具调用 · solvethree_create_recaptcha
{
  "site": "accounts.example.com",
  "action": "login",
  "requestId": "agent-login-001",
  "waitMs": 0
}

将 accounts.example.com 替换为目标站点,将 login 替换为应用所需的操作值。为此逻辑任务选定一个 requestId,并将其与请求一同保留。将 waitMs 设置为零时,应单独获取结果,而不是在此次调用中等待完成。

每次 MCP 创建调用都需要 requestId,尽管该字段在底层任务 API 中是可选的。请使用 1–64 个 ASCII 字母、数字、下划线或连字符。

3. 获取并提交解答

  1. 1.

    保留返回的任务 ID

    创建任务并不等于获得结果。请保存任务 ID,以便智能体获取同一个任务。

  2. 2.

    调用 solvethree_get_task

    使用创建调用返回的任务 ID。如果状态为 pending 或 solving,请稍后再次获取该任务。这两种状态都不包含可用的解答。

  3. 3.

    处理终态

    状态为 ready 时,将解答传递给浏览器或应用集成。状态为 failed 时,检查 errorCode 和 error,并停止轮询该任务。

对于 reCAPTCHA,通过浏览器或应用请求提交 solution.token。根据返回的 userAgent 和 secChUa 设置该请求的 User-Agent 和 sec-ch-ua 请求头,并复用 SOLVETHREE_PROXY 中配置的代理。如果供应商会轮换出口,请保持该代理会话固定。

Kasada 返回请求头,Ticketmaster TMPT 返回原始 Cookie 值。请使用与你请求的任务相对应的输出;这些结果不能互换。

MCP 服务器不会操控浏览器或填写表单。其宿主会收到私密的解答数据,由你的应用执行提交。请单独检查目标的响应:就绪表示 solvethree 已生成解答,并不代表目标已接受该解答。

恢复超时的创建请求,无需重新开始

连接超时并不意味着任务创建失败。如果已收到任务 ID,请查询该任务。否则,请使用相同的 requestId 和不变的任务输入重新发送同一创建请求,以恢复已有任务。不要仅因响应丢失就生成新 ID。

将同一请求 ID 用于不同的任务输入会导致冲突。如果任务本身失败,请先阅读错误信息,再决定需要修改什么;盲目重新提交无效输入并不能解决问题。有关请求错误与任务失败的区别,请参阅 CAPTCHA API 错误。

运行您的第一个任务。

使用 $5 工作区额度开始体验。

创建工作区
通过 MCP 为你的 AI 智能体添加 CAPTCHA 求解能力 · solvethree