コンテンツにスキップ

モジュール V — MCP、スキル、ケイパビリティ管理

モジュール V は ケイパビリティ管理オーバーレイです。エージェントのツールと ケイパビリティを統治します。すなわち、どの MCP サーバーがどのツールを公開しているか、その トランスポート・スコープ・設定は何か、どのオリジンがどのケイパビリティに配線されているか、 そのバージョン履歴、基本的な接続ヘルスです。これは Management レイヤーに位置し、 アクチュエーション面を持ちません。すなわち、カタログ化・統治・監査は行いますが、 ツールを実行したり、稼働中の MCP ランタイムを変更したりすることは決してありません。

このモジュールは、モジュール I のパッシブなディスカバリと、コネクターのイントロスペクションの 上に構築されたオーバーレイです。MCP クライアントを再実装することはせず、また インベントリがすでに所有しているコア・エンティティ(MCP サーバー、スキル、ツール、リソースの 各レコード)を意図的に再マテリアライズしません。代わりに、それらのコア・エンティティを 読み取り、自身のオーバーレイのみを格納します。これはコネクターの秘匿化済みの自然参照を キーとし、読み取り時にコア・エンティティへ解決されます。これは、インベントリの マテリアライザーと競合しないようにするためのシングルライター規律です。

これはモジュール III とは別物です。モジュール V は 「エージェントはどのケイパビリティに 接続されているか」 に答えます。モジュール III「どのオリジンがどのリソースを読み書きしたか」 に答えます。両者は別個のビューであり、 製品が両者を混同することは決してありません。

モジュール V は4つのオーバーレイ・エンティティ(いずれも capabilities. を接頭辞に持つ)を 所有します。

エンティティ何を保持するか
mcp_configMCP サーバーの管理対象設定 — トランスポート、スコープ、エンドポイント参照シークレット参照。利用可能なクレデンシャルを保持できるカラムは存在しません。
config_revision設定バージョンごとの追記専用スナップショット — 不変のバージョン履歴で、設定の削除後も残ります。
wiringケイパビリティ接続グラフ。origin → capability のエッジで、自然参照によって格納され、コア・エンティティ ID によることは決してありません。
healthケイパビリティの最後に観測された接続シグナル(connected / degraded / down / unknown) — 基本的なシグナルであり、SLA ではありません

2つの契約上の特性は譲歩できません。MCP のツールアノテーションは信頼されません。 ツールの readOnlyHint/destructiveHint はサーバーからの宣言されたヒントであり、 MCP 仕様はクライアントがこれを信頼できないものとして扱わなければならないと定めています。すべての ツール投影には明示的な untrusted フラグが付与され、セキュリティバッジになることは 決してありません。ワイヤー上にシークレット値を載せない。設定はシークレットを名前・ 種別・マスク済みヒントで参照します。バックエンドはエンドポイントや spec 内のインライン クレデンシャルを格納するのではなく拒否します。最小データは、後付けではなくワイヤーの特性です。

カタログの読み取りは RBAC でゲートされ、テナントにスコープされます。設定(およびそれが 参照するシークレット)の変更は、追記専用でハッシュチェーンされた台帳に記録され、実際の プリンシパルに帰属づけられる特権的変更です。

モジュール V はイベントバスから供給され、自前のポーリングには よりません。2つのチャネルに反応します。

  • edge.observed — ランタイムでのケイパビリティ利用が wiring エッジになります。 Source フィールドは観測されたシグナル(otel)と宣言されたもの (mcp_annotation)を区別し、より新しい config-discovery フィーダーは静的に宣言された ケイパビリティに config ソースのタグを付けます。
  • finding.reported — コネクターの接続ヘルスの検出結果が、health オーバーレイの 最終シグナル状態に供給されます。

自身のイベントは生成せず、稼働中のインフラへ何もディスパッチしません。その出力は管理 UI と、 他のモジュールがその型付きルートを通じて読み取ります。