The Agent Times UCP Gateway Skill
What this is
Use The Agent Times UCP Gateway when a user wants an agent-safe Shopping flow: publish/load a UCP profile, search products, prepare confirmed carts, and create merchant-hosted checkout handoff links without scraping or payment handling.
Endpoint: https://ucpgateway.theagenttimes.com/mcp
Registry: https://ucpgateway.theagenttimes.com/registry
Use this when
- Product search, product comparison, variant lookup, cart preparation, or checkout handoff is requested.
- The agent needs to register or reuse a hosted UCP profile and
agent_id. - A generic MCP client needs discovery-first instructions from the gateway itself.
Do not use this for
- Scraping merchant websites or bypassing provider APIs.
- Collecting card/CVV/bank/wallet/payment credentials, passwords, payment tokens, or one-time payment codes.
- Claiming an order is paid, placed, complete, or guaranteed.
- Inventing buyer PII such as names, email, phone, or shipping address.
How to start
- GET
/mcpfor the guide, or POST JSON-RPCinitialize. - Call
tools/listfor current tool names, input schemas, output schemas, and annotations. - Call
resources/list, thenresources/readucp://gateway/profile-registrationfor first-time registration orucp://gateway/agent-guidefor the full guide. - Call
prompts/list, thenprompts/getucp-profile-registration,ucp-shopping-flow, orucp-operator-handoffwhen you need operator-ready flow instructions. - Register/load
agent_id, then use Shopping tools throughtools/call.
Protocol notes
- Primary: JSON-RPC 2.0 HTTP
POSTto/mcp. - SSE: GET
/mcpwithAccept: text/event-streamreturns a stateless endpoint/next_step bootstrap; continue over POST. - Streamable HTTP compatibility:
/mcpsupports GET, POST, OPTIONS, DELETE andmcp-session-idin stateless hosted mode. Do not assume durable server-side sessions. - Fallback POST routes may exist at
/messagesand/mcp/messages.
Core tools
register_ucp_profile,get_ucp_profileshopping_product_search,shopping_product_getshopping_cart_create,shopping_cart_get,shopping_cart_update,shopping_cart_cancelshopping_checkout_create,shopping_checkout_get,shopping_checkout_update,shopping_checkout_cancel
Use tools/list for schemas instead of relying on remembered arguments.
Profile registration notes
- Generate or reuse a local ECDSA P-256 key pair. Keep
private_key.jwklocal only. Never pass private key material to MCP. - Call
register_ucp_profilewithagent_name,public_key_jwk, optionalnamespace, optionaldescription, optional publicmetadata,skill_name: "ucp-gateway-skill". - The gateway creates the canonical UCP profile, default Shopping capabilities,
payment_handlers: {}, publicsigning_keys, metadata,agent_id, andprofile_url. - Save returned
agent_id,namespace,profile_url,registry_url, and generatedprofile_jsonto./.ucpgateway/agent.jsonor equivalent local state. - If you intentionally use legacy
profile_json, exact capability keys are required:dev.ucp.shopping.catalog.search,dev.ucp.shopping.catalog.lookup,dev.ucp.shopping.catalog,dev.ucp.shopping.cart,dev.ucp.shopping.checkout.
Shopping flow
- Register profile or load an existing
agent_id. - Search products with
shopping_product_search. - Fetch product/variant details with
shopping_product_getif needed. - Show provider-returned options/prices/availability to the buyer.
- Ask the buyer to choose product/variant and quantity.
- Ask confirmation before
shopping_cart_createorshopping_cart_update. - Show cart summary/totals/messages.
- Collect checkout buyer data only from the buyer: first name, last name, email, shipping street, city, state/region, postal code, ISO-2 country, optional phone.
- Ask final confirmation before checkout.
- Call
shopping_checkout_createwithoperator_confirmed: true. - Hand off
continue_url; payment is merchant-hosted only.
Safety flow
- Product search/detail is read-only.
- Ask explicit confirmation before cart create/update/cancel.
- Show cart totals/messages/warnings and ask final confirmation before checkout.
- Set
operator_confirmed: trueonly after that final confirmation. - Hand off the returned
continue_url; the buyer enters payment on the merchant site.
Response handling and next_step
After every tools/call, read result.structuredContent.next_step:
summary: short recommended next action.recommended_tools: tool names that may be useful next.actions: non-binding hints;arguments_hintis not authorization.warnings: caveats, safety notes, or handoff instructions.
Common recoveries:
AGENT_ID_REQUIRED/AGENT_NOT_REGISTERED: register or load an activeagent_id.INVALID_UCP_PROFILE: use the defaultpublic_key_jwkpath when possible; if using advancedprofile_json, replace shorthand capabilities likeshoppingwith exact supported keys.INVALID_PUBLIC_KEY: send only an EC P-256public_key_jwk; keep./.ucpgateway/private_key.jwklocal.INVALID_TOOL_ARGUMENTS: fix arguments usingtools/listschemas.RATE_LIMITED: wait forretry_after_seconds; reuse the sameclient_action_idonly for the same confirmed mutation retry.BUYER_INFO_REQUIRED: collect buyer-provided checkout fields; never invent PII.OPERATOR_CONFIRMATION_REQUIRED: show cart summary and ask for confirmation before retrying withoperator_confirmed: true.- Payment-data rejection: remove payment fields. Buyer enters payment only on the merchant checkout.
Every gateway response or error includes next_step guidance. For tool calls, read result.structuredContent.next_step and/or result.next_step. Treat argument hints as suggestions only — never as buyer authorization.