内容
# @postcept/mcp
一个 [模型上下文协议](https://modelcontextprotocol.io) 服务器,暴露 **Postcept,作为 AI 代理的结果验证**,作为 MCP 工具。
在代理执行高风险操作(退款、取消订阅、解决支持票)后,它会调用 `verify_*` 工具来确认操作实际上已在记录系统中完成(Stripe、Zendesk 等),并获得签名的完成回执。“`done`”成为证明,而不仅仅是声称。
该服务器是对 Postcept HTTP API 的薄封装。它除了您的 Postcept API 密钥外,不持有任何凭证,并且仅对您的记录系统进行只读验证。
## 配置
| 变量 | 必需 | 默认值 | 备注 |
| --------------------- | ---- | --------------------------- | ------------------------------------------------------------ |
| `POSTCEPT_API_KEY` | 是 | 无 | Postcept API 密钥 (`pcpt_sk_...`),具有 `verifications:write` 权限。 |
| `POSTCEPT_BASE_URL` | 否 | `https://api.postcept.com` | 指向自托管或暂存 API。 |
在 Postcept 仪表板下的 **API 密钥** 中创建 API 密钥。
## 与 Claude Desktop / Claude Code 结合使用
```json
{
"mcpServers": {
"postcept": {
"command": "npx",
"args": ["-y", "@postcept/mcp"],
"env": { "POSTCEPT_API_KEY": "pcpt_sk_..." }
}
}
}
```
## 工具
| 工具 | 目的 |
| -------------------------- | --------------------------------------------------------------------------------- |
| `verify_refund` | 验证声称的退款(存在、金额/货币/客户匹配、未重复)。 |
| `verify_cancellation` | 验证订阅是否实际取消。 |
| `verify_ticket` | 验证支持票处于预期状态。 |
| `get_verification` | 通过 ID 获取过去的验证及其签名回执。 |
| `reconcile_verification` | 重新验证过去的验证结果与实时记录系统。 |
| `verified_completion_rate` | 读取组织的已验证完成率。 |
每个 `verify_*` 工具都接受 `test: true` 以针对确定性沙箱连接器运行(不包含在您的已验证完成率中),因此代理可以在没有实时记录系统的情况下执行完整流程。
非 `verified` 结果(`incomplete`、`duplicated`、`mismatched`、`policy_failed`)表示工作 **未完成**。显示差距并恢复。
## 建议,按设计
MCP 将验证调用放在代理的手中,这使其成为开发、演示和工作流程的正确集成,其中代理的判断已经受到信任。这是建议性的:代理可以跳过调用、传递错误的标识符或忽略答案。
对于重要操作,请在代理外部强制执行决策。工作流程或编排器直接调用 Postcept API(或 SDK 的 `guard()`)并在任何面向客户的操作发生之前分支于 `safe_to_claim_complete`。然后,代理接收允许的结果而不是决定它。两种模式都使用相同的 API 和相同的回执,变化的是谁拥有分支。
## 开发
```bash
pnpm --filter @postcept/mcp build # 编译到 dist/
pnpm --filter @postcept/mcp typecheck
POSTCEPT_API_KEY=pcpt_sk_... node dist/index.js # 标准输入/输出服务器
```