Loading...
Loading...
Compare original and translation side by side
BashEditWriteWebFetchprotect-mcpnpx @veritasacta/verifyBashEditWriteWebFetchprotect-mcpnpx @veritasacta/verifyprotect-mcpundefinedprotect-mcpundefinedundefinedundefined.claude/settings.json{
"hooks": {
"PreToolUse": [
{
"matcher": ".*",
"hook": {
"type": "command",
"command": "npx protect-mcp@latest evaluate --policy ./protect.cedar --tool \"$TOOL_NAME\" --input \"$TOOL_INPUT\" || exit 2"
}
}
],
"PostToolUse": [
{
"matcher": ".*",
"hook": {
"type": "command",
"command": "npx protect-mcp@latest sign --tool \"$TOOL_NAME\" --input \"$TOOL_INPUT\" --output \"$TOOL_OUTPUT\" --receipts ./receipts/"
}
}
]
}
}.claude/settings.json{
"hooks": {
"PreToolUse": [
{
"matcher": ".*",
"hook": {
"type": "command",
"command": "npx protect-mcp@latest evaluate --policy ./protect.cedar --tool \"$TOOL_NAME\" --input \"$TOOL_INPUT\" || exit 2"
}
}
],
"PostToolUse": [
{
"matcher": ".*",
"hook": {
"type": "command",
"command": "npx protect-mcp@latest sign --tool \"$TOOL_NAME\" --input \"$TOOL_INPUT\" --output \"$TOOL_OUTPUT\" --receipts ./receipts/"
}
}
]
}
}deny./receipts/<timestamp>.jsondeny./receipts/<timestamp>.json./protect.cedar// Allow read-only tools by default
permit (
principal,
action in [Action::"Read", Action::"Glob", Action::"Grep", Action::"WebFetch"],
resource
);
// Require explicit allow for destructive tools
permit (
principal,
action == Action::"Bash",
resource
) when {
// Allow safe commands only
context.command_pattern in ["git", "npm", "ls", "cat", "echo", "pwd", "test"]
};
// Never allow recursive deletion
forbid (
principal,
action == Action::"Bash",
resource
) when {
context.command_pattern == "rm -rf"
};
// Require confirmation for writes outside the project
forbid (
principal,
action in [Action::"Edit", Action::"Write"],
resource
) when {
context.path_starts_with != "."
};./protect.cedar// 默认允许只读工具
permit (
principal,
action in [Action::"Read", Action::"Glob", Action::"Grep", Action::"WebFetch"],
resource
);
// 破坏性工具需要明确允许
permit (
principal,
action == Action::"Bash",
resource
) when {
// 仅允许安全命令
context.command_pattern in ["git", "npm", "ls", "cat", "echo", "pwd", "test"]
};
// 绝不允许递归删除
forbid (
principal,
action == Action::"Bash",
resource
) when {
context.command_pattern == "rm -rf"
};
// 对项目外部的写入操作需要确认
forbid (
principal,
action in [Action::"Edit", Action::"Write"],
resource
) when {
context.path_starts_with != "."
};npx @veritasacta/verify receipts/2026-04-15T10-30-00Z.jsonnpx @veritasacta/verify receipts/2026-04-15T10-30-00Z.json
Verify the entire chain:
```bash
npx @veritasacta/verify receipts/*.json/verify-receipt receipts/latest.json
/audit-chain ./receipts/ --last 20
验证整个收据链:
```bash
npx @veritasacta/verify receipts/*.json/verify-receipt receipts/latest.json
/audit-chain ./receipts/ --last 20{
"receipt_id": "rec_8f92a3b1",
"receipt_version": "1.0",
"issuer_id": "claude-code-protect-mcp",
"event_time": "2026-04-15T10:30:00.000Z",
"tool_name": "Bash",
"input_hash": "sha256:a3f8...",
"decision": "allow",
"policy_id": "autoresearch-safe",
"policy_digest": "sha256:b7e2...",
"parent_receipt_id": "rec_3d1ab7c2",
"public_key": "4437ca56815c0516...",
"signature": "4cde814b7889e987..."
}parent_receipt_id{
"receipt_id": "rec_8f92a3b1",
"receipt_version": "1.0",
"issuer_id": "claude-code-protect-mcp",
"event_time": "2026-04-15T10:30:00.000Z",
"tool_name": "Bash",
"input_hash": "sha256:a3f8...",
"decision": "allow",
"policy_id": "autoresearch-safe",
"policy_digest": "sha256:b7e2...",
"parent_receipt_id": "rec_3d1ab7c2",
"public_key": "4437ca56815c0516...",
"signature": "4cde814b7889e987..."
}parent_receipt_id| Before | After |
|---|---|
| "Trust me, the agent only read files" | Cryptographically provable: every Read logged and signed |
| "The log shows it happened" | The receipt proves it happened, and no one can edit it |
| "You'd have to audit our system" | Anyone can verify every receipt offline |
| "Logs might be different by now" | Ed25519 signatures lock the record at signing time |
| 之前 | 之后 |
|---|---|
| "相信我,Agent只读取了文件" | 可加密证明:每一次读取操作都已记录并签名 |
| "日志显示操作已执行" | 收据可证明操作已执行,且无人能篡改 |
| "你得审计我们的系统" | 任何人都可离线验证所有收据 |
| "日志现在可能已不同" | Ed25519签名在签署时就锁定了记录 |