mcp-broker について
mcp-brokerは、複数のMCPサーバーを使う開発者向けのローカル基盤です。単一の簡素な接続口を設け、上流サーバーの起動、再利用、プロファイル、ルーティング、終了処理を管理します。
主な機能
- 01単一のローカルMCP接続口
- 02上流サーバーのオンデマンド起動と再利用
- 03プロファイル別のツール公開と上限
- 04名前空間付き検索・説明・ルーティング
- 05変更系ツールへのアクセス制限
- 06上流のライフサイクルとセッション終了処理
活用シーン
- 01コーディングセッションに読み込むツールの削減
- 02複数クライアントでのローカルサーバー共有
- 03クライアント別の上流アクセス設定
- 04状態確認とセッション専用プロセスの解放
MCP 対応
stdioシムとローカルブローカーデーモンを通じて、MCPクライアントに簡素なMCPサーバーの窓口を提供します。クライアントはブローカー経由で上流ツールを検索、説明、呼び出しできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-broker
mcp-broker は、MCP クライアント向けのローカル Model Context Protocol プロセスブローカーです。
MCP 向けの PgBouncer のようなものです。多数の上流 MCP サーバーの前に、安定したローカルエンドポイントを 1 つ設けます。ブローカーは、上流の起動、再利用、クリーンアップ、プロファイルの公開、ステータス、安全なツールルーティングを管理します。
基本的な考え方はシンプルです。ユーザーがタスクを依頼する前に、すべてのエージェントセッションですべての上流ツール定義を読み込む必要はありません。
開発の背景
多数の MCP サーバーを使う AI コーディングセッションでは、次のような問題が繰り返し発生します。
- すべてのクライアント設定に、同じ MCP サーバーの一覧が重複して記載されます
- セッションを開始するたびに、上流プロセスが重複して起動することがあります
- OAuth、ブラウザーの状態、ローカルファイル、データベースハンドルがツール間に分散します
- タスクを始める前に、生のツール一覧がコンテキストを消費します
- ホスト型コネクターのキャッシュによって、ローカル MCP ツールが重複することがあります
- クライアントセッション終了後も、孤立した MCP プロセスが残ります
mcp-broker は、こうした上流サーバーの前に小さなブローカーファサードを配置します。ホスト型ワークフロービルダーではなく、MCP クライアントを小さく、予測可能に保ち、単一の設定契約で管理するためのローカルインフラストラクチャです。
Client profile
|
| one local MCP entry
v
mcp-broker-client
|
| Unix socket
v
mcp-broker-daemon
|
| profile gates, namespace routing, status, cleanup
v
upstream MCP servers
クライアントには、ブローカーの小さなツールセットが表示されます。
broker_search_tools
broker_describe_tool
broker_call_tool
broker_status
broker_close_session
上流の MCP は引き続き利用できます。タスクで必要になったときに、ブローカーを介して検出し、呼び出します。
コンテキスト削減の測定結果
2026-05-24、測定対象の Codex 設定では、多数の MCP およびホスト型アプリの生のツール定義が、1 つのブローカーファサードと、整理された codex_apps キャッシュに置き換わりました。
| 対象 | 変更前 | 変更後 | 削減率 |
|---|---|---|---|
| Codex に直接登録された MCP サーバー数 | 11 | 1 | 90.91% |
| MCP ツール定義数 | 414 | 4 | 99.03% |
ホスト型 codex_apps ツール定義数 | 195 | 39 | 80.00% |
| 常時読み込まれるツール定義の合計数 | 609 | 43 | 92.94% |
| シリアライズされたツールペイロードの合計バイト数 | 1,026,171 | 185,877 | 81.89% |
o200k_base によるツールトークンの合計数 | 276,989 | 45,281 | 83.65% |
92.94% は、ツール定義数の削減率です。83.65% は、tiktoken の o200k_base で測定した、正規化されたシリアライズ済みツールペイロードのトークン削減率です。
測定の根拠と注意事項については、docs/context-reduction-measurement.md を参照してください。
機能
- Unix ソケット経由で、ローカルブローカーデーモンを 1 つ実行します。
- MCP クライアントに、軽量な stdio クライアントシムを 1 つ公開します。
- 必要に応じて上流の MCP サーバーを起動します。
- 設定に応じて、セッション間で共有する上流サーバーを再利用します。
- 状態を共有すべきでない場合は、セッションごとに上流サーバーを分離します。
- 上流ツールを安定した名前空間にマッピングします。
- 検索、説明、呼び出し、ステータス、および呼び出し元セッションに紐づくセッション終了のための簡潔なツールを公開します。
- プロファイルレベルのツール予算と公開ゲートを適用します。
- プロファイルの許可リストで認可されない限り、状態を変更する上流ツールの公開をブロックします。
- ランタイム状態を、リポジトリ外の
$HOME/mcp/mcp-brokerに保存します。 - ドライラン、バックアップ、ロールバック機能を備えた MCP クライアント設定エントリを生成します。
- macOS 向けの LaunchAgent のインストールおよびアンインストール手順を提供します。
- Linux の systemd ユーザーサービスについて、生成、インストール、アンロード、削除の手順を提供します。
- Windows PowerShell のスケジュールされたタスクについて、生成、インストール、削除の手順を提供します。
- Makefile ターゲットを通じて、単体テスト、ジャーニーテスト、ライブテスト、E2E テストを実行できます。
主な特長:
- プロファイル単位の公開:すべてのツールをデフォルトで公開するのではなく、各 MCP クライアントに、設定された上流サーバーのビューを提供します。
- 状態変更ツールのゲート:許可リストでアクセスが認可されるまで、状態を変更する上流ツールは非表示のままです。
- ライフサイクル管理:共有およびセッション単位の上流サーバーを、ブローカーが起動、監視、停止、回収します。
- クライアント間の同等性チェック:生成されたプロファイルは、設定を適用する前に、同じ簡潔なブローカーファサードを通じて検証できます。
このツールの対象ユーザー
次のような方に mcp-broker をお勧めします。
- Codex、Claude Code、AGY CLI、その他の MCP クライアントを使用している
- すべてのセッションで使うには MCP ツールが多すぎる
- プロセスの重複起動を避け、共有のローカル MCP サーバーを使用したい
- OAuth の状態、ブラウザーの状態、ソケット、ログ、クリーンアップを一元管理したい
- どこでも同じツールリストを使うのではなく、クライアントごとのプロファイルが必要
- 生の上流ツール一覧の代わりに、シンプルなブローカーファサードを使いたい
このリポジトリは、エンタープライズ向けの MCP コントロールプレーンではありません。開発者エージェントのワークフロー向けのローカルデスクトップインフラストラクチャです。
現在の状況
実装済み:
config/broker.example.yamlから作成されるconfig/broker.private.yamlからの YAML 設定読み込み。- ランタイム、クライアント、プロファイル、上流サーバー、ポリシーブロックの厳密な YAML 契約検証。
config/broker.schema.jsonによる公開 JSON Schema 検証。runtime.rootからのランタイムパスの導出。- 設定された上流プレフィックスからのツール名前空間マッピング。
- ローカル上流サーバーのサブプロセスのライフサイクル管理とプロセスグループのクリーンアップ。
- Unix ソケット経由のブローカーデーモン。
- Codex、Claude、AGY など、設定された MCP クライアントプロファイル向けの MCP クライアントシムとレンダラー。
- MCP の許可サーバーポリシーを含む、AGY プロファイルの
.gemini/config/mcp_config.jsonへのレンダリング。 - クライアント設定のドライランレンダリング、適用時のバックアップ、ロールバック。
- ドライランをデフォルトとする LaunchAgent のレンダリングおよびインストールスクリプト。
- 検索、説明、呼び出し、ステータス、呼び出し元に紐づくセッション終了のためのコンパクトなブローカーファサード。
- YAML スモークプローブによるプロファイル検証。
- コンパクトなクライアントプロファイル間の探索結果の同等性チェック。
- Makefile ターゲットによる公開用およびメンテナー用の品質ゲート。
- ホスト環境での実行はデフォルトで無効のまま、P3.8 E2E 証明までの共有ランタイムガードレール契約。
接続状況:
- Codex はブローカー経由で接続されています。
- Claude は、プロファイル検証と
/mcpの手動承認後、ブローカー経由で接続されています。 - AGY は
.gemini/config/mcp_config.jsonをレンダリングすることで、ブローカー経由で接続されています。
公開リリースの状況:
- このリポジトリは、公開しても安全な状態を維持できるよう設計されています。
- 非公開の上流サーバー一覧、アカウントパス、OAuth の状態、シークレット、ソケット、ログ、生成されたクライアント設定は git の対象外です。
- 安定版リリースのメタデータは
make release-version-checkで検証され、公開証明はdocs/distribution.mdで管理されます。 - コンテナーに適した設定向けに Docker イメージを利用できます。Docker MCP Catalog への登録には、引き続き Docker による審査が必要です。
- ローカルディレクトリでの審査向けに、MCPB メタデータが
mcpb/manifest.jsonにあります。
公開向けのリリース作業については、ROADMAP.md をご覧ください。
アーキテクチャ
mcp-broker には、次の 3 つのランタイムレイヤーがあります。
| レイヤー | 役割 |
|---|---|
| クライアントシム | 各 MCP クライアントに 1 つの stdio MCP サーバーエントリを提供し、ブローカーソケット経由で JSON-RPC を転送します。 |
| ブローカーデーモン | プロファイルゲート、名前空間ルーティング、上流サーバーのライフサイクル、ステータス、ログ、クリーンアップを管理します。 |
| 上流 MCP サーバー | 共有またはセッションごとのプロセスポリシーに従い、設定された stdio、HTTP、ストリーミング可能な HTTP、または SSE コネクターとして実行されます。 |
設定ファイルが契約となります。プロファイルで公開する対象を決め、上流サーバーでトランスポートとライフサイクルの動作を定義し、スモークプローブで検証に使う安全な読み取り呼び出しを定義します。
比較
| アプローチ | 最適な用途 | トレードオフ |
|---|---|---|
| 生の MCP クライアント設定 | ツールが少ない小規模な構成。 | すべてのセッションでツールリスト全体が読み込まれ、各クライアントに設定が重複します。 |
| シンプルな MCP プロキシ | 1 つのサーバーを 1 つのクライアントに転送する場合。 | 上流サーバーのライフサイクル、プロファイルの予算、クライアント間のクリーンアップは管理しません。 |
| ホスト型アプリコネクター | クライアントプロバイダーが管理する SaaS ツール。 | ローカルの MCP 状態とクライアント間の同等性は、引き続きユーザーの管理対象外です。 |
mcp-broker | 複数の MCP クライアントで多数の上流 MCP サーバーを使うローカル開発者。 | インストールと監視が必要なローカルデーモンと設定契約が追加されます。 |
スクリーンショットまたは GIF
クイックスタートの流れは次のようになります。
make config-init
make config-validate
make broker-status
make codex-facade-smoke
MCP クライアントで /mcp を実行すると、mcp-broker のエントリが 1 つ表示されます。broker_status
を使って、プロファイルから見えるアップストリームの状態を確認します。
クイックスタート
前提条件:
- LaunchAgent を使用する場合は、
launchctlが利用可能な macOS。 python3として利用できる Python 3.10 以降。make。- npm ベースのアップストリーム MCP サーバーを使う場合は、Node.js と
npx。 - このリポジトリのクローン。
パッケージのインストール:
pipx install mcp-broker
uv tool install mcp-broker
brew tap ${HOMEBREW_TAP_REF}
brew install mcp-broker
Homebrew では、Python パッケージと同じコンソールスクリプトがインストールされます。パッケージのインストールでは MCP クライアントの設定は書き込まれません。クライアントの接続設定は、明示的な Makefile の操作として行います。
Docker はコンテナに適した設定で使用します:
docker build -t mcp-broker:local .
docker run --rm -i mcp-broker:local
ローカルの stdio クライアントと MCPB 形式のインストールでは、パッケージが所有するライフサイクルを使用します:
mcp-broker stdio --init-if-missing
ローカルの venv を作成し、依存関係をインストールして、ランタイムのディレクトリ構成を確認します:
make setup
公開テンプレートからプライベート設定を作成します:
make config-init
config-init は必要に応じて保存先ディレクトリを作成し、公開テンプレートを初期状態としてコピーします。ローカルの MCP インベントリ、ユーザーパス、シークレットは取り込みません。
ローカルのアップストリームを設定するには、config/broker.private.yaml を編集します。シークレットの値は設定ファイルに含めないでください。環境変数名、または以下のディレクトリにあるファイルを使用します:
$HOME/mcp/mcp-broker/secrets/
品質ゲートを実行します:
make quality-gate
設定された YAML コントラクトを検証します:
make config-validate
ブローカーを起動します:
make broker-start
状態を確認します:
make broker-status
インストールの全手順については、docs/install.md を参照してください。 クローンから起動までの導入手順については、 docs/adoption-guide.md#clone-to-running-path を参照してください。 共有ランタイムの境界については、 docs/shared-runtime-guardrails.md を参照してください。 P3.8 E2E の実証では、テナント分離、認可拒否、クォータ拒否、セッションアフィニティ、 監査イベント、ロールバック、縮退モード、ローカルのみのルーティング、 共有可能なルーティングを対象としています。ホスト型実行は、パブリックな ローカルブローカーでは引き続きサポートされません。
ランタイムのディレクトリ構成
デフォルトのランタイムルート:
$HOME/mcp/mcp-broker/
|- backups/
|- logs/
|- renders/
|- run/
|- secrets/
|- sockets/
`- state/
`- upstreams/
ランタイムファイルはリポジトリ内のファイルではありません。アップストリームの OAuth 状態、ブラウザー状態、シークレットファイル、ソケット、ログ、レンダリング済みクライアント設定、バックアップ、デーモンの状態は、ランタイムルート配下に置きます。
docs/runtime-layout.md を参照してください。
クライアントの接続設定
クライアント設定をバックアップします:
make config-backup CLIENT=codex
ドライランでレンダリングします:
make config-render CLIENT=codex CONFIG_RENDER_APPLY=0
レンダリングされたファイルを $HOME/mcp/mcp-broker/renders/ で確認してから適用します:
make config-render CLIENT=codex CONFIG_RENDER_APPLY=1
ロールバック:
make config-rollback CLIENT=codex
プロファイルのスモークテストに合格し、そのクライアントでブローカーを使用する場合は、その後に CLIENT=claude または CLIENT=agy を指定します。新しい JSON ベースの MCP クライアントの場合は、ひな形となるブロックを生成します:
make profile-snippet NEW_PROFILE=local-client NEW_CLIENT_FORMAT=mcp-settings-json
新しいプロファイルの手順全体については、docs/add-profile.md を参照してください。
コンパクトなブローカーファサード
コンパクトなファサードを使うと、チャット向けのプロファイルを簡潔に保てます:
| ツール | 目的 |
|---|---|
broker_search_tools | クエリで設定済みのアップストリームツールを検索します。結果には、名前、説明、アップストリーム、目的、タグ、変更を伴う操作かどうかを示すフラグが含まれます。重い inputSchema は省略され、必要に応じて broker_describe_tool から取得されます。 |
broker_describe_tool | 1 つのアップストリームツールのスキーマとメタデータを返します。 |
broker_call_tool | ブローカールーティングを通じて、1 つのアップストリームツールを呼び出します。任意の projection({"paths": [...], "max_array_items": N})を受け付けます。これにより、クライアントに届く前にサーバー側でレスポンスを絞り込めます。 |
broker_status | ツールを起動せずに、プロファイルから見えるアップストリームの状態、受動的な認証プローブ、最後に発生したエラーを表示します。 |
broker_close_session | 共有アップストリームや別のクライアントセッションを停止せずに、呼び出し元が所有するセッション単位のアップストリームプロセスを解放します。 |
Codex の /mcp に mcp-broker のエントリが 1 つだけ表示されるのは、意図した仕様です。アップストリームごとの可視性、状態、ソケットパスは broker_status から確認できます。
プロファイルと安全性
プロファイルによって、クライアントが参照して呼び出せるアップストリームが決まります。
対応する概念:
max_toolsは、クライアントに膨大なツール一覧が表示されるのを防ぎます。compact_tools_enabledを有効にすると、生のアップストリームツールの代わりにブローカーのファサードツールが公開されます。broker_tool_name_styleは、ドット付きのツール名を表示できないクライアント向けに、ブローカーのファサード名を調整します。result_size_charsは、broker_call_toolにanthropic/maxResultSizeCharsを指定します(上限は 500000)。これにより Claude Code で大きな結果をインライン表示できます。result_budget_charsは、転送されるすべてのtools/callの_metaにmcp-broker/result_budget_charsを設定し、アップストリームがクライアントに合わせて回答サイズを調整できるようにします。docs/add-profile.md を参照してください。mcp_allowed_serversは、明示的なサーバー許可リストを必要とする MCP クライアント向けに、クライアント設定を生成します。- 変更を伴うアップストリームを公開するには、
allow_mutating_upstreamsが必要です。 sharedモードでは、アカウント状態を共有しても問題ない場合に、アップストリームプロセスを再利用します。per_sessionモードでは、クライアントセッションごとにアップストリームの状態を分離します。per_callモードでは、ツール呼び出しまたはツール一覧操作ごとに新しい stdio プロセスを起動し、応答を返す前にそのプロセスを停止します。disabledモードでは、アップストリームを公開せずに互換性レコードを保持します。
ステータスには、ツールの検出を含む、処理中の per_call 操作数が active_call_count として表示されます。成功、失敗、またはタイムアウト後のクリーンアップが完了すると、値はゼロに戻ります。このカウントは session_count とは別のもので、保存されたスレッドの数ではありません。ステータスの読み取りによってアップストリームが起動することはなく、プロファイルで非表示のアップストリームは引き続き非表示です。
OAuth、ブラウザーの状態、ファイルシステムのルート、データベースなどの保護対象には、明示的な設定と検証が必要です。公開用の例は無効のままにするか、プレースホルダーを使用します。
docs/security-review.md と docs/upstream-compatibility-matrix.md を参照してください。 安全性に関する詳細なチェックリストは、docs/safety.md を参照してください。
設定の契約
公開テンプレートは config/broker.example.yaml です。 対応する JSON Schema は config/broker.schema.json です。
対応するトップレベルのセクション:
schema_version: 1
runtime: {}
broker: {}
profiles: {}
clients: {}
upstreams: {}
ローダーは不明なキーを拒否します。{runtime.root}、{runtime.state_dir}、{runtime.secrets_dir} などの実行時プレースホルダーは、アップストリームのコマンド、引数、作業ディレクトリ、環境変数ファイルのパスに使用できます。
make config-validate は、まず選択された CONFIG_PATH を公開 JSON Schema と照合し、その後、実行時ローダーを実行して、ブローカーが使用するものと同じコードパスで意味上のルールを適用します。
プロファイルに公開される有効な各アップストリームには、安全なスモークプローブを定義してください:
smoke:
query: read example graph
tool: example-store.read_graph
arguments: {}
call: true
make profile-validation PROFILE=<profile> は、プロファイルから参照できる有効なアップストリームすべてについて、broker_status、broker_search_tools、broker_describe_tool、および設定された安全な broker_call_tool を通じて検証します。
Codex オペレーターの受け入れ確認
リポジトリが管理するテストでは、ローカルのクライアントシムを通じてブローカーの動作を検証します。最後の Codex 固有の確認は、遅延読み込みされる MCP ラッパーツールが利用できる アクティブな Codex セッション内で実行する必要があります。
YAML から現在の受け入れ確認手順を生成します:
make codex-deferred-acceptance
このターゲットは、設定された smoke プローブを読み取り、検索、説明、安全な呼び出しを行うための正確な
mcp__mcp_broker__ ラッパー呼び出しを出力します。Codex の起動、外部 LLM セッションの呼び出しは行わず、
make quality-gate の一部でもありません。
docs/codex-deferred-tool-acceptance.md を参照してください。
LaunchAgent
書き込みを行わずに生成します:
make launchagent-install
適用して読み込みます:
make launchagent-install LAUNCHAGENT_APPLY=1
make launchagent-load
make broker-status
読み込みを解除するか、削除します:
make launchagent-unload
make launchagent-uninstall LAUNCHAGENT_APPLY=1
systemd
Linux のユーザーサービスのインストールでは、同じ実行時ルートと設定パスの契約を使用します:
make systemd-install
make systemd-install SYSTEMD_APPLY=1
make systemd-load
パッケージをインストールした場合は、サービスを適用する前に、インストールされたデーモンのパスを MCP_BROKER_DAEMON_COMMAND に設定してください。
Windows
Windows の起動には、同じランタイムルートと設定パスの契約を使用する PowerShell Scheduled Task コマンドを使います。
make windows-install
make windows-install WINDOWS_APPLY=1
make windows-load
次のコマンドで削除します。
make windows-unload
make windows-uninstall WINDOWS_APPLY=1
テストとリリースのゲート
すべてのテスト階層を実行します。
make test
公開品質ゲートを実行します。
make quality-gate
カバレッジゲートでは、Python ソースの行カバレッジと分岐カバレッジを使用します。
タグを準備するときは、リリースゲートを実行します。
make release-gate
release-gate は、パッケージ、スモーク、ミューテーションのチェックを実行します。ミューテーションでは、LOCAL_CPU_BUDGET と RELEASE_GATE_JOBS から算出したリリース用の子プロセス数を使用するため、ほかのリリース子プロセスの実行中に CPU の全予算を使い切ることはありません。ミューテーションは最後に公開ユニットテストとジャーニーテストを実行し、合計数、スコア、順位付けされた blocked_by_file 項目を含む var/quality/mutation_stats.json を書き込みます。macOS では、ローカルでの mutmut の fork エラーを避けるため、リリースゲートは Linux コンテナー内でミューテーションを実行します。E2E テストは引き続き make quality-gate に含まれます。
スモークテストとランタイムのクリーンアップチェックを実行します。
make config-validate
make broker-smoke
make broker-stop
make broker-reap
make doctor
make release-smoke
リリースまたはクライアント設定の適用前に、次の項目を実施してください。
make quality-gatemake config-validatemake broker-smoke- 対象とする各クライアントの設定をドライランでレンダリング
- ロールバックテスト
make release-smoke- タグ付け前に
make release-gate - ブローカーが所有する古いリソースがない状態で
make doctor
docs/release-checklist.md を参照してください。
公開コマンド
これらのターゲットは、このリポジトリと宣言済みの Python および Node の前提条件を使用します。
ソースへのコントリビューションでは、PATH に gitleaks をインストールし、各チェックアウトで make hooks-install を実行してください。追跡対象の pre-commit フックは、ステージされたシークレットを秘匿化してスキャンした後、Make を通じてコミット対象の影響テストを実行します。スキャナーツールがない場合、ステージ範囲が空の場合、またはスキャンやテストが失敗した場合は、コミットがブロックされます。GITLEAKS と PYTHON で、スキャナーとメンテナー用インタープリターを指定します。インストールには Git のワークツリー固有の設定を使用し、移行が必要な不明な既存フックや一般的な core.worktree/bare 設定がある場合は処理を中止します。ホストされたワークフローは開始されません。
make setup
make config-init
make test
make test-unit
make test-journey
make test-live
make test-e2e
make test-cov
make precommit
make quality-gate
make release-gate
make config-validate
make broker-smoke
make broker-start
make broker-status
make broker-stop
make broker-reap
make doctor
make config-backup
make codex-app-policy
make config-render
make config-rollback
make tools-count
make facade-smoke
make codex-facade-smoke
make claude-facade-smoke
make agy-facade-smoke
make profile-validation
make codex-profile-validation
make claude-profile-validation
make agy-profile-validation
make discovery-parity
make codex-claude-discovery-parity
make codex-deferred-acceptance
make launchagent-install
make launchagent-load
make launchagent-unload
make launchagent-uninstall
make systemd-install
make systemd-load
make systemd-unload
make systemd-uninstall
make windows-install
make windows-load
make windows-unload
make windows-uninstall
make linux-container-smoke
make windows-powershell-smoke
make release-smoke
make mutation
make mutation-linux
make quality-gate はリポジトリ内で完結します。このリポジトリ外にある個人用スクリプトは呼び出しません。
make codex-deferred-acceptance はメンテナー専用です。Codex や外部の LLM セッションは呼び出しません。同じ YAML の smoke プローブを読み取り、有効な Codex セッション内で実行する正確な mcp__mcp_broker__ 遅延ラッパー呼び出しを出力します。docs/codex-deferred-tool-acceptance.md を参照してください。
プロジェクトツリー
mcp-broker/
|- .gitignore
|- Makefile
|- README.md
|- pyproject.toml
|- requirements.txt
|- config/
| |- broker.example.yaml
| |- broker.private.yaml # local, ignored by git
| `- broker.schema.json
|- docs/
|- registry/
|- scripts/
| `- check_mutation_stats.py
|- src/
| `- mcp_broker/
|- tests/
| |- unit/
| |- journey/
| |- live/
| |- e2e/
| `- support/
`- var/ # tracked skeleton; generated contents ignored
生成されたレポートは var/ 以下、特に var/coverage/、var/test-logs/、var/quality/ に保存されます。
ドキュメント
- SECURITY.md
- CONTRIBUTING.md
- ROADMAP.md
- docs/install.md
- docs/add-profile.md
- docs/migration.md
- docs/adoption-guide.md
- docs/comparison.md
- docs/distribution.md
- docs/github-publication.md
- docs/community-launch.md
- docs/auth-recipes.md
- docs/architecture.md
- docs/protocol.md
- docs/runtime-layout.md
- docs/safety.md
- docs/security-review.md
- docs/upstream-compatibility-matrix.md
- docs/codex-deferred-tool-acceptance.md
- docs/context-reduction-measurement.md
- docs/mutation-testing.md
- docs/release-checklist.md
- docs/troubleshooting.md
設計ルール
- アップストリームの定義は中央設定に保持してください。
- ランタイム状態は
$HOME/mcp/mcp-brokerの下に保持してください。 - プライベートなアップストリーム一覧は、Git で無視される
config/broker.private.yamlに保持してください。 - 秘密の値を設定やソースコードに含めないでください。
- ソースコード、テスト、ドキュメント、公開設定に個人用のパスをハードコードしないでください。
- ビルド、テスト、ランタイム、設定の操作は Makefile を通じて実行してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。