{
  "markdown": "# @postcept/mcp\n\nA [Model Context Protocol](https://modelcontextprotocol.io) server that exposes\n**Postcept, outcome verification for AI agents,** as MCP tools.\n\nAfter an agent performs a high-risk action (a refund, a subscription\ncancellation, a support-ticket resolution), it calls a `verify_*` tool to confirm\nthe action actually completed in the system of record (Stripe, Zendesk, and more)\nand obtain a signed completion receipt. `\"done\"` becomes proof, not a claim.\n\nThe server is a thin wrapper over the live Postcept HTTP API. It holds no\ncredentials of its own beyond your Postcept API key, and verification is\nread-only against your systems of record.\n\n## Configuration\n\n| Variable            | Required | Default                    | Notes                                                        |\n| ------------------- | -------- | -------------------------- | ------------------------------------------------------------ |\n| `POSTCEPT_API_KEY`  | yes      | none                       | A Postcept API key (`pcpt_sk_...`) with `verifications:write`. |\n| `POSTCEPT_BASE_URL` | no       | `https://api.postcept.com` | Point at a self-hosted or staging API.                       |\n\nCreate an API key in the Postcept dashboard under **API keys**.\n\n## Use with Claude Desktop / Claude Code\n\n```json\n{\n  \"mcpServers\": {\n    \"postcept\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@postcept/mcp\"],\n      \"env\": { \"POSTCEPT_API_KEY\": \"pcpt_sk_...\" }\n    }\n  }\n}\n```\n\n## Tools\n\n| Tool                       | Purpose                                                                           |\n| -------------------------- | --------------------------------------------------------------------------------- |\n| `verify_refund`            | Verify a claimed refund (exists, amount/currency/customer match, not duplicated). |\n| `verify_cancellation`      | Verify a subscription was actually cancelled.                                     |\n| `verify_ticket`            | Verify a support ticket is in the expected state.                                 |\n| `get_verification`         | Fetch a past verification and its signed receipt by id.                           |\n| `reconcile_verification`   | Re-verify a past verification against the live system of record.                  |\n| `verified_completion_rate` | Read the organization's Verified Completion Rate.                                 |\n\nEvery `verify_*` tool accepts `test: true` to run against the deterministic\nsandbox connector (excluded from your Verified Completion Rate), so an agent can\nexercise the full flow without a live system of record.\n\nA non-`verified` result (`incomplete`, `duplicated`, `mismatched`,\n`policy_failed`) means the work is **not** done. Surface the gap and recover.\n\n## Advisory, by design\n\nMCP puts the verification call in the agent's hands, which makes it the right\nintegration for development, demos, and workflows where the agent's judgment is\nalready trusted. It is advisory: an agent can skip the call, pass the wrong\nidentifiers, or ignore the answer.\n\nFor consequential actions, enforce the decision outside the agent. The workflow\nor orchestrator calls the Postcept API (or the SDK's `guard()`) itself and\nbranches on `safe_to_claim_complete` before anything customer-facing happens.\nThe agent then receives the allowed outcome instead of deciding it. Both\npatterns use the same API and the same receipts, what changes is who owns the\nbranch.\n\n## Development\n\n```bash\npnpm --filter @postcept/mcp build       # compile to dist/\npnpm --filter @postcept/mcp typecheck\nPOSTCEPT_API_KEY=pcpt_sk_... node dist/index.js   # stdio server\n```\n",
  "bytes": 3644,
  "sha": "9062491c3c5d523df0f046b556fe2c98deca97b0cb9ce0230391a5100cd3d5f8",
  "repo_slug": "postcept/mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_postcept_mcp_56982cbb/readme"
}