
cMCP: 機密MCPゲートウェイ。MCPツール呼び出しに対するハードウェア認証によるポリシー強制。
コミュニティの最新情報とコントリビューターのハイライト: AgenTrust on LinkedIn。
クイックスタート · アーキテクチャ · 設定 · CLI · 変更履歴
開発者プレビュー - 2026年6月23日のConfidential Computing Summitで発表されました。v1.0までに破壊的変更が含まれる可能性があります。現在提供されている機能とロードマップ上の機能の正確な内容についてはSTATUS.mdを参照してください。
cMCP (Confidential MCP Runtime) は、AIエージェントが行うすべてのツール呼び出しを、あなたが記述したルールに照らして検査し、エージェントが改ざんできない隔離されたハードウェア上で実行できるオープンソースのゲートウェイです。 AIエージェントは、通常MCP (Model Context Protocol) を介してツール呼び出しと呼ばれるリクエストを送信することで、ツール (データベース、CRM、メール、内部API) を利用します。cMCPはそれらの呼び出しの経路上に位置し、各呼び出しをあなたのルール (Cedarポリシー言語で記述) に照らして検査し、ルールが禁止するものをブロックします。cMCPはTEE (トラステッド実行環境: マシンの所有者からさえもプログラムのメモリを隔離して保持するハードウェア) 内で実行でき、そこで管理対象のエージェントはcMCPに到達できません。各セッションは署名付きレシートであるTRACE Claimで終了し、ゲートウェイを運用した人物を信頼することなく誰でも検証できます。レシートは、ゲートウェイがTEE内で実行される場合はハードウェアレポートに裏付けられ、ソフトウェアモードでは署名のみ (ハードウェア証明なし) となります。これらの用語に馴染みがない場合は、用語の平易な解説を参照してください。
TL;DR: エージェントをcMCP Gatewayに向けてください。すべてのツール呼び出しをあなたのCedarルールに照らして検査し、ルールが拒否するものをブロックまたはリダクト (伏字化) し、誰かが改ざんしたかどうかを示す署名付きレシートを提供します。
pip install cmcp-runtimeを実行し、特別なハードウェアを必要とせず、任意のコンピューター上でソフトウェアモードで開始できます。
あなたのエージェントはSnowflake、Salesforce、十数のAPIを呼び出します。それらの呼び出しの一つで顧客データが漏洩するのを何が防ぐのでしょうか? 規制当局から問われた場合、漏洩していないことを証明できるでしょうか?
エージェントがツールを呼び出します。ポリシーエンジンが許可を出します。ツール呼び出しが通過します。
これらのいずれも、ポリシーエンジン自体が侵害されていないことを証明するものではありません。ソフトウェアのみのMCPガバナンスでは、以下を保証できません:
ツール呼び出しを統治するコントロールプレーンは、それが統治するプロセスから到達できない場所で実行されなければなりません。
MCPツール呼び出しに対するハードウェア認証済みポリシー適用。すべてのツール呼び出しはインターセプトされ、Cedarポリシーバンドルに対して評価され、Trusted Execution Environment(TEE)内で動作するポリシーエンジンによって適用されます。単一のツール呼び出しを処理する前に、ゲートウェイはインストールされたコード、ポリシーバンドル、および設定をハードウェア認証レポートに測定し、バンドルが再ロードされるたびに再認証を行います。
ハードウェアデプロイメントでは、cMCP RuntimeはTEE内でツール呼び出しペイロードを処理します。ホストおよび接続プロバイダーが読み取れる内容は、egressポリシーにも依存し、アップストリームのツールサーバーはTEE外の別コンポーネントです。ソフトウェアモード(CMCP_DEV_MODE)はハードウェア分離を提供しません。LIMITATIONS.mdには、cMCPが防止しない事項が記載されています。
pip install cmcp-runtime
cmcp-config.yaml を作成します:
attestation:
provider: auto
enforcement_mode: advisory # advisory eases first-run tuning; the default is `enforcing`
listen_addr: "127.0.0.1:8443" # pin loopback: dev mode runs without a bearer token
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では、ノートPC上で約10分、ハードウェアもサインアップも不要で同じ道筋をたどれます。インストールし、Cedarのforbidルールを1つ書き、ツール呼び出しが上流に到達する前に403 POLICY_DENYを返すのを確認し、その後、署名済みレシートを検証します。
完全なウォークスルーについてはdocs/quickstart.mdを参照してください:Cedarポリシー、ツールカタログ、最初のTRACE Claim、そして検証(ハードウェアTEEは不要)。
report_dataにバインドされ、TPMティアでは認定されたNVインデックスに拡張されます。ポリシーのリロードは新たなアテステーションをトリガーします。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)
| プロバイダー | プラットフォーム | 保証レベル | 備考 |
|---|---|---|---|
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) |
プロバイダーの自動検出プローブ順序: azure-cvm -> tpm -> sev-snp -> tdx。detect() が最初に成功したプロバイダーが選択されます。ハードウェアプロバイダーが検出されない場合、ゲートウェイは CMCP_DEV_MODE=1 (非認証のソフトウェアのみのフォールバック) の場合にのみ起動し、それ以外の場合は起動を拒否します。
from cmcp_runtime.config import TEEProvider
# Auto-detect (default)
# attestation.provider: auto -> azure-cvm -> tpm -> sev-snp -> tdx
# (software-only is used only under CMCP_DEV_MODE=1)
# Explicit hardware selection
# attestation.provider: sev-snp
| モード | 動作 | ユースケース |
|---|---|---|
enforcing | ポリシーによる拒否は HTTP 403 を返す。呼び出しは転送されない | 本番環境 |
advisory | ポリシーによる拒否はログに記録される。呼び出しは続行される | 初回デプロイ、ポリシーチューニング |
silent | ポリシーは評価されるが、何もログに記録されず、ブロックもされない | ベースラインの確立 |
デフォルトは enforcing です。アドバイザリモードを使用するには、cmcp-config.yaml で enforcement_mode: advisory を設定してください。
cmcp-config.yaml の完全なリファレンス:
attestation:
provider: auto # auto | tpm | sev-snp | tdx | software-only
enforcement_mode: enforcing # enforcing | advisory | silent
validity_seconds: 86400 # attestation freshness window (default: 24 hours)
staleness_policy: fail_closed # fail_closed | warn_only
expected_measurement: ~ # pin a specific PCR/measurement (optional)
policy_bundle_path: policies/ # directory containing .cedar files and manifest.json
catalog_path: catalog.json # approved tool catalog