Spree Commerce developer docs for AI agents
Spree Commerce docs for AI coding agents: build headless B2B and marketplace ecommerce on its APIs.
Local, stateful twins of any API (Stripe, Twilio, any OpenAPI spec) for agents. No keys, no bill.
Pick the AI app you use, then copy the settings.
Passed 2/2 checks · Runs on your computer
First: which AI do you use?
Pick your app and the steps appear below.
Works with Claude, with some setup first
Install Node.js on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
One time only; it works for every server that needs Node.js
SettingsDeveloperEdit Config
{
"mcpServers": {
"mockanything": {
"command": "npx",
"args": [
"-y",
"@shipatmidnight/mockanything",
"mcp"
]
}
}
}Use Mockanything and tell me what you can do for me, then show me one thing✓ If Claude says it is using Mockanything or shows a Mockanything tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
ChatGPT cannot connect Mockanything yet
Mockanything runs on your computer, but ChatGPT can only connect servers that run on the web
A · Use an app that can connect Mockanything
B · Others in Online shops & payments that work with ChatGPT
Picked from the most used in the same category, only ones that connect by address with no key
Works with Claude Code, with some setup first
Install Node.js on your computer first (one time)
One time only; it works for every server that needs Node.js
Mac: press Command+Space and type Terminal · Windows: open PowerShell
claude mcp add --scope user mockanything -- npx -y @shipatmidnight/mockanything mcpYou should see Mockanything listed as connected
Use Mockanything and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using Mockanything or shows a Mockanything tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor, with some setup first
Install Node.js on your computer first (one time)
One time only; it works for every server that needs Node.js
Use Mockanything and tell me what you can do for me, then show me one thing✓ If Cursor says it is using Mockanything or shows a Mockanything tool in the answer, you are connected
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code, with some setup first
Install Node.js on your computer first (one time)
One time only; it works for every server that needs Node.js
Use Mockanything and tell me what you can do for me, then show me one thing✓ If VS Code says it is using Mockanything or shows a Mockanything tool in the answer, you are connected
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Claude Code
claude mcp add --scope user mockanything -- npx -y @shipatmidnight/mockanything mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"mockanything": {
"command": "npx",
"args": [
"-y",
"@shipatmidnight/mockanything",
"mcp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"mockanything": {
"command": "npx",
"args": [
"-y",
"@shipatmidnight/mockanything",
"mcp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"mockanything": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@shipatmidnight/mockanything",
"mcp"
]
}
}
}These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
npm: @shipatmidnight/mockanythingBased on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Run on your computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 12, 2026
The registry name was verified with the GitHub account shreyassaw5394, which owns the repo
Code last changed 6 days ago
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
No reviews yet
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 2 of 2 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed 6 days ago, and the latest version (0.2.2) reached the registry 10 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spree Commerce developer docs for AI agents, Stripe MCP, Sessy — Amazon SES observability
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Spree Commerce docs for AI coding agents: build headless B2B and marketplace ecommerce on its APIs.
Stripe’s official server lets AI view and manage customers, products, payments and invoices. Connect to Stripe’s cloud and sign in with OAuth.
Read-only Amazon SES observability: search events, inspect bounces, pull delivery stats.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
A working twin of an API, running on your machine in one command. No keys, no sandbox sign-up, no bill.
npx @shipatmidnight/mockanything stripe
Point your app or agent at that URL instead of the real one and it behaves like the real API for the flows it covers: create a customer, charge a test card, get the signed webhook, refund it. None of it is real, and your app's calls never reach the real provider.
Mock Anything works with most public APIs, not just a fixed list (every API in the public APIs.guru directory started as a twin in our 2026-10-29 measurement):
npx @shipatmidnight/mockanything stripe # a hand-tuned pack
npx @shipatmidnight/mockanything ./openapi.yaml # your own OpenAPI / Swagger file npx @shipatmidnight/mockanything https://example.com/openapi.json npx @shipatmidnight/mockanything slack # any name in the public APIs.guru directory (2,500+ APIs)
Agents write code that calls payments, SMS, email and developer APIs all day. Testing that today means real keys (the agent can spend money or text real people), sandboxes (accounts and keys for every provider, and many regional providers barely have one), or hand-written mocks that break the moment the agent does something you didn't expect.
A twin is different from a mock:
requires_payment_method → succeeded, queued → sent → delivered).--chaos) adds timeouts, 5xx errors, 429s, slow responses, duplicate and out-of-order webhooks. Seeded, so a failure you hit can be replayed.Hand-tuned twins, checked against each provider's official SDK in our test suite.
| Pack | Flows | Test values |
|---|---|---|
stripe | Customers, PaymentIntents (confirm, manual capture, cancel), refunds, Checkout Sessions, webhook endpoints, events | pm_card_visa, pm_card_chargeDeclined, pm_card_chargeDeclinedInsufficientFunds, pm_card_threeDSecure2Required … |
paystack | Initialize → test checkout page → verify, charge saved cards, customers, refunds | Approve/Decline on the local test page |
twilio | Send SMS, status callbacks (queued → sent → delivered), fetch, list, delete | +15005550001 (invalid), +15005550002 (unroutable), +15005550004 (unsubscribed) … |
resend | Send, retrieve, list, schedule, cancel; delivery, bounce and complaint events | delivered@resend.dev, bounced@resend.dev, complained@resend.dev |
github | Repos, issues (open, edit, close, reopen), comments, pull requests (open, merge) | Any owner/repo works and starts empty |
openai | Chat completions and the Responses API, streamed or not; embeddings; models. Replies are canned and start with [mock]; no model runs | Scenarios tool_call, rate_limit, insufficient_quota, context_length_exceeded, server_error |
anthropic | Messages, streamed or not, with tool use; token counting; models. Replies are canned and start with [mock]; no model runs | Scenarios tool_use, rate_limit, overloaded, invalid_request, api_error |
mockanything env prints the snippet for pointing the official SDK at the twin, for example:
const stripe = new Stripe("sk_test_mockanything", { host: "localhost", port: 4010, protocol: "http" });
Give Mock Anything an OpenAPI 3.x or Swagger 2.0 description (a file, a URL, or just the API's name) and it builds a stateful twin by reading the spec:
/things + /things/{id} become a collection you can create, list, read, update and delete;/things/{id}/cancel-style paths become state changes, matched to the object's status values;x-mockanything-fallback);See what was inferred, and change it:
npx @shipatmidnight/mockanything inspect ./openapi.yaml --out twin.yaml # edit twin.yaml
npx @shipatmidnight/mockanything twin.yaml
Measured on 2026-10-29 with scripts/coverage.ts, which builds a twin from each spec, creates objects, then calls every operation (up to 40 per API):
| Source | APIs | Twin starts | Calls without a server error | Calls that succeed |
|---|---|---|---|---|
| Every API in the public APIs.guru directory | 2,528 | 2,528 | 37,770 of 37,770 | 90.2% |
Providers' own current specs (mockanything list) | 54 | 54 | 1,988 of 1,988 | 96.8% |
The calls that don't succeed get proper errors, mostly "not found" for an id that was never created, or a missing parent object. Starting and answering is not the same as matching the real API; verify measures that.
Popular APIs whose providers publish a current spec (Square, PayPal, Adyen, Discord, Jira, Cloudflare, Vercel, Supabase, Clerk, Hugging Face and more) are fetched from the provider's own published source rather than the directory, which is often out of date. Run mockanything list for all of them.
Twins built straight from the public Stripe, Twilio, GitHub and Resend specs, with no hand-tuning, pass the official SDKs' basic create/read/update/list/delete flows (scripts/conformance.ts).
Record your app talking to the real API (browser DevTools → Network → "Save all as HAR", or any proxy that writes HAR) and start a twin from the file:
npx @shipatmidnight/mockanything ./checkout.har
Mock Anything rebuilds the endpoints, id formats, list shapes and status lifecycles it saw. It keeps field names, types, id formats and short status/type codes only: ids are replaced with made-up ones of the same format, and header values, cookies, query values, free text, numbers and booleans from the recording are never copied into the twin. Emails, URLs and dates are replaced with made-up values.
No spec at all? Let your agent build one: the MCP tool twin_from_docs reads a documentation page and gives the agent a short format guide; the agent writes a twin definition and starts it with twin_start.
Copy skills/mock-anything into ~/.claude/skills/ (or your agent's skills folder). Then tell the agent "mock Stripe", "test this against a fake Notion", or point it at a spec, a HAR file or a docs page. The skill uses only the command line: it starts a twin, points your app at it, and drives it:
npx @shipatmidnight/mockanything events # requests and webhooks the twin saw
npx @shipatmidnight/mockanything state # objects it holds npx @shipatmidnight/mockanything scenario card_declined # force an edge case on the next call npx @shipatmidnight/mockanything chaos 5xx,429 # failures (chaos off to stop) npx @shipatmidnight/mockanything clock 3d # move time forward npx @shipatmidnight/mockanything reset
For an API with only a docs page, npx @shipatmidnight/mockanything docs gives the agent the page text and the twin format; the agent writes twin.json, checks it with npx @shipatmidnight/mockanything validate twin.json, and starts it.
claude mcp add mockanything -- npx -y @shipatmidnight/mockanything mcp
Cursor, Windsurf and other MCP clients:
{ "mcpServers": { "mockanything": { "command": "npx", "args": ["-y", "@shipatmidnight/mockanything", "mcp"] } } }
Tools: twin_start, twin_from_docs, twin_env, twin_events, twin_state, twin_scenario, twin_chaos, twin_webhook_add, twin_emit, twin_advance_clock, twin_reset, twin_stop, twin_list, packs_list.
twin_start loads files only if they are .json, .yaml, .yml or .har, inside the MCP server's working directory and not hidden. URLs on your own machine are off for agents unless you set MOCKANYTHING_ALLOW_LOCAL=1 in the server's environment.
An agent can say "start a Stripe twin, build the checkout, then force a declined card and check my code handles it" without asking you for keys.
npx @shipatmidnight/mockanything stripe --persist # ~/.mockanything/state/stripe.json
npx @shipatmidnight/mockanything stripe --state ./twin.json # or a file you choose
Objects, id counters, the test clock, the webhook secret and registered webhook endpoints are saved shortly after each change and when the twin stops. The file is readable by you only. Delete it (or press Reset in the dashboard) to start fresh. Agents get the same with twin_start and persist: true.
Every twin has a local dashboard (the link with its access token is printed at start): live requests and responses, webhooks sent and their delivery status, the twin's stored state, scenarios to force, and chaos controls.
mockanything <api> start a twin (pack, API name, OpenAPI file or URL)
mockanything list built-in packs mockanything inspect print the inferred definition (--out file.yaml) mockanything validate check a twin definition mockanything env config snippets mockanything verify how closely the twin matches the real API (your test key) mockanything running | events | state | scenario [name] | chaos | clock | reset mockanything docs | guide build a twin from a docs page mockanything mcp MCP server over stdio
--port --webhook --allow-webhook-host --cors --chaos[=timeout,5xx,slow,429,dup-webhooks,out-of-order] --chaos-rate <0..1> --seed --persist --state --overrides --json
localhost only. Delivers webhooks to localhost only unless you allow a host.sk_live_… and similar) and real-looking card numbers. Use the provider's documented test values.verify calls to the provider's sandbox with your test key, and npm when you install or run it with npx.A twin is only as good as the facts it was built from. Packs cover the main flow of each API, not every endpoint, and inferred twins make guesses that you can inspect and override.
verify measures it. It runs the same scripted calls against the twin and against the provider's real sandbox, using your own test-mode key, and compares status codes, field names, field types, id formats and error codes:
npx @shipatmidnight/mockanything verify stripe --key sk_test_... # or set MOCKANYTHING_SANDBOX_KEY
npx @shipatmidnight/mockanything verify paystack --key sk_test_... --out report.md npx @shipatmidnight/mockanything verify ./openapi.yaml --against https://api.example.com --key .