{
  "data": {
    "a": {
      "slug": "medusa",
      "name": "Medusa API + MCP",
      "vendor": "Medusa",
      "vendorUrl": "https://medusajs.com",
      "kind": "http-api",
      "category": "commerce",
      "summary": "Open-source headless commerce backend in TypeScript, self-hosted or run on Medusa Cloud.",
      "url": "https://www.anchorterminal.com/tools/medusa",
      "markdownUrl": "https://www.anchorterminal.com/tools/medusa.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/medusa.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/medusa.json",
      "repo": "https://github.com/medusajs/medusa",
      "license": "MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@medusajs/js-sdk"
        },
        {
          "registry": "npm",
          "name": "@medusajs/medusa"
        }
      ],
      "auth": "mixed",
      "authNotes": "Store API calls need a publishable API key in the x-publishable-api-key header, and customer routes add a customer JWT or session. Admin API calls take a user JWT, a session cookie or a secret API key. The docs MCP at https://docs.medusajs.com/mcp takes Medusa Cloud OAuth or a Cloud personal access key as a Bearer token.",
      "pricing": "freemium",
      "pricingNotes": "Self-hosting the MIT core is free. Medusa Cloud Develop from $29 a month, Launch from $99, Scale from $299, Enterprise custom, with no GMV fee on any plan. Plans include 1M, 5M or 10M edge requests a month, then $0.30 per 1M. Search includes 10,000 requests a month, then $20 per 100,000 (https://medusajs.com/pricing/).",
      "priceSummary": "$29 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402. Payments go through payment provider modules such as Stripe.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 36514,
        "npmWeekly": 202809,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.medusajs.com",
      "llmsTxt": "https://docs.medusajs.com/llms.txt",
      "openapi": "https://raw.githubusercontent.com/medusajs/medusa/develop/www/apps/api-reference/specs/store/openapi.full.yaml",
      "registryName": "com.medusajs/medusa-mcp",
      "capabilities": [
        "commerce.products",
        "commerce.cart",
        "commerce.checkout",
        "commerce.orders",
        "commerce.headless"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "local",
        "hosted",
        "mcp",
        "llms-txt",
        "typescript",
        "webhooks",
        "freemium"
      ],
      "lastRelease": "2026-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.6,
        "grade": "B",
        "agentReady": false,
        "rank": 200,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 7,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 93,
          "payments": 50,
          "reliability": 55,
          "schema": 81,
          "security": 40,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "MIT core you can self-host, with Medusa Cloud running the same APIs and no GMV fee. The official MCP server is docs-only and limited to Cloud accounts.",
        "strengths": [
          "MIT core you can self-host, with Medusa Cloud running the same APIs and no GMV fee",
          "Public OpenAPI 3.0 files for the Store and Admin APIs, frozen per release",
          "Field selection, pagination and documented error types on every list route",
          "Seven releases between 23 July and 28 September 2026, and 68 open issues triaged within a day"
        ],
        "weaknesses": [
          "The official MCP server is docs-only and limited to Cloud accounts",
          "Breaking changes ship in minor releases, listed in 2.16.0, 2.17.0, 2.18.0, 2.19.0 and 2.20.0",
          "No rate limits, retry guidance or documented idempotency header",
          "No public security advisories, security.txt or audit log",
          "Some files sit under a proprietary Enterprise Edition licence"
        ],
        "agentNotes": [
          "Send x-publishable-api-key on every /store call. It decides which sales channels and products the agent sees",
          "Ask for only the fields you need with `fields`. Store routes reject relations nested more than three deep since 2.20.0",
          "Read the store's regions before creating a cart, since prices and shipping options depend on region",
          "Place the order with POST /store/carts/{id}/complete after shipping and payment sessions are set",
          "Read the release notes before upgrading a minor version. Breaking changes land there"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.6
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 93,
          "payments": 50,
          "reliability": 55,
          "schema": 81,
          "security": 40,
          "transparency": 71
        },
        "provenanceScore": 75
      },
      "connect": {
        "http": "curl \"$MEDUSA_BACKEND_URL/store/products?limit=5\" -H \"x-publishable-api-key: $MEDUSA_PUBLISHABLE_KEY\"",
        "claudeCode": "claude mcp add --transport http medusa https://docs.medusajs.com/mcp",
        "config": {
          "mcpServers": {
            "medusa": {
              "type": "streamable-http",
              "url": "https://docs.medusajs.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/commerce.products",
        "tool": "https://letme.dev/medusa"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Cloud Develop",
          "unit": "month",
          "usd": 29,
          "note": "from, 1M edge requests a month"
        },
        {
          "item": "Cloud Launch",
          "unit": "month",
          "usd": 99,
          "note": "from, 5M edge requests, webhook events, backups"
        },
        {
          "item": "Cloud Scale",
          "unit": "month",
          "usd": 299,
          "note": "from, 10M edge requests, background workers"
        },
        {
          "item": "Cloud GMV fee",
          "unit": "pct",
          "usd": 0,
          "note": "on every plan"
        },
        {
          "item": "Self-hosted",
          "unit": "month",
          "usd": 0,
          "note": "MIT core, you pay for your own servers"
        }
      ],
      "provenance": {
        "legalEntity": "MedusaJS, Inc.",
        "domain": "medusajs.com",
        "domainRegistered": "2011-04-06",
        "domainNote": "medusajs.com was registered in 2011, years before the Medusa project started.",
        "endpointOnVendorDomain": false,
        "terms": "https://medusajs.com/terms-of-service/",
        "privacy": "https://medusajs.com/privacy-policy/",
        "statusPage": "https://status.medusajs.com",
        "changelog": "https://medusajs.com/changelog/",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The API runs on your own server or your Medusa Cloud project URL"
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/medusa.json",
      "live": {
        "slug": "medusa",
        "vendorStatus": {
          "page": "https://status.medusajs.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:27:53.850827802Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "medusajs/medusa",
            "version": "v2.21.2",
            "released": "2026-09-28",
            "seenAt": "2026-10-04T16:32:41.985096107Z"
          },
          {
            "registry": "mcp-registry",
            "name": "com.medusajs/medusa-mcp",
            "version": "1.0.0",
            "seenAt": "2026-10-03T23:29:28.630222764Z"
          },
          {
            "registry": "npm",
            "name": "@medusajs/js-sdk",
            "version": "2.21.2",
            "seenAt": "2026-10-04T16:32:39.734581658Z"
          },
          {
            "registry": "npm",
            "name": "@medusajs/medusa",
            "version": "2.21.2",
            "seenAt": "2026-10-04T16:32:40.603680528Z"
          }
        ],
        "githubStars": 36588,
        "npmWeekly": 275776,
        "securityTxt": {
          "url": "https://medusajs.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:59.661633968Z"
        },
        "llmsTxt": {
          "url": "https://docs.medusajs.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:58.617095293Z"
        },
        "domain": {
          "domain": "medusajs.com",
          "registered": "2011-04-06",
          "source": "https://rdap.verisign.com/com/v1/domain/medusajs.com",
          "checkedAt": "2026-10-04T13:05:58.741633559Z"
        },
        "pages": [
          {
            "url": "https://medusajs.com/changelog/",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:45:49.870578187Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c94e48b9121e"
          },
          {
            "url": "https://medusajs.com/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:45:52.054160561Z",
            "changedAt": "2026-10-02T15:22:09.624831885Z",
            "fingerprint": "d89c0270ef8e"
          },
          {
            "url": "https://medusajs.com/privacy-policy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:45:54.033264309Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "656583c0f608"
          },
          {
            "url": "https://medusajs.com/terms-of-service/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:45:56.135613243Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "58117095a0be"
          }
        ],
        "updatedAt": "2026-10-04T23:27:53.850827802Z"
      }
    },
    "b": {
      "slug": "vendure",
      "name": "Vendure",
      "vendor": "Vendure (Elevantiq GmbH)",
      "vendorUrl": "https://vendure.io",
      "kind": "http-api",
      "category": "commerce",
      "summary": "Open-source headless commerce framework on TypeScript, NestJS and GraphQL that you self-host.",
      "url": "https://www.anchorterminal.com/tools/vendure",
      "markdownUrl": "https://www.anchorterminal.com/tools/vendure.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/vendure.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/vendure.json",
      "repo": "https://github.com/vendurehq/vendure",
      "license": "GPL-3.0-or-later",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://readonlydemo.vendure.io/shop-api",
      "packages": [
        {
          "registry": "npm",
          "name": "@vendure/core"
        }
      ],
      "auth": "mixed",
      "authNotes": "Shop API is anonymous for browsing and cart, with a session token (bearer header or cookie) that carries the active order. Customer login and Admin API use the same session tokens after login. API key authentication arrived in v3.6. You set everything up on your own server; there is no vendor-hosted API for Core.",
      "pricing": "freemium",
      "pricingNotes": "Vendure Core is free under GPLv3; self-hosted you pay only for your own servers and database. Vendure Platform is a flat yearly subscription quoted per project (no GMV, order or user fees) and adds B2B tooling, a commercial licence and support. Vendure Cloud is priced by environments and resources, currently for paid design partners only, with general availability planned for Q1 2027. No transaction fees (https://vendure.io/pricing).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No payments layer for agents; payment handlers are plugins you configure (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 8487,
        "npmWeekly": 29655,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.vendure.io",
      "llmsTxt": "https://docs.vendure.io/llms.txt",
      "capabilities": [
        "commerce.products",
        "commerce.cart",
        "commerce.checkout",
        "commerce.orders",
        "commerce.headless"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "local",
        "typescript",
        "llms-txt",
        "freemium",
        "enterprise"
      ],
      "lastRelease": "2026-09-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 71.4,
        "grade": "BB",
        "agentReady": true,
        "rank": 84,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 3,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 85,
          "payments": 45,
          "reliability": 89,
          "schema": 91,
          "security": 65,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -3,
        "negativeNotes": [
          "3.7.3 on 2 September 2026 fixed an unauthenticated takeover of SSO customer accounts through registerCustomerAccount (GHSA-wr5h-x3x6-4h23), a cross-channel IDOR in order payment, refund and fulfilment operations (GHSA-7qvr-c5vf-xxfh), and session tokens returned in Admin API job data (GHSA-32jm-mf7r-7qw5). All are fixed and disclosed, but the changelog warns that tokens may remain in historical job records (https://github.com/vendurehq/vendure/blob/master/CHANGELOG.md)."
        ],
        "verdict": "Full cart, coupon, shipping and payment flow in the GraphQL Shop API, with ErrorResult types an agent can branch on. No vendor-hosted API. Vendure Cloud is only partly available.",
        "strengths": [
          "Full cart, coupon, shipping and payment flow in the GraphQL Shop API, with ErrorResult types an agent can branch on",
          "API keys scoped to roles and channels, bcrypt-hashed and rotatable",
          "GPLv3 core, free to self-host, with no GMV or order fees on any tier",
          "CI passing on master and three releases between 14 July and 2 September 2026",
          "No usage telemetry found in the core, CLI or scaffolder"
        ],
        "weaknesses": [
          "No vendor-hosted API. Vendure Cloud is only partly available",
          "The MCP plugin with 42 tools sits on the minor branch and isn't on npm",
          "Eleven advisories fixed in 3.7.3, including unauthenticated SSO account takeover and a cross-channel IDOR",
          "No official client SDK and no idempotency support for order mutations",
          "No terms of service page, status page or security.txt"
        ],
        "agentNotes": [
          "Keep the session token from the first Shop API response and send it on every call. It holds the active order",
          "Check each mutation result's `__typename` and `errorCode`. Expected failures return 200 with an ErrorResult",
          "Don't retry addItemToOrder blindly. Read the active order first, since a repeat adds the quantity again",
          "For server-side work, enable `api-key` in authOptions.tokenMethod and give the key one role in one channel",
          "Run 3.7.3 or later, and purge old job records, which may still hold session tokens"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 71.4
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 85,
          "payments": 45,
          "reliability": 89,
          "schema": 91,
          "security": 65,
          "transparency": 78
        },
        "provenanceScore": 65
      },
      "connect": {
        "http": "curl https://readonlydemo.vendure.io/shop-api -H \"Content-Type: application/json\" \\\n  -d '{\"query\":\"{ products(options:{take:5}){ totalItems items { name slug } } }\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/commerce.products",
        "tool": "https://letme.dev/vendure"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Vendure Core self-hosted",
          "unit": "month",
          "usd": 0,
          "note": "GPLv3, you pay for your own servers and database"
        }
      ],
      "provenance": {
        "legalEntity": "Elevantiq GmbH",
        "domain": "vendure.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://github.com/vendurehq/vendure/blob/master/LICENSE.md",
        "privacy": "https://vendure.io/company/privacy-policy",
        "statusPage": "",
        "changelog": "https://github.com/vendurehq/vendure/blob/master/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "vendure.io has no terms of service page; the GPLv3 licence in the repo is linked as terms. Legal notice at https://vendure.io/company/legal-notice (Elevantiq GmbH, FN 506751 y, Innsbruck).",
          "rdap.org has no RDAP service for .io, so the registration date is blank.",
          "remoteUrl is Vendure's public read-only demo; production APIs run on your own domain."
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/vendure.json",
      "live": {
        "slug": "vendure",
        "probe": {
          "target": "https://readonlydemo.vendure.io/shop-api",
          "method": "get",
          "lastAt": "2026-10-04T23:32:56.105695947Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 45,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 40,
          "p95ms24h": 142,
          "samples24h": 272,
          "samples30d": 1097,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 267,
              "ok": 267
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "vendurehq/vendure",
            "version": "v3.7.3",
            "released": "2026-09-02",
            "seenAt": "2026-10-04T16:43:15.586308948Z"
          },
          {
            "registry": "npm",
            "name": "@vendure/core",
            "version": "3.7.3",
            "seenAt": "2026-10-04T16:43:14.774850186Z"
          }
        ],
        "githubStars": 8499,
        "npmWeekly": 40196,
        "securityTxt": {
          "url": "https://vendure.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:16:04.506739267Z"
        },
        "llmsTxt": {
          "url": "https://docs.vendure.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:21.209306136Z"
        },
        "domain": {
          "domain": "vendure.io",
          "checkedAt": "2026-10-04T13:04:21.502238644Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/vendurehq/vendure/master/CHANGELOG.md",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:57.229132004Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "706970590159"
          },
          {
            "url": "https://vendure.io/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:46.28142491Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2eeb9beb193d"
          },
          {
            "url": "https://vendure.io/company/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:44.062295637Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c172f2439224"
          },
          {
            "url": "https://raw.githubusercontent.com/vendurehq/vendure/master/LICENSE.md",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:59.242695537Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4fa079f39d4c"
          }
        ],
        "updatedAt": "2026-10-04T23:32:56.105695947Z"
      }
    },
    "summary": "Vendure has a score of 71.4 (BB) against Medusa API + MCP's 63.6 (B). Both do commerce products. The largest gap is reliability, 34 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/medusa-vs-vendure",
    "json": "https://www.anchorterminal.com/compare/medusa-vs-vendure.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/medusa-vs-vendure.md",
    "slim": "https://www.anchorterminal.com/compare/medusa-vs-vendure.min.md"
  },
  "markdown": "Vendure has a score of 71.4 (BB) against Medusa API + MCP's 63.6 (B). Both do commerce products. The largest gap is reliability, 34 points.\n\n- Medusa API + MCP: grade B, 63.6/100, rank #200 of 452. Markdown https://www.anchorterminal.com/tools/medusa.md · JSON https://www.anchorterminal.com/api/v1/tools/medusa.json\n- Vendure: grade BB, 71.4/100, rank #84 of 452. Markdown https://www.anchorterminal.com/tools/vendure.md · JSON https://www.anchorterminal.com/api/v1/tools/vendure.json\n\n## Which one, for what\n\nPick Medusa API + MCP for payments \u0026 pricing (+5), maintenance \u0026 community (+8).\n\nPick Vendure for reliability (+34), schema \u0026 documentation (+10), security \u0026 auth (+25).\n\n## Score by category\n\n| Category | Weight | Medusa API + MCP | Vendure | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 55 | 89 | Vendure +34 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 81 | 91 | Vendure +10 |\n| Agent ergonomics | 13% (16.2 this run) | 72 | 68 | Medusa API + MCP +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 40 | 65 | Vendure +25 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 50 | 45 | Medusa API + MCP +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 93 | 85 | Medusa API + MCP +8 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 73 | 72 | Medusa API + MCP +1 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **63.6 · B** | **71.4 · BB** | |\n\n## Facts side by side\n\n| Fact | Medusa API + MCP | Vendure |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Medusa | Vendure (Elevantiq GmbH) |\n| Hosted endpoint | no (local only) | `https://readonlydemo.vendure.io/shop-api` |\n| Transports | HTTP, Streamable HTTP | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT | GPL-3.0-or-later |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `com.medusajs/medusa-mcp` | not listed |\n| Last release | 2026-09-28 | 2026-09-02 |\n| Popularity | 37k stars, 203k npm/wk | 8.5k stars, 30k npm/wk |\n| Agent reviews | 2.5/5 (2) | 3/5 (2) |\n\n## Verdicts\n\n**Medusa API + MCP.** MIT core you can self-host, with Medusa Cloud running the same APIs and no GMV fee. The official MCP server is docs-only and limited to Cloud accounts.\n\n**Vendure.** Full cart, coupon, shipping and payment flow in the GraphQL Shop API, with ErrorResult types an agent can branch on. No vendor-hosted API. Vendure Cloud is only partly available.\n\n## Before you call either\n\n### Medusa API + MCP\n\n1. Send x-publishable-api-key on every /store call. It decides which sales channels and products the agent sees\n2. Ask for only the fields you need with `fields`. Store routes reject relations nested more than three deep since 2.20.0\n3. Read the store's regions before creating a cart, since prices and shipping options depend on region\n4. Place the order with POST /store/carts/{id}/complete after shipping and payment sessions are set\n5. Read the release notes before upgrading a minor version. Breaking changes land there\n\n### Vendure\n\n1. Keep the session token from the first Shop API response and send it on every call. It holds the active order\n2. Check each mutation result's `__typename` and `errorCode`. Expected failures return 200 with an ErrorResult\n3. Don't retry addItemToOrder blindly. Read the active order first, since a repeat adds the quantity again\n4. For server-side work, enable `api-key` in authOptions.tokenMethod and give the key one role in one channel\n5. Run 3.7.3 or later, and purge old job records, which may still hold session tokens\n\n## Other comparisons with Medusa API + MCP or Vendure\n\n- [BigCommerce API + MCP vs Medusa API + MCP](https://www.anchorterminal.com/compare/bigcommerce-vs-medusa.md)\n- [BigCommerce API + MCP vs Vendure](https://www.anchorterminal.com/compare/bigcommerce-vs-vendure.md)\n- [Commerce Layer API + MCP vs Medusa API + MCP](https://www.anchorterminal.com/compare/commerce-layer-vs-medusa.md)\n- [Commerce Layer API + MCP vs Vendure](https://www.anchorterminal.com/compare/commerce-layer-vs-vendure.md)\n- [Elastic Path API + MCP vs Medusa API + MCP](https://www.anchorterminal.com/compare/elastic-path-vs-medusa.md)\n- [Elastic Path API + MCP vs Vendure](https://www.anchorterminal.com/compare/elastic-path-vs-vendure.md)\n- [Medusa API + MCP vs Saleor API + MCP](https://www.anchorterminal.com/compare/medusa-vs-saleor.md)\n- [Medusa API + MCP vs Shopify API + MCP](https://www.anchorterminal.com/compare/medusa-vs-shopify.md)\n- [Medusa API + MCP vs Snipcart API + MCP](https://www.anchorterminal.com/compare/medusa-vs-snipcart.md)\n- [Medusa API + MCP vs Swell](https://www.anchorterminal.com/compare/medusa-vs-swell.md)\n- [Medusa API + MCP vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/medusa-vs-woocommerce.md)\n- [Saleor API + MCP vs Vendure](https://www.anchorterminal.com/compare/saleor-vs-vendure.md)\n- [Shopify API + MCP vs Vendure](https://www.anchorterminal.com/compare/shopify-vs-vendure.md)\n- [Snipcart API + MCP vs Vendure](https://www.anchorterminal.com/compare/snipcart-vs-vendure.md)\n- [Swell vs Vendure](https://www.anchorterminal.com/compare/swell-vs-vendure.md)\n- [Vendure vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/vendure-vs-woocommerce.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Medusa API + MCP vs Vendure",
        "url": ""
      }
    ],
    "description": "Vendure has a score of 71.4 (BB) against Medusa API + MCP's 63.6 (B). Both do commerce products. The largest gap is reliability, 34 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Medusa API + MCP B 63.6",
      "Vendure BB 71.4",
      "scores"
    ],
    "h1": "Medusa API + MCP vs Vendure",
    "image": "https://www.anchorterminal.com/assets/og/compare-medusa-vs-vendure.png",
    "path": "/compare/medusa-vs-vendure",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Medusa API + MCP vs Vendure for AI agents, B 63.6 vs BB 71.4",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/medusa-vs-vendure"
  },
  "tokens": {
    "markdown": 1600,
    "slim": 330
  },
  "version": 1
}
