generated: '2026-08-26' method: probed source: >- https://shop.rockthebells.com/api/ucp/mcp, https://shop.rockthebells.com/api/2024-10/graphql.json, https://shop.rockthebells.com/llms.txt description: >- Rock The Bells' agent-facing surfaces are unusually open: both the MCP tool manifest and the full Storefront GraphQL schema were enumerated with no credential of any kind. What is gated is not discovery but MONEY — payment completion is guarded by a human-approval invariant rather than by a token. schemes: - id: anonymous-discovery type: none applies_to: - POST https://shop.rockthebells.com/api/ucp/mcp (tools/list) - POST https://shop.rockthebells.com/api/2024-10/graphql.json (introspection + public reads) - GET https://shop.rockthebells.com/.well-known/ucp - GET https://shop.rockthebells.com/products.json - GET https://shop.rockthebells.com/collections.json evidence: >- All of the above returned HTTP 200 to an unauthenticated request on 2026-08-26. Full GraphQL introspection (414 types) and the complete 13-tool MCP manifest were both retrieved anonymously. - id: ucp-agent-profile type: agentIdentity location: request body parameter: meta.ucp-agent.profile required: true applies_to: every MCP tool description: >- Every one of the 13 MCP tools declares `meta` as a required property, and within it `ucp-agent.profile` — a URI identifying the calling agent — is itself required. This is agent IDENTIFICATION, not authentication: nothing was verified against the profile URI during probing. evidence: mcp/rock-the-bells-mcp-tools.json (inputSchema.properties.meta.required = ["ucp-agent"]) - id: storefront-access-token type: apiKey in: header name: X-Shopify-Storefront-Access-Token required: false description: >- The Shopify Storefront API convention for authenticated storefront access. NOT required for the public read and introspection surface observed here; it scopes elevated or app-specific access. Recorded as the documented platform scheme, not as something Rock The Bells publishes itself. evidence: Shopify Storefront API platform convention; not exercised during this probe. - id: customer-access-token type: bearer location: GraphQL mutation argument description: >- Buyer-account authentication inside the Storefront schema. The Mutation type exposes customerAccessTokenCreate, customerAccessTokenCreateWithMultipass, customerAccessTokenRenew and customerAccessTokenDelete; customer-scoped queries take the resulting token. This authenticates the SHOPPER, not the API consumer. evidence: graphql/rock-the-bells-storefront.graphql (Mutation.customerAccessTokenCreate) - id: buyer-approval type: humanInTheLoop required: true applies_to: - complete_checkout (MCP) - cartSubmitForCompletion (GraphQL) - shopPayPaymentRequestSessionSubmit (GraphQL) description: >- The store's controlling authorization rule for agents. Payment may not be finalized without an explicit, contemporaneous human approval step — this is stated in BOTH /llms.txt and /robots.txt, and is the invariant that substitutes for an API credential on the write path. evidence: >- llms.txt "Important Rules": "Checkout requires human approval. Agents must not complete payment without explicit buyer consent." robots.txt: "Checkouts are for humans. Do NOT complete checkout, payment, or order placement automatically." oauth: false oauth_note: >- No OAuth. Both /.well-known/oauth-authorization-server and /.well-known/oauth-protected-resource returned 404 on every host, and the MCP endpoint returned tools rather than an OAuth challenge. scopes/ is therefore intentionally absent for this provider. docs: https://shop.rockthebells.com/llms.txt