Checkout MCP Binding

Overview

This document specifies the Model Context Protocol (MCP) binding for the Checkout Capability.

Protocol Fundamentals

Discovery

Businesses advertise MCP transport availability through their UCP profile:

{
  "ucp": {
    "services": {
      "dev.ucp.shopping": {
        "mcp": {
          "schema": "https://ucp.dev/services/shopping/mcp.openrpc.json",
          "endpoint": "https://business.example.com/ucp/mcp"
        }
      }
    }
  }
}

Platform Profile Advertisement

MCP clients MUST include the UCP platform profile URI with every request in the _meta.ucp structure:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "create_checkout",
  "params": {
    "_meta": {
      "ucp": {
        "profile": "https://platform.example/profiles/v2026-01/shopping-agent.json"
      }
    }
  }
}

Tools

UCP Capabilities map 1:1 to MCP Tools.

ToolOperationDescription
create_checkoutCreate CheckoutCreate a checkout session
get_checkoutGet CheckoutGet a checkout session
update_checkoutUpdate CheckoutUpdate a checkout session
complete_checkoutComplete CheckoutPlace the order
cancel_checkoutCancel CheckoutCancel a checkout session

Example: Create Checkout

Request:

{
  "jsonrpc": "2.0",
  "method": "create_checkout",
  "params": {
    "_meta": {
      "ucp": {
        "profile": "https://platform.example/profiles/v2026-01/shopping-agent.json"
      }
    },
    "buyer": {
      "email": "[email protected]"
    },
    "line_items": [
      {
        "item": {"id": "item_123"},
        "quantity": 1
      }
    ],
    "currency": "USD"
  },
  "id": 1
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "ucp": {
      "version": "2026-01-11",
      "capabilities": [...]
    },
    "id": "checkout_abc123",
    "status": "incomplete",
    "line_items": [...],
    "totals": [...],
    "payment": {...}
  }
}

Example: Complete Checkout

Request:

{
  "jsonrpc": "2.0",
  "method": "complete_checkout",
  "params": {
    "_meta": {
      "ucp": {
        "profile": "https://platform.example/profile"
      }
    },
    "id": "checkout_abc123",
    "payment_data": {
      "id": "instr_1",
      "handler_id": "gpay",
      "type": "card",
      "credential": {
        "type": "PAYMENT_GATEWAY",
        "token": "examplePaymentMethodToken"
      }
    },
    "idempotency_key": "550e8400-e29b-41d4-a716-446655440000"
  },
  "id": 2
}

Error Handling

Error responses follow JSON-RPC 2.0 format with UCP error structure in the data field:

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32603,
    "message": "Internal error",
    "data": {
      "status": "error",
      "errors": [
        {
          "code": "MERCHANDISE_NOT_AVAILABLE",
          "message": "One or more cart items are not available",
          "severity": "requires_buyer_input"
        }
      ]
    }
  }
}

Conformance

A conforming MCP transport implementation MUST:

  1. Implement JSON-RPC 2.0 protocol correctly
  2. Provide all core checkout tools
  3. Handle errors with UCP-specific error codes
  4. Validate tool inputs against UCP schemas
  5. Support HTTP transport with streaming

See Also