在 Docker 中运行 solvethree MCP 服务器
使用官方带版本号的 SDK 下载包构建本地镜像,然后让 MCP 宿主通过 Docker 启动它。使用 -i 保持 stdin 打开,并省略 -t:服务器通过 stdio 使用 JSON-RPC 通信,而非终端协议。
本页内容
构建本地镜像
将以下内容保存为 Dockerfile。它会在 Node 22 上安装官方软件包,切换到非 root 的 node 用户,并将 solvethree-mcp 设为容器入口点。构建和运行命令见下文。
FROM node:22.23.4-alpine
RUN npm install --global https://solvethree.com/downloads/solvethree-sdk-0.1.0.tgz
USER node
ENTRYPOINT ["solvethree-mcp"]
# Build: docker build -t solvethree-mcp-local .
# Forward variables already set in the host; do not add their values to this file.
# Run: docker run --rm -i -e SOLVETHREE_API_KEY -e SOLVETHREE_PROXY solvethree-mcp-local运行前,请在启动 Docker 的环境中,将 SOLVETHREE_API_KEY 设为工作区 API 密钥,将 SOLVETHREE_PROXY 设为你的代理。每个 -e NAME 都会传入一个现有变量,而不会为其赋值。请勿将凭据写入 Dockerfile 或镜像。
镜像在本地构建为 solvethree-mcp-local,无需 Docker Hub 账户。运行它不会创建托管的 MCP 端点,也不会添加浏览器自动化功能。
让 MCP 宿主启动 Docker
在 MCP 宿主中配置 stdio 服务器。使用 Docker 作为命令,而不是 solvethree-mcp:镜像的入口点会在容器内启动该可执行文件。
| 设置 | 值 |
|---|---|
| 命令 | docker |
| 参数,按顺序排列 | run, --rm, -i, -e, SOLVETHREE_API_KEY, -e, SOLVETHREE_PROXY, solvethree-mcp-local |
不要添加 -t。宿主需要使用容器的 stdin 和 stdout 进行 JSON-RPC 通信。--rm 会在容器退出时将其删除。
MCP 宿主进程必须能访问这两个环境变量。仅在终端中设置它们对从其他位置启动的宿主无效,除非该宿主继承了这些变量。如果宿主限制环境变量传入,请允许这两个变量名。
对于 Codex 风格的 TOML 配置,请使用 mcp_servers.solvethree 表,并采用上述命令和参数。在 env_vars 中包含这两个变量名,将 startup_timeout_sec 设为 60,将 tool_timeout_sec 设为 100。有关底层服务器约定,请参阅 MCP 集成文档。
请求任务并传递结果
- 1.
检查可用工具
连接后调用
solvethree_capabilities。服务器提供求解工具和任务获取功能;它不会操控浏览器或填写表单。 - 2.
- 3.
创建一个逻辑任务
使用
site、action和requestId调用solvethree_create_recaptcha;recaptchaType和waitMs为可选参数。此工具从SOLVETHREE_PROXY读取唯一的代理配置。每次创建调用最多创建一个任务。如果创建超时,请保持输入参数不变,复用相同的请求 ID 来恢复现有任务,而不是另建一个任务。 - 4.
等待可用结果
如果任务状态为
pending或solving,请使用solvethree_get_task获取任务。只有ready状态才包含可用的解决方案。状态为failed时,请停止轮询,并检查errorCode和error,然后再决定如何调整。 - 5.
从应用程序提交
对于 reCAPTCHA,请提交
solution.token,而不是任务 ID。使用返回的userAgent和secChUa身份信息,并使用求解成功时所用的代理。任务就绪表示已生成解决方案,并不代表目标接受了应用程序请求。
MCP 宿主会接收私密的解决方案数据。请勿将这些结果写入共享日志;应用程序仍需负责将其提交到预期目标。
来源与 API 参考
运行您的第一个任务。
使用 $5 工作区额度开始体验。