Agentic commerce plugin for Medusa v2 — adds UCP and ACP protocol support, enabling AI agents to browse, checkout, and pay at any Medusa storefront. Includes core protocol support and pluggable payment handler adapters.
This is a Medusa plugin exposing 12 HTTP endpoints, not an MCP server. Tool definitions are inferred from route handlers rather than explicitly registered via MCP's tool registration mechanism. Schemas are partially visible in route implementations but lack formal JSON Schema declarations. Descriptions are present but generic (avg ~120 chars). No input validation guidance, error recovery hints, or parameter constraints (enums, ranges). Security concerns: API keys and signature keys exposed as settable parameters (tool 12). No pagination support despite product-feed potentially returning large datasets. Composition is reasonable (12 focused endpoints) but naming lacks verb-first clarity (e.g., 'POST /acp/checkout_sessions/[id]' should be 'update_checkout_session'). Output schemas not documented. Error handling not visible in provided code.
Retrieve an existing ACP checkout session by ID. Returns formatted checkout session with current cart state.
Retrieve an ACP order by ID. Returns formatted order with fulfillments, line items, and totals.
Retrieve product feed in Google Merchant Center XML format. Returns published products with pricing, images, and categories.
Returns aggregated agent commerce metrics including order count, revenue, conversion rate, and top agents. Supports period parameter (7d, 30d, 90d).
Returns cart metadata for the admin widget. Protected by Medusa admin authentication.
Returns current agentic commerce settings from store metadata. Secrets are masked with only preview suffixes returned.
Not an MCP server, HTTP plugin for Medusa, not MCP-compliant. Tools are inferred from route handlers, not explicitly registered via MCP's tool registration protocol.
Security: API keys and signature keys exposed as tool parameters (tool 12: api_key, signature_key). Per pattern:secret-injection, credentials must use server-side injection, not tool params. Agent traces log all parameters, secrets leak into logs.
Naming lacks verb-first clarity. Routes use HTTP method + path (e.g., 'POST /acp/checkout_sessions/[id]') instead of action verbs (create_checkout_session, update_checkout_session). LLMs infer intent from names, ambiguous names cause wrong tool selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Cancel a UCP cart session. Marks the cart as canceled and returns UCP-formatted response.
Create a new ACP checkout session. Translates ACP line_items to internal Medusa format, creates a cart, and prepares payment requirements via payment handlers.
Update an existing ACP checkout session. Supports updating line_items, buyer email, fulfillment address, and fulfillment options. Re-prepares payment requirements if total changed.
Cancel an ACP checkout session. Marks the session as canceled and clears line items.
Complete an ACP checkout session and create an order. Validates EIP-3009 authorization against stored Prism quote, processes payment, and returns order details.
Updates agentic commerce settings in store metadata. Only allowlisted keys (ucp_enabled, acp_enabled, store_name, store_description, storefront_url, api_key, signature_key) are accepted. Refreshes the service after update.
No output schemas documented. Tool descriptions state what they return (e.g., 'Returns formatted checkout session') but do not specify field names, types, or structure. LLMs cannot plan downstream calls without knowing response shape.
No pagination support for product-feed (tool 7). Description states 'Returns published products' but does not mention limit, offset, or total count. Large product catalogs will blow context windows without pagination.