storefront-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@storefront-mcp validate my cart query, I think I used a numeric cart id"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@cloudcart/storefront-mcp
An MCP server for the CloudCart Storefront GraphQL API — the headless API Nitrogen storefronts, the mobile app and other clients are built on.
It is a developer's assistant, not a shop's. It runs on your machine, reads the schema, and never talks to a store: no access token, no network, nothing that could touch live data.
Its companion is @cloudcart/dev-mcp, which covers the Admin
API. The two APIs differ in more than scope — the Admin API uses plain numeric
ids, the Storefront API uses gid://cloudcart/… — so keep them apart.
Tools
Tool | What it is for |
| Call first. The whole API — catalog, collections, search, content, cart, checkout, customers, orders, returns, analytics — and what the schema cannot tell you: how a signed-in buyer is sent (never an |
| Look up a type, query or mutation by name. Flags fields that stay empty unless the merchant runs the app behind them. |
| Check GraphQL before it ships — both against the schema and against the mistakes that validate cleanly and still fail. |
There is deliberately no semantic search. The surface is small enough to look
up by name — data/storefront.json holds every type, query and mutation — and
learn_cloudcart_storefront names the operation for each step; an embedding
index would add size and a cold start to solve a problem this API does not have.
Related MCP server: GraphQL Schema Explorer
What the validator notes beyond schema errors
Things that pass validation and still go wrong:
a numeric cart id — carts are addressed by their key, and a row number resolves to nothing
reading delivery before there is an address — couriers price against a destination, so the list is empty
reading
paymentMethodsbefore delivery is chosen — the courier decides part of what is allowedselecting
amountwithoutformatted— fine for logic, but a buyer is shown the amount as the store writes moneya paged product list or search without its facets (
filters,productFilters) or withouttotalCount— the API already computed thema
metafieldasked for without itsnamespace— the store has no app-reserved namespace, so a key alone finds nothing
It also answers names borrowed from other storefront APIs — productByHandle,
checkoutCreate, cartDeliveryAddressesAdd, cartGiftCardCodesUpdate,
customerAccessTokenCreate — each coming back with the CloudCart equivalent and
the reason it differs. Most of the
vocabulary is deliberately familiar; these are the places it is not.
Install
npm install
npm run builddata/storefront.json is part of the package: building needs no schema.
Regenerate the schema
generate-schema reads the SDL from the folder in SF_SCHEMA_DIR. Give it the
sf/schema files of the commit production runs, never a working copy: a
developer's queries go to production, and a type that exists only on a branch
would validate here and fail there. Export them from cc-builder:
mkdir -p /tmp/sf-deployed
git -C /path/to/cc-builder archive <deployed commit> sf/schema | tar -x -C /tmp/sf-deployed
SF_SCHEMA_DIR=/tmp/sf-deployed/sf/schema npm run generate-schemaThe schema is assembled from those files rather than fetched from a running store. They are what the server itself builds from — no store, no token, no network.
Use it
The CloudCart AI Toolkit plugin registers it. To add it to an MCP host yourself:
{
"mcpServers": {
"cloudcart-storefront-mcp": {
"command": "npx",
"args": ["-y", "@cloudcart/storefront-mcp@latest"]
}
}
}From a local build, the command is node with /absolute/path/to/storefront-mcp/dist/index.js.
After a schema change is deployed
Export the deployed commit's sf/schema as above, then:
SF_SCHEMA_DIR=/tmp/sf-deployed/sf/schema npm run generate-schema && npm run buildThe shipped schema comes from that step, so run it after every deploy that
changes sf/schema.
Release
Regenerate the schema from the deployed commit (above),
npm run build, and check the three tools.Bump
versioninpackage.json(the server reads it from there), commit, pushmain; CI builds and checks the tools on Node 20, 22 and 24.Publish by hand, from a clean clone of that commit:
npm ci,npm run build,npm publish --access publicwith an npm login that may write@cloudcart/storefront-mcp(the account confirms with its security key). Thengh release create vX.Y.Zfor the notes; it publishes nothing.
Layout
scripts/generate-schema.ts SDL in the repo → data/storefront.json
src/prompts/storefront.ts what an assistant must know before writing anything
src/app-resources.ts which fields depend on a merchant's installed apps
src/tools/ the three tools
src/schema/loader.ts reads and caches the introspection JSON
.github/workflows/ CI on every pushAvailable Tools
3 toolsintrospect_graphql_schemaA
Look up types, queries and mutations in the CloudCart Storefront schema by name.
Use this when you already know what something is called. When you know what you want to do but not what it is called, read learn_cloudcart_storefront's guide first — it names the operation for each step.
It searches the names of types, queries and mutations, not of fields: look up the type that holds a field.
Results flag fields that only answer when the merchant runs the app behind them, which is the usual explanation for an empty list.
Inputs: query (required), conversationId (required), api, mode, +1 more.
learn_cloudcart_storefrontA
Call this first, before anything else in this server.
It returns a conversationId that every other tool here requires, and — more
usefully — what the CloudCart Storefront API's schema does not show: how a
signed-in buyer is sent (an argument or @inContext(buyer:), never an
Authorization header), that a Nitrogen storefront's checkout is the store's own
(cart.checkoutUrl), that the server owns every price and money is shown as
formatted, and that a cart is addressed by an unguessable key.
Reading it first is the difference between a storefront that works and one that charges the wrong total.
Inputs: model, conversationId.
validate_graphql_codeblocksA
Check GraphQL against the Storefront schema before it reaches a browser.
Always run generated queries and mutations through this. The schema is large and has many close names, and an invented field looks entirely plausible until it fails.
Beyond schema validity it flags mistakes that validate cleanly and still fail at runtime, such as a numeric cart id or reading delivery before the cart has an address, and it answers names borrowed from other storefront APIs with the CloudCart one.
Inputs: codeblocks (required), conversationId (required), api.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
The three tools have clearly separated roles: onboarding/context, schema name lookup, and validation. The descriptions explicitly establish ordering and usage boundaries, so an agent should not confuse them.
All tool names use snake_case and follow a verb_object pattern: learn_..., introspect_..., validate_.... The convention is predictable and readable.
Three tools are well-scoped for a focused GraphQL storefront helper server: one for required onboarding, one for schema lookup, and one for validation. Each has a distinct job and none appears redundant.
The surface covers the main workflow of learning the API conventions, looking up schema names, and validating generated GraphQL before runtime. Minor gaps remain, such as limited field-level introspection and no direct execution/error-resolution tool, but core needs are addressed.
Maintenance
Related MCP Connectors
Enable AI assistants to interact seamlessly with Feeef e-commerce stores, products, and orders usi…
WooCommerce MCP server for ChatGPT, Claude and any AI agent: list orders, update order status, create refund, create coupon, update product and get sales report in your own WooCommerce account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to WooCommerce yourself; Cotlet does not store your password and you need no WooCommerce API key. About the official WooCommerce API: Yes. WooCommerce has a full REST API (wc/v3) for orders, products, customers, coupons, refunds and reports, and a store owner creates consumer keys for it per store (checked 16 Oct 2026). Setup and FAQ: https://cotlet.dev/integrations/woocommerce-api-mcp-server
Check any Shopify store's readiness for ChatGPT & AI shopping agents. Free, no API key, 8 languages.
Serves your design system and coding standards to coding agents, so they stop guessing.
Related MCP Servers
- FlicenseAqualityDmaintenanceProvides offline search and retrieval of Magento 2 GraphQL API documentation with 8 specialized tools for finding queries, mutations, types, tutorials, and code examples across 350+ locally indexed markdown files.89-
- FlicenseNot gradedqualityDmaintenanceProvides intelligent introspection and exploration of any GraphQL API schema with fuzzy search, type discovery, and field-level information to help understand and navigate GraphQL APIs.-
- AlicenseBqualityDmaintenanceEnables AI assistants to execute GraphQL queries and retrieve schema information from any GraphQL endpoint.229 npm8MIT
- AlicenseAqualityDmaintenanceProvides comprehensive GraphQL introspection, filtering, and query/mutation execution with safety controls. Enables AI agents to explore and interact with GraphQL APIs through natural language.714 npm1MIT