Spree Commerce: open-source B2B and marketplace ecommerce
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
作者による説明(英語の原文)
Local, stateful twins of any API (Stripe, Twilio, any OpenAPI spec) for agents. No keys, no bill.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"mockanything": {
"command": "npx",
"args": [
"-y",
"@shipatmidnight/mockanything",
"mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add mockanything -- npx -y @shipatmidnight/mockanything mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"mockanything": {
"command": "npx",
"args": [
"-y",
"@shipatmidnight/mockanything",
"mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"mockanything": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@shipatmidnight/mockanything",
"mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント shreyassaw5394 で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.2)がレジストリに届いたのは7 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
MCP server integrating with Stripe - tools for customers, products, payments, and more.
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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 .
冒頭だけを表示しています。続きはリポジトリで読めます