
cMCP: 機密MCPゲートウェイ。MCPツール呼び出しに対するハードウェア認証によるポリシー強制。
クイックスタート · アーキテクチャ · 設定 · CLI · 変更履歴
開発者プレビュー - 2026年6月23日のConfidential Computing Summitで発表されました。v1.0までに破壊的変更が発生する可能性があります。現在提供されている機能とロードマップ上の機能の正確な内訳については、STATUS.mdを参照してください。
cMCP(Confidential MCP Runtime)は、MCPを実行するための安全で機密性の高い方法です。ハードウェアのTrusted Execution Environment(TEE)内でMCPツール呼び出しポリシーを強制するオープンソースのゲートウェイです。 すべてのツール呼び出しはインターセプトされ、Cedarポリシーバンドルに対して評価され、管理対象のプロセスから到達できない場所で強制実行されます。各セッションは署名付きのTRACE Claimを生成し、検証者はオペレーターを信頼することなくこれを検証できます。ゲートウェイがTEE内で実行される場合はハードウェア認証され、ソフトウェアモードでは署名のみとなります。MCPのセキュアバージョンを探しているなら、これがAgenTrustランタイムです。
要約 - エージェントをcMCP Gatewayに向けてください。すべてのツール呼び出しをTEE内のCedarポリシーに対して評価し、ポリシーが拒否するものをブロックまたは編集し、改ざん検出可能なTRACE Claimを証明として発行します。
pip install cmcp-runtimeを実行し、ハードウェア不要のソフトウェアモードで開始してください。
エージェントがSnowflake、Salesforce、多数のAPIを呼び出しています。そのうちの1つの呼び出しで顧客データが漏洩するのを防ぐものは何でしょうか?規制当局から問い合わせがあった場合、漏洩していないことを証明できるでしょうか?
エージェントがツールを呼び出します。ポリシーエンジンが許可を出します。ツール呼び出しが実行されます。
これらのいずれも、ポリシーエンジン自体が侵害されていないことを証明するものではありません。ソフトウェアのみのMCPガバナンスでは、以下を保証できません:
ツール呼び出しを管理する制御プレーンは、管理対象のプロセスから到達できない場所で実行される必要があります。
MCPツール呼び出しに対するハードウェア認証付きポリシー強制実行。すべてのツール呼び出しはインターセプトされ、Cedarポリシーバンドルに対して評価され、Trusted Execution Environment(TEE)内で実行されるポリシーエンジンによって強制実行されます。ポリシーバンドルのハッシュは、コードが実行される前にハードウェア認証レポートに測定されます。
トンネルベースの接続ソリューションとは異なり、cMCP Runtimeはツール呼び出しペイロードをTEE内で処理します。接続プロバイダーが見るのは暗号文であり、平文ではありません。エンクレーブから出るのは署名付きTRACE Claimのみです。
pip install cmcp-runtime
cmcp-config.yaml を作成します:
attestation:
provider: auto
enforcement_mode: advisory # advisoryは初回実行時のチューニングを容易にします。デフォルトは `enforcing`
listen_addr: "127.0.0.1:8443" # ループバックに固定:開発モードはベアラートークンなしで実行されます
policy_bundle_path: ./policies/
catalog_path: ./catalog.json
ここで listen_addr は必須です。CMCP_DEV_MODE=1 は、すぐに試せるようにベアラートークン要件を意図的にスキップしますが、デフォルトのバインドは依然として 0.0.0.0:8443 です。0.3.0では、この組み合わせにより、マシン上のすべてのインターフェースで認証なしのゲートウェイが起動しました。0.4.0以降は拒否されます:トークンレスの開発モードはループバックアドレスのみにバインドでき、非ループバックのバインドには CMCP_BEARER_TOKEN が必要です。listen_addr を明示的に固定すれば、設定は両方で正しくなります。
ゲートウェイを起動します:
CMCP_DEV_MODE=1 cmcp start --config cmcp-config.yaml
ツール呼び出しを行います:
curl -X POST http://localhost:8443/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"salesforce.contacts","arguments":{"query":"Acme Corp"},"_cmcp":{"session_id":"s1","workflow_id":"demo-agent"}}}'
ガイド付きバージョンをお好みですか?agentrust-io.com/quickstart では、ハードウェアもサインアップも不要で、ラップトップで約10分で同じ手順を実行できます:インストール、Cedar forbid ルールを1つ作成し、ツール呼び出しがアップストリームに到達する前に403 POLICY_DENY を返すのを確認し、署名付きレシートを検証します。
完全なウォークスルーについては docs/quickstart.md を参照してください:Cedarポリシー、ツールカタログ、最初のTRACE Claim、検証(ハードウェアTEEは不要)。
Agent -> cMCP Runtime -> Cedar Policy Engine (TEE) -> Tool
|
GatewayClaim (TRACE Profile)
+-- trace.eat_profile
+-- trace.runtime.platform + measurement
+-- trace.policy.bundle_hash
+-- trace.cnf.jwk (Ed25519 confirmation key)
+-- gateway.audit_chain (root/tip/length)
+-- signature (Ed25519 over canonical JSON)
プロバイダー自動検出のプローブ順序:azure-cvm -> tpm -> sev-snp -> tdx。detect() が成功した最初のプロバイダーが選択されます。opaque は未実装のプレースホルダーです:自動検出から除外され、明示的に選択すると、サイレントにフォールスルーする代わりに ATTESTATION_PROVIDER_NOT_IMPLEMENTED が発生します。ハードウェアプロバイダーが検出されない場合、ゲートウェイは CMCP_DEV_MODE=1 の場合のみ起動し(非認証のソフトウェアのみのフォールバック)、それ以外の場合は起動を拒否します。
from cmcp_runtime.config import TEEProvider
# 自動検出(デフォルト)
# attestation.provider: auto -> azure-cvm -> tpm -> sev-snp -> tdx
# (ソフトウェアのみはCMCP_DEV_MODE=1の場合のみ使用)
# 明示的なハードウェア選択
# attestation.provider: sev-snp
# OPAQUE Managed Runtime(オプトインのみ。未実装)
# OPAQUE_ATTESTATION_URL=https://... cmcp start --config cmcp-config.yaml
| モード | 動作 | ユースケース |
|---|---|---|
enforcing | ポリシー拒否はHTTP 403を返し、呼び出しは転送されない | 本番環境 |
デフォルトは enforcing です。アドバイザリーモードを使用するには、cmcp-config.yaml で enforcement_mode: advisory を設定します。
cmcp-config.yaml 完全リファレンス:
attestation:
provider: auto # auto | tpm | sev-snp | tdx | opaque | software-only
enforcement_mode: enforcing # enforcing | advisory | silent
validity_seconds: 86400 # 認証の鮮度ウィンドウ(デフォルト:24時間)
staleness_policy: fail_closed # fail_closed | warn_only
expected_measurement: ~ # 特定のPCR/測定値を固定(オプション)
policy_bundle_path: policies/ # .cedarファイルとmanifest.jsonを含むディレクトリ
catalog_path: catalog.json # 承認済みツールカタログ
listen_addr: "127.0.0.1:8443" # トークンレス開発モードはループバックのみ。より広い範囲にバインドする前にCMCP_BEARER_TOKENを設定
max_response_size_bytes: 2097152 # デフォルト2 MB
policy_reload_interval_seconds: 0 # >0でCMCP_POLICY_HASHを固定すると起動を拒否。docs/spec/policy-hot-reload.mdを参照
環境変数:
| 変数 | 効果 |
|---|---|
CMCP_DEV_MODE=1 | ソフトウェアのみのTEEプロバイダーを使用。ハードウェア不要 |
CMCP_BEARER_TOKEN | すべての受信リクエストでこのベアラートークンを要求 |
OPAQUE_ATTESTATION_URL | OPAQUE Managed Runtime認証を有効化(明示的なオプトイン) |
GatewayClaim は、監査人、規制当局、または下流の検証者に渡される証明の単位です。セッションごと(または呼び出しごと、設定可能)に生成され、TEEから決して出ないキーで署名されます。
(この表は最も使用されるフィールドの要約です。)
cmcp_verify ライブラリによる検証では、オペレーターを信頼する必要はありません。検証者は、TEEにバインドされたキーに対する署名、承認された値に対するポリシーバンドルのハッシュ、および内部整合性のための監査チェーンをチェックします。
規範スキーマは schemas/trace-claim.schema.json にあり、docs/quickstart.md に完全な例が示されています。完全な検証プロトコルについては、docs/spec/verification-library.md と TRACE仕様 を参照してください。
脆弱性の報告と対応SLAについては SECURITY.md を参照してください。明示的なスコープ境界(APMペイロードキャプチャ、ランタイム設定インジェクション、フェーズ1で解決されないP4.1サプライチェーン(タイポスクワット)の残余リスクを含む)については LIMITATIONS.md を参照してください。
cMCP(Confidential MCP Runtime)は、ハードウェアのTrusted Execution Environment内でMCPツール呼び出しポリシーを強制するオープンソースのゲートウェイです。各ツール呼び出しをインターセプトし、Cedarポリシーバンドルに対して評価し、決定(許可、拒否、または編集)を強制実行し、ハードウェアでシールされた監査チェーンに呼び出しを記録します。
ソフトウェアのみのガバナンスは、オペレーターやサプライチェーンCVEが到達できる同じOS内でポリシーエンジンを実行するため、実行されたポリシーが承認されたものであったことや、決定がメモリ内で反転されていないことを証明できません。cMCPはポリシーエンジンをTEE内で実行し、コードが実行される前にCedarバンドルのハッシュをハードウェア認証レポートに測定するため、制御プレーンは管理対象のプロセスから到達できません。
いいえ。CMCP_DEV_MODE=1 を設定してソフトウェアのみのTEEプロバイダーを使用し、ハードウェアTEEなしで完全なクイックスタートを実行できます。ハードウェアプロバイダー(TPM、AMD SEV-SNP、Intel TDX、OPAQUE)は本番環境で使用されます。
TRACE Claim(GatewayClaim)は、セッションごとに生成される署名付きでハードウェア認証されたアーティファクトです。どのツールが実行されたか、各呼び出しをどのポリシーが決定したか、Cedarバンドルのハッシュ、監査チェーンを記録し、TEEから決して出ないEd25519キーで署名されます。検証者は cmcp_verify ライブラリを使用して、オペレーターを信頼することなくチェックします。
TPM 2.0 / vTPM、AMD SEV-SNP、Intel TDX。NVIDIA GPU機密コンピューティングはv0.2で計画されており、OPAQUE Confidential Runtimeは明示的なオプトインとして利用可能です。自動検出の順序は、Azure機密VM、次にTPM 2.0 / vTPM、次にAMD SEV-SNP、次にIntel TDXです。ソフトウェアのみのプロバイダーはCMCP_DEV_MODE=1の場合のみ使用されます。
MITです。
CONTRIBUTING.md · GOVERNANCE.md · ディスカッション
Discord でコミュニティに参加してください。
本番環境でcMCPを使用していますか?ADOPTERS.md に組織を追加してください。
MIT - LICENSE を参照してください。
| プロバイダー | プラットフォーム | 保証レベル | 備考 |
|---|
tpm | TPM 2.0 / vTPM(Azure、AWS、GCP Trusted Launch) | 中 | ローカルTPMクォート |
sev-snp | AMD SEV-SNP(Azure DCasv5、AWS C6a Nitro) | 高 | AMD KDS |
tdx | Intel TDX(Azure DCedsv5、GCP C3) | 高 | Intel PCS |
gpu-cc (v0.2) | NVIDIA H100/H200/Blackwell(CCモード) | 高 | NVIDIA Remote Attestation Service(NRAS) |
opaque (オプトイン) | OPAQUE Confidential Runtime | n/a (未実装) | プレースホルダー:自動検出から除外。明示的に選択すると未実装エラーが発生 |
advisory |
| ポリシー拒否はログに記録され、呼び出しは続行される |
| 初回デプロイ、ポリシーチューニング |
silent | ポリシーは評価されるが、ログ記録もブロックもされない | ベースライン測定 |
| コマンド | フラグ | 説明 |
|---|
cmcp start | --config PATH(必須) | ゲートウェイを起動 |
cmcp validate-config | --config PATH(必須) | 起動せずに cmcp-config.yaml を検証 |
cmcp validate-bundle | --bundle-path PATH(必須)、--expected-hash sha256:<hex>(必須) | デプロイ前にCedarバンドルのハッシュを検証 |
cmcp verify | CLAIM_FILE(必須);--policy-hash、--catalog-hash、--max-age、--trusted-key、--trusted-tpm-ca、--audit-bundle、--agent-manifest、--agent-manifest-trust-anchor | 署名付きTRACE Claimを検証(署名、スキーマ、鮮度、監査チェーン、固定ハッシュ、トラストアンカー) |
| フィールド | 説明 |
|---|
trace.eat_profile | EATプロファイルURI:tag:agentrust-io.com,2026:trace-v0.2 |
trace.runtime | エンクレーブ起動時に記録されたTEEプラットフォームとハードウェア測定値 |
trace.policy.bundle_hash | 起動時にロードされたCedarバンドルのSHA-256。ポリシーファイルを変更するとこの値が変わります |
trace.cnf.jwk | TEE署名キーにバインドされたEd25519公開キー |
trace.tool_transcript | 監査チェーンから導出された呼び出しごとのビュー:hash(監査チェーンの先端にバインド)、call_count、プライバシー保護された entries(ツール名、データクラス、決定) |
gateway.audit_chain | ハッシュチェーン化された監査ログのルートと先端。個々のエントリを再生せずに検証可能 |
signature | 完全なClaim本文の正規JSONに対するEd25519署名(RFC 8785) |
| 標準 | カバレッジ |
|---|
| OWASP Agentic AI Top 10 | MCP10(ツール呼び出しによるデータ漏洩)、MCP02(未承認ツール)、MCP08(証明可能なガバナンス)、MCP04(サプライチェーン) |
| NIST SP 800-207 | TEE内のポリシー決定ポイント。ワークロードIDへの暗黙の信頼なし |
| EU AI法 第12条、第15条 | 決定ごとの監査記録(第12条)。TEEによるサイバーセキュリティ管理(第15条) |
| DORA 第9条 | 認証チェーン。gateway.audit_chain による監査ログ保持 |
| RATS/EAT RFC 9711 | GatewayClaim はEAT。eat_profile フィールドがTRACEプロファイルを識別 |
| ツール | チェック内容 |
|---|
| ruff | すべてのPRでスタイルとインポートのリンティング |
| bandit | すべてのPRでPythonセキュリティリンティング |
| pip-audit | すべてのPRで依存関係の脆弱性スキャン |
| mypy | すべてのPRで静的型チェック |
| CodeQL | Python SAST、security-extendedクエリ、毎週 |
| OpenSSF Scorecard | 毎週のスコアリング、SARIFアップロード |
| ページ | 説明 |
|---|
| docs/quickstart.md | ゼロから最初のTRACE Claimまで30分以内 |
| docs/configuration.md | すべてのフィールドとデフォルトを含む完全な設定リファレンス |
| docs/SPEC.md | 製品仕様:問題の分類、アーキテクチャ、カバレッジマトリックス |
| docs/spec/threat-model.md | STRIDE分析、敵対者モデル、残余リスク |
| docs/spec/cedar-policy.md | Cedarポリシー言語リファレンスとスキーマ |
| docs/testing/benchmarks.md | TEEプロバイダーごとのレイテンシとスループットのベンチマーク |