Claude-skill-registry acp-checkout-mcp
Implement ACP checkout as an MCP server, exposing checkout operations as MCP tools. Use when building an MCP-based commerce server for AI agents that use tool-calling to complete purchases.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/other/other/acp-checkout-mcp" ~/.claude/skills/majiayu000-claude-skill-registry-acp-checkout-mcp && rm -rf "$T"
skills/other/other/acp-checkout-mcp/SKILL.mdACP Checkout — MCP Binding
Before writing code
Fetch live docs:
- Web-search
for MCP binding guidanceacp agentic commerce protocol MCP server implementation - Fetch
for checkout operation semanticshttps://developers.openai.com/commerce/specs/checkout/ - Web-search
for any official MCP examplessite:github.com agentic-commerce-protocol MCP - Fetch MCP SDK docs: web-search
orsite:github.com modelcontextprotocol python-sdk
for current SDKtypescript-sdk
Conceptual Architecture
What MCP Binding Means
ACP's REST checkout operations can be exposed as MCP tools via an MCP server. This allows AI agents that use tool-calling (Claude, ChatGPT, Gemini) to invoke checkout operations directly as tools rather than making raw HTTP calls.
Mapping REST to MCP Tools
Each REST checkout operation becomes an MCP tool:
| REST Operation | MCP Tool Name | Description |
|---|---|---|
| POST /checkout_sessions | | Create a new checkout session with items |
| POST /checkout_sessions/{id} | | Update session (items, address, fulfillment) |
| GET /checkout_sessions/{id} | | Retrieve current session state |
| POST /checkout_sessions/{id}/complete | | Submit payment to finalize |
| POST /checkout_sessions/{id}/cancel | | Cancel the session |
Tool Input Schemas
Each MCP tool accepts JSON input matching the corresponding REST request body. The tool's
inputSchema should be derived from the ACP OpenAPI spec's request schemas.
Tool Output
Each tool returns the CheckoutSession object (or error) as JSON, matching the REST response body.
MCP Server Architecture
AI Agent (Claude/ChatGPT) ↓ tool call (JSON-RPC) MCP Server (your code) ↓ business logic Checkout Service (same logic as REST) ↓ payment PSP (Stripe)
The MCP server wraps the same business logic that the REST endpoints use. The checkout service layer should be shared between REST and MCP bindings.
Key Considerations
- Idempotency — MCP doesn't have HTTP headers, so pass
as a tool parameteridempotency_key - API versioning — Include
as a tool parameter or server configurationapi_version - Authentication — MCP transport handles auth (stdio for local, SSE/streamable-HTTP for remote)
- Error handling — Return ACP error objects as tool errors with the same
/type
/code
structuremessage - Statelessness — Each tool call should be stateless; session state lives in the CheckoutSession object
Use Cases
- AI agents that prefer tool-calling over raw HTTP
- Claude Desktop / Claude Code integrations
- Multi-agent architectures where commerce is one capability
- Rapid prototyping without building a full REST server
Best Practices
- Share the checkout business logic layer between REST and MCP bindings
- Derive tool input schemas from the ACP OpenAPI spec (don't hand-write them)
- Include descriptive tool descriptions so the agent understands when to use each tool
- Test with the MCP Inspector before connecting to an agent
Fetch the latest ACP OpenAPI spec and MCP SDK documentation for exact schemas and server setup before implementing.