SuperAPI AI 工具集

chp-mcp

CHP MCP(Consensus Hardening Protocol MCP)是一个面向 MCP 客户端的审批收据与策略门禁服务器,由 Cubiczan 开发。它通过一条命令为 Cursor、Claude Code 等 MCP 客户端提供 CHP Profile B 的支出/资本门禁和工具审批收据能力,核心主张是“允许列表不等于授权”。该服务器包装 @cubiczan/chp,使客户端无需内嵌协议代码即可调用 evaluate_spend_gate 等工具,引擎摘要与规范黄金向量匹配(Profile B 30/30)。它提供结构化拒绝账本和收据门禁的金融工具,使用 HMAC-SHA256 对 CHP 规范 JSON 签名,覆盖租户、参数、风险与人工决策。若没有匹配的签名审批收据,即使工具在允许列表中也会被硬拒绝。适用于需要人工介入审批、防止模型自行选择租户或索引、以及需要可审计拒绝记录的 MCP 工具调用场景。

访问官网

工具介绍

CHP MCP 是 Consensus Hardening Protocol 的 MCP 实现,专注于审批收据与策略门禁。它解决的核心问题是:MCP 客户端(如 Cursor、Claude Desktop、Claude Code)的托管允许列表只能回答“这个工具名是否已安装”,无法绑定租户、参数、风险或人工决策。该服务器将这一缺口视为硬拒绝,除非存在与即将运行的调用相匹配的签名审批收据。

主要能力包括:

  • 一条命令安装 MCP,包装 @cubiczan/chp,使任何 MCP 客户端可调用 evaluate_spend_gate,无需内嵌协议代码。
  • 引擎摘要与规范黄金向量匹配(Profile B 30/30)。
  • 审批收据使用 HMAC-SHA256 对 CHP 规范 JSON 签名,覆盖租户、参数、风险与人工决策。
  • 结构化拒绝账本,拒绝事件在调用者看到之前必须写入 CHP 签名的账本。
  • 收据门禁的金融工具(place_equity_order、wire_treasury_transfer、rebalance_portfolio),这些工具为合成工具,无真实交易场所或银行通道,使用单独的 kind: "authorization" 收据,绑定工具、范围和参数哈希。
  • 支持主机注入参数(host-injected args)与网关 _meta,防止模型自行选择索引、键或租户。

使用方式:

  • 在 MCP 服务器环境中设置 CHP_RECEIPT_KEY(或 AUDIT_LEDGER_KEY)。未设置时回退到文档化的不安全默认值,仅适用于本地 cookbook,不适用于生产。
  • 示例策略文件:examples/tool-approval-policy.json。stripe.create_charge 在允许列表中,但仍需绑定到 acct_live_acme 和确切收费参数的收据才能运行。
  • 主机注入策略示例:examples/host-injected-policy.json。
  • 设置 CHP_AUDIT_LEDGER 为 JSONL 路径(默认 ./data/chp-audit.jsonl),或 :memory: 用于测试。
  • 运行测试:npm test 构建后运行 node --test dist/.test.js(审批收据 + 主机注入绑定)和 node --import tsx --test test/**/.test.ts(拒绝账本)。

适用场景:

  • 需要人工介入审批的 MCP 工具调用。
  • 需要防止模型自行选择租户或索引的 Semantic Kernel 等主机环境。
  • 需要可审计拒绝记录的金融或敏感操作。
  • 需要收据门禁的支出/资本门禁。

限制:

  • 金融工具为合成工具,无真实交易场所或银行通道。
  • 未设置 CHP_RECEIPT_KEY 时回退到不安全默认值,不适用于生产。
  • 该 Cubiczan 镜像可能省略 GitHub Actions,需本地运行测试套件。
  • 拒绝账本失败会抛出异常而非返回拒绝对象,确保未记录拒绝不可能发生。
  • 收据一旦成功消费,nonce 即被烧毁,重放会被拒绝。
  • 收据过期后无法复活,时钟回拨也无法恢复。
  • 歧义情况(如 resource: "*"、any、all、空字符串、缺失参数、无具体版本策略、actor/tool 通配符、收据额外键)永不产生可用允许收据,且 deny_on_ambiguity 无法关闭。