在 Docker 中运行 solvethree MCP 服务器

作者:solvethree阅读需 1 分钟

使用官方带版本号的 SDK 下载包构建本地镜像,然后让 MCP 宿主通过 Docker 启动它。使用 -i 保持 stdin 打开,并省略 -t:服务器通过 stdio 使用 JSON-RPC 通信,而非终端协议。

本页内容

构建本地镜像

将以下内容保存为 Dockerfile。它会在 Node 22 上安装官方软件包,切换到非 root 的 node 用户,并将 solvethree-mcp 设为容器入口点。构建和运行命令见下文。

Dockerfile · 本地 stdio 服务器
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:镜像的入口点会在容器内启动该可执行文件。

MCP 宿主启动设置
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. 1.

    检查可用工具

    连接后调用 solvethree_capabilities。服务器提供求解工具和任务获取功能;它不会操控浏览器或填写表单。

  2. 2.

    准备 reCAPTCHA 配置

    对于 reCAPTCHA,请先在站点配置中设置有效配置,再请求求解。配置需匹配主机名、采集 action 和 reCAPTCHA 类型;不要假设一个域名配置能够覆盖所有 action。发送任务不会创建配置。配置设置指南介绍了这一前提条件。

  3. 3.

    创建一个逻辑任务

    使用 site、action 和 requestId 调用 solvethree_create_recaptcha;recaptchaType 和 waitMs 为可选参数。此工具从 SOLVETHREE_PROXY 读取唯一的代理配置。每次创建调用最多创建一个任务。如果创建超时,请保持输入参数不变,复用相同的请求 ID 来恢复现有任务,而不是另建一个任务。

  4. 4.

    等待可用结果

    如果任务状态为 pending 或 solving,请使用 solvethree_get_task 获取任务。只有 ready 状态才包含可用的解决方案。状态为 failed 时,请停止轮询,并检查 errorCode 和 error,然后再决定如何调整。

  5. 5.

    从应用程序提交

    对于 reCAPTCHA,请提交 solution.token,而不是任务 ID。使用返回的 userAgent 和 secChUa 身份信息,并使用求解成功时所用的代理。任务就绪表示已生成解决方案,并不代表目标接受了应用程序请求。

MCP 宿主会接收私密的解决方案数据。请勿将这些结果写入共享日志;应用程序仍需负责将其提交到预期目标。

运行您的第一个任务。

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

创建工作区
在 Docker 中运行 solvethree MCP 服务器 · solvethree