mcpField
C
cli-bridge-mcp

cli-bridge-mcp

ローカル
github.comAI・エージェント22 週間前に更新

cli-bridge-mcp について

cli-bridge-mcp はローカル AI CLI を使う人向けの MCP サーバーで、現在のアシスタントから他のインストール済み CLI に作業を委任し、結果をまとめられます。公式 CLI をサブプロセスとして呼び出し、API キーを抽出せずに、隔離ビルドや複数モデルによるレビュー、タスク振り分けを行います。

主な機能

  1. 01複数 CLI への並列・段階的な相談
  2. 02リクエストの振り分けと会話スレッドの保持
  3. 03一時ワークツリーでのコード生成と差分取得
  4. 04複数モデルによる差分レビューと議論
  5. 05CLI の状態、コスト、ジョブの確認

活用シーン

  1. 01複数モデルでコードの不具合を調査
  2. 02隔離ワークツリーでコード変更を委任
  3. 03コードやセキュリティ観点で変更をレビュー
  4. 04移行案を比較して投票結果を集約

MCP 対応

この MCP サーバーは、ローカルにインストールされた AI CLI を呼び出す相談、ビルド、レビュー、ジョブ管理ツールをクライアントに提供します。利用状況の概要と各レーンの統計も MCP リソースとして公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"joaoberne-cli-bridge": {
"command": "uvx",
"args": [
"cli-bridge-mcp"
],
"env": {
"CLI_BRIDGE_PROFILE": "<CLI_BRIDGE_PROFILE>",
"CLI_BRIDGE_TERSE": "<CLI_BRIDGE_TERSE>",
"CLI_BRIDGE_CACHE_TTL_S": "<CLI_BRIDGE_CACHE_TTL_S>"
}
}
}
}
起動コマンドuvx cli-bridge-mcp
設定が必要な環境変数
CLI_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypicli-bridge-mcp0.3.0

ツール

2

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
deepbooleanいいえ各無料レーンの認証をライブでプローブします。

詳細

cli-bridge

CI PyPI

会話中の 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。