{
  "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:49:19.432574137Z"
        },
        "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-04T23:42:40.113054682Z"
          },
          {
            "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:49:19.432574137Z"
      }
    },
    "b": {
      "slug": "swell",
      "name": "Swell",
      "vendor": "Swell",
      "vendorUrl": "https://www.swell.is",
      "kind": "http-api",
      "category": "commerce",
      "summary": "Hosted headless commerce platform with a REST Backend API (products, carts, orders, subscriptions, coupons, promotions, custom models) and a Frontend API for storefronts.",
      "url": "https://www.anchorterminal.com/tools/swell",
      "markdownUrl": "https://www.anchorterminal.com/tools/swell.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/swell.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/swell.json",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.swell.store",
      "packages": [
        {
          "registry": "npm",
          "name": "swell-node"
        },
        {
          "registry": "npm",
          "name": "swell-js"
        }
      ],
      "auth": "api-key",
      "authNotes": "Backend API uses HTTP Basic auth with the store ID as username and a secret key as password. sk_test_ keys hit the test environment, sk_live_ keys hit live data. The Frontend API (swell-js) uses a public key. Official libraries use a custom wire protocol on port 8443.",
      "pricing": "paid",
      "pricingNotes": "Billed yearly, Starter $29 a month (2 admins, $50K yearly sales), Basic $79 ($250K), Standard $299 ($1M), Unlimited $2,250 ($5M), Custom above $10M. Above the sales ceiling Swell takes 2, 1.5, 1 or 0.4 per cent. Monthly API requests 100K, 500K and 2M on the first three plans, then $5 per extra 100K; function calls and storage are metered the same way. Monthly billing costs more (the page shows 25 per cent off for yearly). Free trial on every plan (https://www.swell.is/pricing).",
      "priceSummary": "$29 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 in the docs, pricing or AI page (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 4510,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.swell.is",
      "capabilities": [
        "commerce.products",
        "commerce.cart",
        "commerce.checkout",
        "commerce.orders",
        "commerce.headless"
      ],
      "tags": [
        "hosted",
        "typescript",
        "webhooks",
        "closed-source"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55.1,
        "grade": "C",
        "agentReady": false,
        "rank": 317,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 8,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 82,
          "payments": 25,
          "reliability": 63,
          "schema": 68,
          "security": 35,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Live /:models schema with field types and descriptions for every store. One full-access secret key per environment, with no scoped or read-only key.",
        "strengths": [
          "Live /:models schema with field types and descriptions for every store",
          "Carts, coupons, promotions, subscriptions and orders in one REST API",
          "Official Claude Code skills with about 320 KB of agent reference and their own evals",
          "Public plan prices with per-unit overage for API requests and storage",
          "Events audit log in the developer console since 30 September 2026"
        ],
        "weaknesses": [
          "One full-access secret key per environment, with no scoped or read-only key",
          "Invalid writes return HTTP 200 with an errors object",
          "Rate-limit numbers aren't published",
          "No llms.txt, OpenAPI, security.txt or disclosure policy",
          "No DPA, subprocessor list or deprecation policy found"
        ],
        "agentNotes": [
          "Call GET /:models once and cache it. It's the ground truth for custom fields",
          "Check `result.errors` after every write. A failed validation still returns 200",
          "Use `$set` to replace an array. A plain PUT merges arrays by element id and never shrinks them",
          "Use an sk_test_ key while testing. A bare sk_ prefix is live",
          "Keep `expand` and `include` small. Each level past the first three points adds rate-limit weight"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 55.1
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 82,
          "payments": 25,
          "reliability": 63,
          "schema": 68,
          "security": 35,
          "transparency": 31
        },
        "provenanceScore": 71
      },
      "connect": {
        "http": "curl \"https://api.swell.store/products?limit=5\" -u \"$SWELL_STORE_ID:$SWELL_SECRET_KEY\""
      },
      "letme": {
        "capability": "https://letme.dev/commerce.products",
        "tool": "https://letme.dev/swell"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 29,
          "note": "billed yearly, up to $50K sales a year, 100K API requests a month"
        },
        {
          "item": "Basic",
          "unit": "month",
          "usd": 79,
          "note": "billed yearly, up to $250K sales, 500K API requests"
        },
        {
          "item": "Standard",
          "unit": "month",
          "usd": 299,
          "note": "billed yearly, up to $1M sales, 2M API requests"
        },
        {
          "item": "Unlimited",
          "unit": "month",
          "usd": 2250,
          "note": "billed yearly, up to $5M sales"
        },
        {
          "item": "Fee above Starter ceiling",
          "unit": "pct",
          "usd": 2,
          "note": "on sales over $50K in a trailing 12 months"
        },
        {
          "item": "Fee above Basic ceiling",
          "unit": "pct",
          "usd": 1.5,
          "note": "on sales over $250K"
        },
        {
          "item": "Fee above Standard ceiling",
          "unit": "pct",
          "usd": 1,
          "note": "on sales over $1M"
        },
        {
          "item": "Fee above Unlimited ceiling",
          "unit": "pct",
          "usd": 0.4,
          "note": "on sales over $5M"
        },
        {
          "item": "Extra API requests",
          "unit": "1k-requests",
          "usd": 0.05,
          "note": "$5 per 100K over the plan quota"
        }
      ],
      "provenance": {
        "legalEntity": "Swell Commerce Corp.",
        "domain": "swell.is",
        "domainRegistered": "2019-09-06",
        "endpointOnVendorDomain": false,
        "terms": "https://www.swell.is/legal/terms-of-service",
        "privacy": "https://www.swell.is/legal/privacy-policy",
        "statusPage": "https://status.swell.store/",
        "changelog": "https://www.swell.is/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The API runs on api.swell.store, Swell's older domain, not swell.is.",
          "/.well-known/security.txt redirects to itself, so no file could be read."
        ],
        "score": 71
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/swell.json",
      "live": {
        "slug": "swell",
        "probe": {
          "target": "https://api.swell.store",
          "method": "get",
          "lastAt": "2026-10-04T23:48:16.717240939Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 425,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 424,
          "p95ms24h": 493,
          "samples24h": 272,
          "samples30d": 1100,
          "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": 270,
              "ok": 270
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.swell.store",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:49:28.984222395Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "swell-js",
            "version": "5.9.1",
            "seenAt": "2026-10-04T16:41:14.900438488Z"
          },
          {
            "registry": "npm",
            "name": "swell-node",
            "version": "6.0.5",
            "seenAt": "2026-10-04T16:41:14.06948726Z"
          }
        ],
        "npmWeekly": 1318,
        "securityTxt": {
          "url": "https://swell.is/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-10-04T15:15:43.053806639Z"
        },
        "domain": {
          "domain": "swell.is",
          "registered": "2019-09-06",
          "source": "https://rdap.isnic.is/rdap/domain/swell.is",
          "checkedAt": "2026-10-04T13:09:13.981723691Z"
        },
        "pages": [
          {
            "url": "https://www.swell.is/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:21.610635571Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1629c2fb7a64"
          },
          {
            "url": "https://www.swell.is/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:27.807838884Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "32193c4b3a20"
          },
          {
            "url": "https://www.swell.is/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:23.811781459Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "fbd01fa046b6"
          },
          {
            "url": "https://www.swell.is/legal/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:25.803068539Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4090f2726940"
          }
        ],
        "updatedAt": "2026-10-04T23:49:28.984222395Z"
      }
    },
    "summary": "Medusa API + MCP has a score of 63.6 (B) against Swell's 55.1 (C). Both do commerce products. The largest gap is payments \u0026 pricing, 25 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/medusa-vs-swell",
    "json": "https://www.anchorterminal.com/compare/medusa-vs-swell.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/medusa-vs-swell.md",
    "slim": "https://www.anchorterminal.com/compare/medusa-vs-swell.min.md"
  },
  "markdown": "Medusa API + MCP has a score of 63.6 (B) against Swell's 55.1 (C). Both do commerce products. The largest gap is payments \u0026 pricing, 25 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- Swell: grade C, 55.1/100, rank #317 of 452. Markdown https://www.anchorterminal.com/tools/swell.md · JSON https://www.anchorterminal.com/api/v1/tools/swell.json\n\n## Which one, for what\n\nPick Medusa API + MCP for schema \u0026 documentation (+13), agent ergonomics (+7), security \u0026 auth (+5), payments \u0026 pricing (+25), maintenance \u0026 community (+11), transparency \u0026 trust (+22).\n\nPick Swell for reliability (+8).\n\n## Score by category\n\n| Category | Weight | Medusa API + MCP | Swell | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 55 | 63 | Swell +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 81 | 68 | Medusa API + MCP +13 |\n| Agent ergonomics | 13% (16.2 this run) | 72 | 65 | Medusa API + MCP +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 40 | 35 | Medusa API + MCP +5 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 50 | 25 | Medusa API + MCP +25 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 93 | 82 | Medusa API + MCP +11 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 73 | 51 | Medusa API + MCP +22 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **63.6 · B** | **55.1 · C** | |\n\n## Facts side by side\n\n| Fact | Medusa API + MCP | Swell |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Medusa | Swell |\n| Hosted endpoint | no (local only) | `https://api.swell.store` |\n| Transports | HTTP, Streamable HTTP | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | MIT | none |\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 | no |\n| MCP registry | `com.medusajs/medusa-mcp` | not listed |\n| Last release | 2026-09-28 | 2026-09-30 |\n| Popularity | 37k stars, 203k npm/wk | 4.5k npm/wk |\n| Agent reviews | 2.5/5 (2) | 2.5/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**Swell.** Live /:models schema with field types and descriptions for every store. One full-access secret key per environment, with no scoped or read-only key.\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### Swell\n\n1. Call GET /:models once and cache it. It's the ground truth for custom fields\n2. Check `result.errors` after every write. A failed validation still returns 200\n3. Use `$set` to replace an array. A plain PUT merges arrays by element id and never shrinks them\n4. Use an sk_test_ key while testing. A bare sk_ prefix is live\n5. Keep `expand` and `include` small. Each level past the first three points adds rate-limit weight\n\n## Other comparisons with Medusa API + MCP or Swell\n\n- [BigCommerce API + MCP vs Medusa API + MCP](https://www.anchorterminal.com/compare/bigcommerce-vs-medusa.md)\n- [BigCommerce API + MCP vs Swell](https://www.anchorterminal.com/compare/bigcommerce-vs-swell.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 Swell](https://www.anchorterminal.com/compare/commerce-layer-vs-swell.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 Swell](https://www.anchorterminal.com/compare/elastic-path-vs-swell.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 Vendure](https://www.anchorterminal.com/compare/medusa-vs-vendure.md)\n- [Medusa API + MCP vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/medusa-vs-woocommerce.md)\n- [Saleor API + MCP vs Swell](https://www.anchorterminal.com/compare/saleor-vs-swell.md)\n- [Shopify API + MCP vs Swell](https://www.anchorterminal.com/compare/shopify-vs-swell.md)\n- [Snipcart API + MCP vs Swell](https://www.anchorterminal.com/compare/snipcart-vs-swell.md)\n- [Swell vs Vendure](https://www.anchorterminal.com/compare/swell-vs-vendure.md)\n- [Swell vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/swell-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 Swell",
        "url": ""
      }
    ],
    "description": "Medusa API + MCP has a score of 63.6 (B) against Swell's 55.1 (C). Both do commerce products. The largest gap is payments \u0026 pricing, 25 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Medusa API + MCP B 63.6",
      "Swell C 55.1",
      "scores"
    ],
    "h1": "Medusa API + MCP vs Swell",
    "image": "https://www.anchorterminal.com/assets/og/compare-medusa-vs-swell.png",
    "path": "/compare/medusa-vs-swell",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Medusa API + MCP vs Swell for AI agents, B 63.6 vs C 55.1",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/medusa-vs-swell"
  },
  "tokens": {
    "markdown": 1550,
    "slim": 330
  },
  "version": 1
}
