
Ed25519署名付きレシート + AIエージェント向けCedarポリシー。金融マンデートゲート(Legate)、プルーフパック、3件のIEFTインターネットドラフト。npx protect-mcp
AIエージェントのツール呼び出しに対するフェイルクローズドなCedarポリシーゲートと署名付きレシート。
protect-mcp は、AIエージェントのツール呼び出しの手前に位置するゲートです。各呼び出しを Cedar ポリシー(AWSがIAMで使用しているのと同じ言語)に照らして評価し、ルールに違反するものを実行前にブロックし、すべての決定に対してオフラインで検証可能なEd25519レシートに署名します。ローカルで動作し、あなたの決定に関するテレメトリをどこにも送信せず、MITライセンスです。
would_deny: true としてフラグが立てられるため、失敗が黙って見過ごされることはありません。serve --enforce と doctor は起動時のセルフテストを実行し、既知の禁止アクションが実際に拒否されることを示せない限り、ゲートを有効化することを拒否します。拒否を証明できないゲートは起動しません。@veritasacta/verify を使ってオフラインで検証できます。ベンダーの信頼は不要です。数学は誰が実行するかを気にしません。npx protect-mcp init
npx protect-mcp wrap -- node your-mcp-server.js
npx protect-mcp dashboard --open
npx protect-mcp recommend --write
npx protect-mcp --policy protect-mcp.recommended.json --enforce -- node your-mcp-server.js
Claude Desktop の場合は、まずドライラン設定パッチを実行し、その後適用します:```bash
npx protect-mcp wrap --claude-desktop
npx protect-mcp wrap --claude-desktop --write
npx protect-mcp dashboard --open
ダッシュボードは 127.0.0.1 にバインドされ、ローカルのログ/レシートファイルのみを読み取り、何もアップロードしません。ホスト型の ScopeBlind ダッシュボードを明示的に希望する場合にのみ、npx protect-mcp connect を使用してください。
Claude Code フックを配線するよりも、ゲートをツールとして呼び出したい場合は、MCP サーバーとして実行します:```bash npx protect-mcp mcp
MCPをstdio経由で話し、4つの読み取り専用ツール、つまりループ全体を公開します:
- **`evaluate_action`**: 提案されたツール呼び出しをインラインCedarポリシーに照らして判定し、フェイルクローズドで動作します(ポリシーエラーはすべてDENY)。`{ allowed, decision, reason, policy_digest }`を返します。
- **`sign_decision`**: 判定をEd25519署名付きレシートに変換します(拒否は`gateway_restraint`に署名し、許可は`decision_receipt`に署名します)。レシートとその公開鍵を返します。鍵を指定しない場合は一時鍵を生成します。
- **`verify_receipt`**: 署名付きレシートを公開鍵に対してオフラインで検証します。`{ valid, error, type, kid, issuer }`を返します。
- **`self_test`**: 入力を必要とせず、それ自体を証明します。既知の禁止アクションが拒否され、次に署名付きレシートがラウンドトリップし、改ざんされたコピーが失敗します。
任意のMCPホストをこれに向けてください。例えばClaude Desktop:```json
{
"mcpServers": {
"protect-mcp": { "command": "npx", "args": ["-y", "protect-mcp", "mcp"] }
}
}
レシートは、ゲートが実行時に署名するものとバイト互換であるため、ここで発行されたレシートは @veritasacta/verify およびブラウザ検証ツールで同様に検証できます。
protect-mcp dashboard は、可視性から強制適用へ移行するためのオペレータービューです:
Require approval、Block、または Observe のワンクリックローカルポリシー編集。変更を確認した後、ラッパーを再起動してください。ライブデスクトップフォールバック承認の場合、ラッパーによって出力されたローカルゲートウェイ承認エンドポイントとノンスを使用してダッシュボードを起動します:```bash
npx protect-mcp dashboard --open
--approval-endpoint http://127.0.0.1:9876
--approval-nonce "$PROTECT_MCP_APPROVAL_NONCE"
`Approve` は、これらのフラグが存在する場合、稼働中のローカルゲートウェイに転送します。
`Deny`、`Edit`、`Take over` は承認解決レコードとしてローカルに記録されます。必要に応じて、これらをオペレーター指示として使用し、ツールを再実行してください。
### 有償境界 MVP: データアップロードではなく、ダイジェストのアンカリング
ローカルの自己署名レシートは無料のままで、オフラインで検証可能です。有償境界は、ScopeBlind が生のプロンプト、ツールペイロード、出力、秘密鍵、または生のレシートを受け取ることなく、組織 ID の下で、ある時点でレシートダイジェストを確認したという独立した証拠です。```bash
# Create or refresh a local org identity and public-key directory.
npx protect-mcp registry init --org "Meridian Global Macro" --billing-account acct_meridian
# Local preview: writes a digest registry and shareable static verifier page.
npx protect-mcp registry anchor
# Hosted mode: uploads receipt digests only for independent anchoring.
SCOPEBLIND_TOKEN=... npx protect-mcp registry anchor \
--hosted \
--endpoint https://api.scopeblind.com \
--verifier-base https://scopeblind.com
ローカルプレビューは意図的に local-preview-not-independent とラベル付けされています。
ホストモードはレシートハッシュ、リクエストID、組織公開鍵、および
課金メタデータのみをアンカーします。生のレシートや機密性の高いコンテキストはアップロードしません。
protect-mcp killer-demo は完全な3分間のセールス/デモパックを生成します:```bash
npx protect-mcp killer-demo --dir ./scopeblind-demo
モックのファイルシステム、GitHub、メール、PMS アクティビティを作成し、シャドウモードでリスクの高い呼び出しを表示し、ポリシーパックを適用し、機密性の高い PMS 予約に承認を要求し、ゲートウェイ経由で実行し、署名済みレシートを書き込み、元のレシートが検証されることを証明し、改ざんされたレシートが失敗することを証明し、機密コンテキストを隠しつつ最小限の証明を表示する選択的開示パッケージを作成します。
まず生成された `DEMO-RUNBOOK.md` を開いてください。次に、出力されたダッシュボードコマンドを実行して、顧客に正確な手順を案内します。
### Selective Disclosure v0
コミットメントモードのレシートは、すべてのフィールドを平文で公開する代わりに `committed_fields_root` を持つことができます。後で、保有者は選択したフィールドのみを開示できます:```bash
npx protect-mcp verify-disclosure \
--receipt ./receipts/selective-disclosure.receipt.json \
--disclosure ./receipts/selective-disclosure.tool-only.json
検証器は親レシートハッシュ、Ed25519署名、コミットメントルート、および開示された各フィールドのMerkle証明をチェックする。その後、どのフィールドが開示され、どのコミット済みフィールドが隠されたままかを説明する。これはソルト付きコミットメント開示であり、完全なゼロ知識ではないが、プライバシーに関する主張を具体的なものにする。監査者は、ツールの完全なペイロードや機密のデスクコンテキストを受け取ることなく、選択された事実を検証できる。
レコードを明かすことなく、そのレコードに対するCLAIMを証明できる。レコード全体に対する署名済みの位置ブラインド証明を発行し、決定ごとのカテゴリ(レシートダイジェスト、判定、ケイパビリティタグ)のみを開示し、ツールの入力、出力、データは決して開示しない:```bash
npx protect-mcp claim --no net.egress
誰でもオフラインで検証でき、カテゴリのみが見え、内容は決して見えない:```bash
npx protect-mcp verify-claim claim-<id>.json
検証者は開示された集合に対してMerkleルートを再計算し、述語を独立に再計算するため、発行者は開示が与えられた主張について嘘をつくことができない。--anchor を追加すると、主張のダイジェストが公開の追記専用ScopeBlind透明性ログに記録されるため、あなたを信頼しない相手でも、開示された集合が完全であり、密かに切り直されていないことを確認できる(送信されるのはハッシュのみで、レコードはローカルに留まる):```bash
npx protect-mcp claim --no net.egress --anchor
これは説明責任のある、位置に依存しない証明であり、完全なゼロ知識ではありません。形状を明らかにしますが、内容は明らかにしません。
## 60秒で試す(エージェント不要)
[](https://scopeblind.com/film)
[scopeblind.com/film](https://scopeblind.com/film) で2分間のフィルムを視聴し、それを自分のコピーに対して再生してください:```bash
npx protect-mcp sample # seed a labeled sample record (8 decisions: 1 blocked, 2 payments)
npx protect-mcp record # open it: signatures verified in your browser
npx protect-mcp claim --payment-under 100 --anchor --output payments-under-100.json
npx protect-mcp verify-claim payments-under-100.json
npx protect-mcp anchor-record
生成された demo-tampered.jsonl をレコードページにドロップすると、署名後の編集が検出されるのを確認できます。sample は既存のレコードには触れないため、空のフォルダで実行してください。実際に使う準備ができたら、以下のゲートを組み込み、同じコマンドを自分のエージェントのレコードに対して実行してください。
npx protect-mcp init-hooks
npx protect-mcp serve --enforce --cedar ./cedar
ワンショット評価。PreToolUse フックが呼び出す方法。終了コード 2 は拒否を意味し
(ツールはブロックされる)、終了コード 0 は許可を意味する:```bash
npx protect-mcp evaluate --cedar ./cedar --tool Bash --input '{"command":"rm"}'
echo $? # 2 -> denied, fail-closed