cheerio-mcp-bridges
cheerio-mcp-bridges
4つの「狭いツール」MCPサーバー。ターミナルGUIを操作できないオーケストレーターエージェント(例:Cowork内で動作するClaude)が、このマシンにインストール・ログイン済みの4つのコーディングCLIを駆動できるようにします。
Server | 内部呼び出し | 外部ツール | 言語 |
|
|
| Node.js |
|
|
| Node.js |
|
|
| Node.js |
|
|
| Node.js |
4つのブリッジは独立しており、すべてをインストールする必要はありません。 まず npm run doctor を実行して、このマシンで利用可能なCLIを確認し、対応するブリッジのみを有効にしてください。
4つのサーバーはそれぞれ単一で範囲が限定されたツール(汎用の run_command ではありません)を公開します。できるのは「プロンプトをそのエージェントに送る」ことだけです。残りのリスクは、基盤となるCLIがプロンプトを受け取った後に何ができるかに依存するため、デフォルトの姿勢はやや保守的です。
設計のポイント
作業ディレクトリはサーバーが固定:cwd は環境変数(
PI_BRIDGE_CWD/AGY_BRIDGE_CWD/CODEX_BRIDGE_CWD/COPILOT_BRIDGE_CWD)から取得し、呼び出し側のプロンプトでは変更できません。確定的なセッション継続:
pi:サーバーがUUIDを生成 →
--session-id(piは「存在しなければ作成」をサポート)、初回呼び出しでIDを返却。以降は同じIDで継続。「直近のものを続ける」という曖昧な意味に依存しません。agy:事前にIDを指定できません。初回実行後に
--output-format stream-jsonのconversation_idから取得して返却。以降は--conversation <id>で継続。codex:初回実行後に
thread.startedイベントのthread_idから取得して返却。以降はcodex exec resume <id>で継続。copilot:サーバーがUUIDを生成 →
--session-id、初回呼び出しでIDを返却。以降は同じIDで継続。
ゼロシェルインジェクション:4つとも
shell:falseで直接spawnし、プロンプトは単一のargv要素として渡すため、シェルの特殊文字は一切解釈されません。保守的な権限フラグ:
デフォルトでファイルの読み書きを許可(ユーザーの選択に従う)が、書き込み/危険な能力は段階的に制御。
pi はデフォルトでプロジェクト信頼
-a(approve_projectで有効化)を付けない。agy はデフォルトで
--dangerously-skip-permissionsを付けない。ワークスペースの読み書きは自動許可、シェルコマンドはゲート付きのまま。dangerously_allow_all:trueの場合のみ全許可。codex はデフォルトのサンドボックスが
read-only(danger-full-accessは明示的に指定が必要)。copilot はデフォルトで
--allow-all-toolsのみ(非対話に必須)、--allow-all(paths + urls含む)は付けない。後者はdangerously_allow_all:trueの場合のみ。
監査:呼び出しごとに1行のJSONLを
logs/<pi|agy|codex|copilot>-YYYYMMDD.jsonlに書き込み(プロンプト、セッション/スレッドID、終了コード、所要時間、使用量)。
ハマったポイント(実測による)
stdinは閉じなければならない:CLIはパイプされたstdinを追加のコンテキストとして扱うため、Nodeのspawnで開いたstdinパイプを残すとCLIがEOFを待ってハングします。解決策:
stdio: ['ignore','pipe','pipe']。piの拡張機能はデフォルトで無効:対話型拡張機能(例:
auto-annotate/plannotator)はヘッドレスモードでハングします(決して表示されないUIを待つ)。そのためデフォルトで--no-extensionsを付け、必要な場合のみenable_extensions:trueで有効化。codexは
--skip-git-repo-check必須:cwdがgitリポジトリでない場合(例:C:/Cheerio)、このフラグがないとエラーで終了します。copilotの非対話モードでは必ず
--allow-all-tools:ドキュメントに明記されている通り、非対話モードではこれが必須で、付けないとユーザーの権限確認を待ってハングします。ブリッジはデフォルトで--allow-all-toolsを付けますが、--allow-all(paths + urls含む)はdangerously_allow_all:trueの場合のみ有効。copilotのMCPサーバー読み込みは遅い:非対話モードでもcopilotはすべてのMCPサーバー(playwright、notion、tavilyなど)を読み込むため、起動だけで10〜30秒かかります。タイムアウトを短く設定すると、MCP読み込み中に強制終了されます。
copilotのデフォルトauto-routingはクォータに抵触する可能性あり:モデルを指定しない場合、copilotのhydraルーターが自動でモデルを選択します(例:
gpt-5-mini)。そのモデルの割り当てが尽きていると、直接失敗します。呼び出し側でモデルを明示的に指定することを推奨。Copilot/Codexは非対話で残り総クォータを照会できない:
Copilot:
copilot billing/copilot limitsはヘルプトピックであり、対話モードのUIでのみ有効。非対話CLIにはcopilot usageのようなコマンドはありません。ブリッジはmodel.call_failureイベント内のquotaSnapshotsから「今回失敗した時点のスナップショット」を取得できるのみで、残りを能動的に照会することはできません。Codex:
codex login statusはログイン方法のみ表示(Logged in using ChatGPT)。使用量/クォータ照会は不可。codex doctorはインストール診断のみ。ブリッジのturn.completed.usageはそのターンのトークン使用量のみで、残りクォータは不明。
エンタープライズ級TLSインターセプトプロキシで
npm installが失敗する可能性:一部の組織ではTLS検査プロキシ(例:セキュリティベンダーの証明書インターセプトソリューション)を使用してHTTPSトラフィックを中間者復号しています。これによりNode.jsのTLS検証が失敗し、npm installがUNABLE_TO_GET_ISSUER_CERT_LOCALLYやcertificate chain incompleteなどのエラーを報告します。解決策:環境変数NODE_EXTRA_CA_CERTSに会社の完全な証明書チェーンファイル(PEM形式)を設定します。必要なのはCA中間証明書(intermediate cert)であり、リーフ証明書だけでは不十分なことに注意。GitHub Copilot EnterpriseのIP許可リストがCLIアクセスをブロックする可能性:GitHub Copilot EnterpriseアカウントでIP許可リストが有効になっている場合、
ask_copilotがAPIで直接ブロックされる可能性があります(エラーメッセージは "enterprise has an IP allow list enabled, and your IP address is not permitted" など)。これはブリッジやMCPの設定とは無関係で、GitHub Enterprise管理者に現在の出口IPが許可リストに含まれているか、特定のVPNや社内ネットワークを経由する必要があるかを確認する必要があります。
クロスマシンインストール(ゼロから)
4つのブリッジは独立しています。まず
npm run doctorを実行して、このマシンで利用可能なCLIを確認し、対応するブリッジのみをMCPクライアント設定に登録してください。インストールされていないものは追加しないでください。
前提条件
Node.js ≥ 18(
node:testとESモジュールをサポート)npm ≥ 9
Step 1:Clone & インストール
git clone https://github.com/CheerioCorner/cheerio-mcp-bridges.git
cd cheerio-mcp-bridges
npm installStep 2:利用可能なCLIを確認
npm run doctorテーブルが出力され、4つのCLIそれぞれが見つかったか、--version が正常に実行できるか、どのブリッジを有効にするのが推奨されるかが表示されます。
Step 3:必要なCLIをインストール(まだの場合)
以下は各CLIのインストールとログイン方法です。インストールされていないものはスキップしてください。すべてをインストールする必要はありません。
pi(earendil-works/pi)
npm install -g @earendil-works/pi-coding-agent
pi # 首次啟動會引導登入確認:pi --version または pi --help
agy(Google Antigravity CLI)
# 請參考官方文件安裝,通常是一個獨立執行檔
# https://github.com/nicholasareed/antigravity
agy # 首次啟動會引導 Google 帳號授權確認:agy --version
codex(OpenAI Codex CLI)
# 請參考 OpenAI 官方文件安裝
# Windows 通常安裝在 %LOCALAPPDATA%/Programs/OpenAI/Codex/
codex login # 會引導 ChatGPT 帳號授權確認:codex --version、codex login status
copilot(GitHub Copilot CLI)
npm install -g @github/copilot-cli
copilot login # 會引導 GitHub 帳號授權確認:copilot --version
Step 4:ブリッジを選択的に有効化
必要なブリッジの設定を mcp-config.example.json からコピーして、MCPクライアント設定(例:~/.mcp.json または .mcp.json)に貼り付けます。
4つすべてをコピーしないでください。 このマシンにインストール・ログイン済みのCLIに対応するブロックのみをコピーし、パスと環境変数を調整してください。
例えば、piとcopilotのみインストールしている場合は、pi-bridge と copilot-bridge の2つのブロックのみを追加します。
Step 5:ブリッジが正常に動作することを確認
MCPクライアントを起動したら、対応するツールを使って小さなプロンプトを送信してテストします。
ask_pi:{ "prompt": "Reply only: pong" }ask_agy:{ "prompt": "Reply only: pong" }ask_codex:{ "prompt": "Reply only: pong" }ask_copilot:{ "prompt": "Reply only: pong" }
pong の応答と1行のブリッジメタデータが返ってくるはずです。エラーが返ってきた場合は、以下を確認してください。
CLI実行ファイルのパス(環境変数
*_BRIDGE_ENTRY)が正しいかCLIがログイン済みか
cwd環境変数(
*_BRIDGE_CWD)が存在するか
クイックスタート
cd C:/Cheerio/Claude/mcp-bridges # 或你 clone 的路徑
npm install
npm run doctor # 檢查哪些 CLI 可用
npm test # 執行 parser/arg-builder 單元測試(不花 API 額度)MCPクライアントへの登録
mcp-config.example.json を参照してください。これはメニューです。このマシンに実際に存在するCLIに基づいて、対応するブロックのみをコピーしてMCPクライアント設定(.mcp.json)に貼り付け、実際のパスに合わせて調整してください。4つすべてをコピーする必要はありません。
ツールインターフェース
ask_pi
パラメータ | 型 | デフォルト | 説明 |
| string | — | piに送る指示(必須) |
| string | 自動生成 | 前回返された値を指定すると同じ会話を継続 |
| boolean | false | trueの場合、 |
| string | — | モデルを上書き |
| boolean | false | プロジェクトのローカルリソースを信頼するか(pi -a) |
| boolean | false | 拡張機能を読み込むか(ハングのリスクあり) |
| number | 300000 | ハードタイムアウト |
戻り値:piの最終テキスト + 1行の pi-bridge metadata(session_id を含む)。
ask_agy
パラメータ | 型 | デフォルト | 説明 |
| string | — | agyに送る指示(必須) |
| string | 自動取得 | 前回返された値を指定すると継続 |
| string | — | model slug( |
| low|medium|high | — | 推論強度 |
| boolean | false | ターミナルサンドボックス制限を有効化(--sandbox) |
| boolean | false | 危険:すべてのツール権限を自動承認(シェル含む) |
| number | 300000 | ハードタイムアウト(agy --print-timeoutと同期) |
戻り値:agyの最終応答 + 1行の agy-bridge metadata(conversation_id、status を含む)。
ask_codex
パラメータ | 型 | デフォルト | 説明 |
| string | — | Codexに送る指示(必須) |
| string | 自動生成 | 前回返されたthread_idを指定すると継続 |
| string | — | モデルを上書き(例: |
| read-only|workspace-write|danger-full-access | read-only | サンドボックス戦略 |
| number | 300000 | ハードタイムアウト |
戻り値:Codexの最終テキスト + 1行の codex-bridge metadata(thread_id、usage を含む)。
ask_copilot
パラメータ | 型 | デフォルト | 説明 |
| string | — | Copilotに送る指示(必須) |
| string | 自動生成 | 前回返された値を指定すると同じ会話を継続 |
| string | — | モデルを上書き(例: |
| none|minimal|low|medium|high|xhigh|max | — | 推論強度 |
| number | — | 1回の呼び出しのコスト上限(安全弁) |
| boolean | false | 危険: |
| number | 300000 | ハードタイムアウト |
戻り値:Copilotの最終応答 + 1行の copilot-bridge metadata(session_id、usage、quota_snapshots を含む)。
クォータ照会の制限:Copilot CLIには非対話モードで「残り総クォータ」を照会するコマンドはありません。
copilot billing/copilot limitsは対話モードのUIでのみ有効です。ブリッジは「今回の呼び出しで消費した量」(usage+ 今回のquotaSnapshots)を報告できるのみで、残り総クォータは報告できません。Codexも同様で、codex login statusはログイン状態のみ表示し、使用量照会はできません。
環境変数
変数 | デフォルト |
|
|
| piの |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/CheerioCorner/cheerio-mcp-bridges'
If you have feedback or need assistance with the MCP directory API, please join our Discord server