Docker で solvethree MCP サーバーを実行する

著者:solvethree読了時間:1分

公式のバージョン付き SDK ダウンロードからローカルイメージをビルドし、MCP ホストから Docker で起動します。-i で標準入力を開いたままにし、-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 サーバーを設定してください。コマンドには solvethree-mcp ではなく Docker を使用します。コンテナー内の実行ファイルは、イメージのエントリーポイントが起動します。

MCP ホストの起動設定
MCP ホストの起動設定
設定値
コマンドdocker
引数(指定順)run, --rm, -i, -e, SOLVETHREE_API_KEY, -e, SOLVETHREE_PROXY, solvethree-mcp-local

-t は追加しないでください。ホストは 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 の解決をリクエストする前に、サイトプロファイルで有効なプロファイルを設定してください。ホスト名、キャプチャアクション、reCAPTCHA の種類を一致させてください。1 つのドメインプロファイルですべてのアクションに対応できるとは限りません。タスクを送信してもプロファイルは作成されません。この前提条件については、プロファイル設定ガイドで説明しています。

  3. 3.

    論理的に 1 件のタスクを作成する

    site、action、requestId を指定して solvethree_create_recaptcha を呼び出してください。recaptchaType と waitMs は任意です。このツールは、使用する単一のプロキシを SOLVETHREE_PROXY から読み取ります。各作成呼び出しで作成されるタスクは最大で 1 件です。作成がタイムアウトした場合は、入力を変更せずに同じリクエスト ID を再利用し、別のタスクを作成するのではなく、既存のタスクを復旧してください。

  4. 4.

    利用可能な結果を待つ

    タスクが pending または solving の場合は、solvethree_get_task で取得してください。利用可能な解決結果が含まれるのは ready のみです。failed の場合はポーリングを停止し、errorCode と error を確認してから、変更内容を判断してください。

  5. 5.

    アプリケーションから送信する

    reCAPTCHA では、タスク ID ではなく solution.token を送信してください。返された userAgent と secChUa の識別情報を、解決に成功したプロキシで使用してください。タスクの準備ができたことは、解決結果が生成されたことを意味し、送信先がアプリケーションのリクエストを受け入れたことを意味するわけではありません。

MCP ホストは非公開の解決データを受け取ります。これらの結果を共有ログに含めないでください。目的の送信先への送信は、引き続きアプリケーション側の責任です。

最初のタスクを実行しましょう。

$5のワークスペースクレジットで始められます。

ワークスペースを作成
Docker で solvethree MCP サーバーを実行する · solvethree