{
  "id": "mpp.mcp.charge",
  "protocol": "mpp",
  "layer": "payment",
  "role": "merchant",
  "status": "optional",
  "title": "Require MPP payment for an MCP tool",
  "description": "Cloudflare documents adding the MPP transport to an McpAgent so a tool returns its result only after payment.",
  "goal": "Charge per agent action over MCP.",
  "note": "MCP tools use the same Challenge, Credential, Receipt flow over JSON-RPC.",
  "how_to_implement": {
    "steps": [
      "npm i agents mppx @modelcontextprotocol/sdk zod",
      "Bind the McpAgent Durable Object in wrangler.jsonc.",
      "Wrap paid tools with the MPP transport per the guide."
    ]
  },
  "resources": [
    {
      "label": "Cloudflare: accept payments with MPP",
      "url": "https://developers.cloudflare.com/agents/tools/payments/mpp/accept-payments/",
      "type": "docs",
      "publisher": "Cloudflare"
    }
  ],
  "audit": {
    "method": "code_review",
    "automatable": false,
    "human": "An MPP client is challenged on the paid tool and receives a receipt after paying."
  },
  "how_to_verify": "An MPP client is challenged on the paid tool and receives a receipt after paying.",
  "artifacts": [
    "McpAgent",
    "mppx"
  ],
  "depends_on": [
    "mcp.server"
  ],
  "status_note": "MCP tools use the same Challenge, Credential, Receipt flow over JSON-RPC.",
  "verified": true,
  "slug": "mpp-mcp-charge",
  "category": "payment",
  "url": "https://vreeman.ai/commerce/checklist#mpp.mcp.charge",
  "updated": "2026-10-12",
  "sources": [
    {
      "label": "Cloudflare: accept payments with MPP",
      "url": "https://developers.cloudflare.com/agents/tools/payments/mpp/accept-payments/",
      "type": "docs",
      "publisher": "Cloudflare"
    }
  ],
  "related_slugs": [
    "mcp-server"
  ]
}