cli-bridge-mcp について
cli-bridge-mcp はローカル AI CLI を使う人向けの MCP サーバーで、現在のアシスタントから他のインストール済み CLI に作業を委任し、結果をまとめられます。公式 CLI をサブプロセスとして呼び出し、API キーを抽出せずに、隔離ビルドや複数モデルによるレビュー、タスク振り分けを行います。
主な機能
- 01複数 CLI への並列・段階的な相談
- 02リクエストの振り分けと会話スレッドの保持
- 03一時ワークツリーでのコード生成と差分取得
- 04複数モデルによる差分レビューと議論
- 05CLI の状態、コスト、ジョブの確認
活用シーン
- 01複数モデルでコードの不具合を調査
- 02隔離ワークツリーでコード変更を委任
- 03コードやセキュリティ観点で変更をレビュー
- 04移行案を比較して投票結果を集約
MCP 対応
この MCP サーバーは、ローカルにインストールされた AI CLI を呼び出す相談、ビルド、レビュー、ジョブ管理ツールをクライアントに提供します。利用状況の概要と各レーンの統計も MCP リソースとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx cli-bridge-mcpCLI_BRIDGE_PROFILECost profile: saver (free-only fan-out, include_paid refused) | balanced (paid only with include_paid) | max (limited/paid join fan-out).CLI_BRIDGE_TERSEResponse-style preamble level: off | lite (default) | full | ultra.CLI_BRIDGE_CACHE_TTL_SResponse cache TTL in seconds. 0 = off (default).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| deep | boolean | いいえ | 各無料レーンの認証をライブでプローブします。 |
詳細
cli-bridge
会話中の AI アシスタントが、マシンにインストールされているほかの AI CLI(Claude Code、Codex、
Gemini、Mistral、opencode、Ollama、Apple fm など)に問い合わせられる、
Model Context Protocol サーバーです。各レーンは公式 CLI を
サブプロセスとして起動します。API キーは不要で、トークンを抽出することもなく、デフォルトでは読み取り専用です。
依存関係:Python 標準ライブラリと mcp(1.x または 2.x)。デーモンは不要です。
機能
ask_gemini(task="find the bug across ./src", cwd="path/to/repo") # one lane (1M-token context)
ask_apple(task="what's wrong in this UI?", images=["shot.png"]) # vision, on-device, $0
ask_all(task="…") # every free lane in parallel + disagreement score
ask_cascade(task="…") # cheapest→strongest, skips cooled-down lanes
ask_best(task="…", mode="deep") # router picks; rate_lane teaches it
ask_build(lane="opencode", task="add retry with backoff") # build in a throwaway worktree → diff
review_diff(base="origin/main", focus="security") # multi-model review, severity-ranked
debate(task="which migration strategy?", vote="borda") # N blind answers, peer-ranked
workflow(preset="converge", task="is this migration safe?") # author → blind arbiter → cross-family peers
git_text(kind="commit") # Conventional Commit from the staged diff
すべての ask_<lane> はスレッド ID を返します。この ID を再利用すれば(別のレーンでも使用可能)、
/compact の後も維持される複数モデルでの会話ができます。conversations ではスレッドの一覧表示や再生ができます。
ツール
固定ツール 15 個と、インストール済み CLI ごとの ask_<lane> が用意されています。
- 問い合わせ:
ask_<lane>、ask_all、ask_cascade、ask_best、conversations、list_models - 構築:
ask_build(mode=isolated→ 差分、mode=direct→ ゾーンで保護された書き込み。mode=directでasync=trueにすると、jobから操作できます) - レビュー:
review_diff(focus=code|security)、debate(vote=judge|borda)、workflow(プリセット:refine_plan、map_review、research_verify、fanout_compare、converge、premortem、test_plan、challenge)、git_text(kind=commit|pr) - 運用:
job(action=status|result|cancel|list|tail|steer)、rate_lane、set_lane_cost、doctor、setup
CLI_BRIDGE_TOOLS=all を設定すると、batch_run(実行記録付きのファンアウト)と
reset_lane_state が追加されます。CLI_BRIDGE_TOOLS=default,batch_run はデフォルトのツールに
batch_run を追加します。カンマ区切りのリストのみを指定した場合は、そのリストのツールだけが有効になります。
使用状況とレーンの健全性は MCP リソース(cli-bridge://usage-summary、cli-bridge://lane-stats)で確認できます。
完全なリファレンスは docs/TOOLS.md を参照してください。
人間向けの CLI もあります。cli-bridge doctor|ask|ask-all|ask-best|build|review-diff|security-review|test-plan|premortem|stats|usage|jobs|set-cost(適切な場合は --json を指定)。cli-bridge build <lane> "<task>" はワークツリーの差分を出力し、--apply を指定すると、ステージされていない変更として適用します。
安全なコードの作成
isolated(デフォルト):委任先は使い捨ての git ワークツリーを編集し、差分を返します。作業ツリーには変更を加えません。direct:実ファイルに書き込みますが、宣言したzoneの内側に限られます。ゾーンごとのロックと、ターン終了後のゾーン違反チェックにより保護され、元に戻す操作もゾーン単位です。async=trueにすると、実行可能な完了条件(Definition-of-Done、dod_cmd)を使って、job action=tail|steerから操作できます。
CLI_BRIDGE_VERIFY_PLAN_READONLY=1 を設定すると、読み取り専用の委任先がファイルを書き込んだ場合に警告します(変更は元に戻しません)。再入の深さには上限があります(CLI_BRIDGE_MAX_DEPTH、デフォルトは 1)。委任先は呼び出し元の cwd、それがなければ CLI_BRIDGE_DEFAULT_CWD、さらにそれもなければホストの MCP ワークスペースルートで実行されます。
インストール
前提条件:Python 3.12 以降、uv、および少なくとも 1 つの AI CLI がインストール済みで、ログインしていること。
uvx --from cli-bridge-mcp cli-bridge doctor # what cli-bridge can see (--deep probes each lane)
ホストに接続します。
- Claude Code:
claude mcp add cli-bridge -- uvx cli-bridge-mcp(またはプラグインを使用:claude plugin marketplace add JoaoBerne/cli-bridge-mcp && claude plugin install cli-bridge@cli-bridge-mcp)。 - その他の MCP ホスト(Codex、Cursor、VS Code、Zed、Claude Desktop など):
ホストごとの設定ファイルのパスは{ "mcpServers": { "cli-bridge": { "command": "uvx", "args": ["cli-bridge-mcp"] } } }docs/HOSTS.mdを参照してください。環境変数を含む完全な例はexamples/mcp.example.jsonにあります。GUI ホストは最小限の PATH でサーバーを起動します。 cli-bridge は一般的なインストール先も検索しますが、CLI_BRIDGE_<LANE>_BIN=/full/pathでレーンのバイナリを指定することもできます。
ホストを再起動し、レーンへの問い合わせを依頼してください(「gemini に ./src を読み込ませてバグを見つけて」など)。
cli-bridge-mcp はサーバーのエントリーポイントで、cli-bridge は人間向けの CLI です。
設定
設定はすべて環境変数(MCP サーバーのエントリーで設定)または ~/.config/cli-bridge/config.json で指定します(環境変数が優先されます)。
重要な設定項目は次のとおりです。
CLI_BRIDGE_PROFILE=balanced # saver = free-only fan-out · balanced = paid when asked · max = best
CLI_BRIDGE_<LANE>_COST=free|limited|paid
CLI_BRIDGE_<LANE>_ENABLED=false # hide a lane
CLI_BRIDGE_<LANE>_MODEL=<model-id>
CLI_BRIDGE_<LANE>_DAILY_LIMIT=<runs/day> # enforced at spawn
CLI_BRIDGE_<LANE>_CREDITS_PER_1K=<credits> # makes CLI_BRIDGE_DAILY_CREDIT_CAP enforceable
CLI_BRIDGE_<LANE>_MIN_INTERVAL_S=2 # anti-burst pacing for a rate-limited free tier
CLI_BRIDGE_TERSE=off|lite|full|ultra
CLI_BRIDGE_GUARD=off|warn|strict # injection guard on delegate output
CLI_BRIDGE_CACHE_TTL_S=0 # >0 enables the response cache
CLI_BRIDGE_TRACE_FOOTER=off # hide the JSON trace footer in reports
CLI_BRIDGE_TOOLS=all # tool surface (see above)
doctor --deep(または doctor(deep=true))は、すべての無料レーン、その CLI バージョン、モデル一覧を実際に確認し、前回の詳細なプローブからの変更を報告します。毎週実行すれば、委譲に失敗する前に、フラグ名の変更や新しいモデルを把握できます。
set_lane_cost(または cli-bridge set-cost)は、レーンのコストとしてユーザーが負担する金額を記録し、設定ファイルに保存します。コスト階層はデフォルト値として提供されるもので、アカウントから読み取ることはありません(docs/COSTS.md)。支出モデルの詳細は docs/BUDGET.md をご覧ください。
レーン
組み込み:Claude Code、Codex(gpt)、Gemini(および Antigravity agy)、Mistral(Vibe)、opencode、Ollama(ローカル、$0)、Apple Foundation Models(fm、デバイス上で動作、$0)、Qwen Code、Copilot、Cursor、Grok、Apple PCC(APPLE_FM_SERVE_URL を設定するまで非表示。自分で Terminal から起動する fm serve と通信します。examples/apple-fm-serve.lane.json をご覧ください)。
images=[…] はビジョン対応レーン(apple、ollama、opencode、gpt、gemini)で機能しますが、画像が実際に読み取られるかどうかは、レーンの背後で動作するモデルによって異なります。
その他の CLI は、CLI_BRIDGE_LANES_FILE を使って数行の JSON で設定できます。examples/local-runtime.lane.json(LM Studio、MLX、llama.cpp。ランタイムの一覧は examples/local-first-host.md)、examples/community-lanes.json(Aider、Goose、Plandex、Amp、Crush、Amazon Q、Droid)、および curl または同梱の cli-bridge-openai ブリッジを使った OpenAI 互換エンドポイント(examples/openai-compatible.lane.json)に対応しています。
既知の制限事項
- トークンやキーの抽出は行いませんが、ベンダー CLI の非対話型利用が正式に認められていない場合もあります。
- 非同期ジョブはプロセス内で実行されます:サーバーが再起動すると、実行中のジョブは
interruptedになります。batch_run/workflowは各タスクを記録し、resume_idを使って再開します。 - インジェクションガードはヒューリスティックです。 委譲先の出力はデータとして扱ってください。
- トークン数/クレジット数は推定値です(文字数/4 ×
CREDITS_PER_1K)。 - 実験的なレーン(
qwen、copilot、grok、コミュニティ、images=):doctor --deepはお使いの環境で各 CLI の--helpを確認します。
開発
uv venv && uv pip install -e . pytest pytest-asyncio ruff
pytest -q # no real CLI or network needed
ruff check src/ tests/
評価ハーネス(決定論的なスコアラー。パッケージ外):benchmarks/。
履歴:CHANGELOG.md。構成とルール:AGENTS.md、docs/ARCHITECTURE.md。
ライセンス
Apache 2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。