Implement & Review with AI (MCP)
Fast Simon MCP — build and review the SDK with your AI assistant
The Fast Simon MCP server gives AI coding assistants authoritative, always-current knowledge of the Fast Simon JavaScript SDK — real method signatures pulled straight from the shipped type declarations, the documentation, and the reporting events — so your assistant can implement and review your Fast Simon integration accurately, right inside your own project.
It works with Claude Code and any other MCP-capable assistant (Cursor, Windsurf, Cline, …).
Add it once
Claude Code:
claude mcp add --transport http fastsimon https://mcp.fastsimon.com/mcp --scope user
--scope user makes it available in every project on your machine; drop it to add it for
just the current directory.
Cursor / Windsurf / Cline / other MCP clients:
These use a JSON config instead of a command. The URL is the same everywhere, but each client names the fields differently, so copy the block for yours.
Cursor: Settings → MCP → Add new MCP server (or edit ~/.cursor/mcp.json):
{
"mcpServers": {
"fastsimon": {
"url": "https://mcp.fastsimon.com/mcp"
}
}
}
Windsurf: Settings → Cascade → MCP servers → Add (or edit
~/.codeium/windsurf/mcp_config.json). Windsurf calls the field serverUrl:
{
"mcpServers": {
"fastsimon": {
"serverUrl": "https://mcp.fastsimon.com/mcp"
}
}
}
Cline (VS Code): the Cline panel → MCP Servers → Configure (this opens
cline_mcp_settings.json). Cline needs the transport spelled out as streamableHttp:
{
"mcpServers": {
"fastsimon": {
"type": "streamableHttp",
"url": "https://mcp.fastsimon.com/mcp"
}
}
}
Any other MCP client: add a streamable-HTTP server pointing at
https://mcp.fastsimon.com/mcp.
SSE error: Non-200 status code (405)?Your client is connecting with the older SSE transport, which this server does not offer. In
Cline that happens when type is missing or is anything other than streamableHttp (for
example "transportType": "http"). Set "type": "streamableHttp" and retry the connection.
That's it — no account, no keys. The MCP is read-only: it never sees or stores your project
files (your assistant reads those locally), and it only serves content that is already public
— this documentation and the published fast-simon-sdk type declarations.
Analytics in your assistant (needs your API key)
The same MCP can also read your store's Fast Simon analytics, so you can ask Claude (or another MCP assistant) questions like "what were our top searches last month and how much revenue did they bring?" or "which zero-result searches should we fix first?". It reads the Public Reports API on your behalf: search queries, zero-result queries, did-you-mean queries, collection performance, recommendation widget performance and revenue impact by Fast Simon channel.
This part needs your Fast Simon Reports API key. If you don't have one, contact the Fast
Simon Support team at support@fastsimon.com. Add the key to the connection as the request
header x-api-key:
Claude (claude.ai, including Team and Enterprise): add a custom connector with the URL
https://mcp.fastsimon.com/mcp, and under Request headers add x-api-key with your key as
the value.
Claude Code:
claude mcp add --transport http fastsimon https://mcp.fastsimon.com/mcp --header "x-api-key: <your key>"
Other MCP clients: add a headers entry with "x-api-key": "<your key>" next to the URL in
the configs above.
Without a key the documentation tools work as before, and the analytics tools reply with how to add one. The key is used only for the request it arrives with: the MCP forwards it to the Reports API, never stores or logs it, and sees nothing your key does not allow (one key covers one store, and revenue figures appear only if your key includes them). Treat the key like a password.
More than one store
Each key covers one store, so a merchant with several stores (for example connected stores or separate regional stores) adds one connection per store, each with that store's key. Your assistant keeps all of them connected at once, so you never swap keys, and you can ask about one store or compare them in one question ("compare search revenue between our US and EU stores last month").
Name each connection after its store, so you and your assistant can tell them apart.
Claude (claude.ai): add the custom connector once per store, with the same URL
https://mcp.fastsimon.com/mcp, a name such as Fast Simon - US store, and that store's key as
the x-api-key request header.
Claude Code:
claude mcp add --transport http fastsimon-us https://mcp.fastsimon.com/mcp --header "x-api-key: <US store key>"
claude mcp add --transport http fastsimon-eu https://mcp.fastsimon.com/mcp --header "x-api-key: <EU store key>"
Run these in the project where you work with your analytics: without --scope user, the
connections and their keys stay limited to that directory instead of every project on your machine.
Other MCP clients: add one entry per store under mcpServers, each with its own name and
headers:
{
"mcpServers": {
"fastsimon-us": {
"url": "https://mcp.fastsimon.com/mcp",
"headers": { "x-api-key": "<US store key>" }
},
"fastsimon-eu": {
"url": "https://mcp.fastsimon.com/mcp",
"headers": { "x-api-key": "<EU store key>" }
}
}
}
Use the field names your client expects (serverUrl in Windsurf, plus "type": "streamableHttp"
in Cline), as in the configs above. Every report states the store it came from, so you can always
check which store a number belongs to. Ask Fast Simon Support for a key for each store you want to
connect.
The analytics follow the Reports API: dates are UTC, the most recent 7 days are still settling, and data can be split by device but not by market or country.
Make your assistant use it every time
Having the MCP installed is not the same as your assistant reaching for it. Assistants read their project instruction file on every session, so one short note there makes sure Fast Simon work goes through the MCP instead of the assistant's memory.
Add this to your project's CLAUDE.md (Claude Code) or AGENTS.md (Cursor, Windsurf, Codex and
other assistants that read it):
## Fast Simon
- Before writing or changing any Fast Simon code, use the `fastsimon` MCP server:
confirm every SDK method and field with `fastsimon_sdk_get_reference` instead of guessing.
- Only use documented APIs. If the MCP flags something as not part of the documented
public API, do not build on it.
- A Fast Simon surface is not finished until its reporting events are wired up.
Get them from `fastsimon_sdk_get_reference` and `fastsimon_sdk_get_event`.
Implement
Ask in plain language, inside your storefront project:
Add a Fast Simon search results page to this theme.
Your assistant inspects your project, asks the MCP for the exact API shapes and the known-good recipe, and writes the code — adapted to your stack (Liquid theme, Hydrogen, headless, …). It loads the SDK from the CDN so your storefront always runs the latest published version.
Or start from a ready recipe — type / in Claude Code and pick one, e.g.
search-result-page, collection-page, upsell-and-cross-sell-recommendations,
visual-discovery-sample.
Review an existing integration
Run the review prompt (type / and choose it, or just ask):
/review-integration
Your assistant reads your existing Fast Simon code and audits it against the MCP — confirming method signatures, flagging any use of undocumented/internal APIs, and checking that every surface fires its required reporting events (a page that renders but reports nothing is an incomplete integration). Each of these SDK findings is grounded in a tool result, not a guess. It also checks the markup for accessibility (WCAG 2.2 AA) against the Fast Simon checklist, citing the checklist item for each finding.
Accessibility (WCAG 2.2 AA)
Everything your assistant builds with the MCP is held to WCAG 2.2 level AA: labeled search and filter controls, full keyboard support (including the autocomplete), visible focus, result counts announced to screen readers, product image alt text, color contrast and touch target size.
To check and fix an integration that already exists, run:
/accessibility-review
Your assistant checks each Fast Simon surface (search box, results, collections, filters, recommendations, quick view), fixes the markup, and lists anything that needs your decision, such as a brand color that fails contrast. Automated checks find only part of the problems, so also try the pages with the keyboard and a screen reader.
What it knows
| Ask your assistant about… | The MCP provides |
|---|---|
| How to build a search / collection / recommendations / visual-discovery page | Searchable docs + ready recipes |
| The exact arguments a method takes | The authoritative signature from the SDK type declarations |
| Which events a surface must report | The event constants and payloads for that surface |
| Whether something is safe to use | A clear flag when a method/field is not part of the documented public API |
| Your store's search, collection, widget and revenue analytics | Your Fast Simon reports, read with your API key |
Because that knowledge is derived from the SDK and docs themselves, it stays correct as the SDK evolves — your assistant won't invent a method or a parameter that doesn't exist.