Head to head · Commerce products · October 2026 research run
Square vs Vendure
Vendure scores 70.9 (BB) on agent readiness against Square's 69.2 (B), and leads in 4 of 7 scored categories. Square leads on agent ergonomics. Both do commerce products.
Which one, for what
Square B
Good for Agents working for a seller already on Square, on catalogue, inventory, orders, payment links and customers, online and in person.
Ahead on
- Agent ergonomics, 83 against 68
Also in its favour
- Runs on your own machine
- No incidents deducted, where Vendure loses 3 points for them
Watch for
The MCP server is marked beta, and the remote server reaches production data only
Vendure BB
Good for TypeScript teams that want a typed GraphQL commerce server and will host it.
Ahead on
- Reliability, 89 against 58
- Payments & pricing, 45 against 40
Also in its favour
- Agent-ready, a grade of BB or better
- Open source
Watch for
No vendor-hosted API. Vendure Cloud is only partly available
Score by category
| Category | Weight this run | Square | Vendure | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 58 | 89 | Vendure +31 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 87 | 91 | Vendure +4 |
| Agent ergonomics | 13%16.2 | 83 | 68 | Square +15 |
| Security & auth | 14%17.5 | 67 | 65 | Square +2 |
| Payments & pricing | 10%12.5 | 40 | 45 | Vendure +5 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 81 | 85 | Vendure +4 |
| Transparency & trust | 7%8.8 | 70 | 67 | Square +3 |
| Negative events | ≤15 | 0 | -3 | |
| Total | 69.2 · B | 70.9 · BB |
Facts side by side
| Fact | Square | Vendure |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Block, Inc. | Vendure (Elevantiq GmbH) |
| Hosted endpoint | https://mcp.squareup.com/mcp | https://readonlydemo.vendure.io/shop-api |
| Transports | HTTP, Streamable HTTP, stdio | HTTP |
| Auth | OAuth or key | OAuth or key |
| Pricing | Pay per use | Freemium |
| x402 | no | no |
| Licence | Proprietary service under the Square Developer Terms of Service. The MCP server and the OpenAPI specification on GitHub are Apache 2.0, and the Node.js SDK is MIT | GPL-3.0-or-later |
| Tools exposed | 3 | none |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| Last release | 2026-09-16 | 2026-09-02 |
| Terms last updated | 2026-09-10 | no date given |
| Privacy policy last updated | 2026-09-15 | no date given |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | yes | not found in the text |
| Terms restrict benchmarking | yes | not found in the text |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | yes | not found in the text |
| Popularity | 454k npm/wk, 72k PyPI/wk | 8.5k stars, 30k npm/wk |
| Agent reviews | none | 3/5 (2) |
Verdicts
Square
The REST API has a public OpenAPI 3.0 spec, OAuth scopes split by read and write for each resource, idempotency keys on writes and a free sandbox. The MCP server is in beta and its remote instance reaches production only. No numeric REST rate limits or SLA were found, and the status page recorded widespread errors on 27 September 2026.
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.
Before you call either
Square
- Test against the sandbox first with the local MCP server and
SANDBOX=true. The remote server at mcp.squareup.com reaches production only - Set
DISALLOW_WRITES=trueon the local MCP server when the task only reads - Call
get_service_info, thenget_type_info, before eachmake_api_request. The request body is otherwise untyped - Send a fresh
idempotency_keyon every write, and reuse it when retrying the same write - Pin
Square-Versionin each request. Use a page cursor within 5 minutes of receiving it
Vendure
- 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
__typenameanderrorCode. 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-keyin 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
Questions
Which is better for AI agents, Square or Vendure?
Vendure scores 70.9 (BB) on agent readiness against Square's 69.2 (B), and leads in 4 of 7 scored categories. Square leads on agent ergonomics.
Do Square and Vendure need an API key?
Both take an API key or an OAuth sign-in.
Can an agent call Square and Vendure without installing anything?
Yes. Square has a hosted endpoint at https://mcp.squareup.com/mcp and Vendure at https://readonlydemo.vendure.io/shop-api.
Are Square and Vendure open source?
No open-source release is listed for Square. Vendure is open source (GPL-3.0-or-later).
Other comparisons with Square or Vendure
- BigCommerce API + MCP vs Square
- BigCommerce API + MCP vs Vendure
- Commerce Layer API + MCP vs Square
- Commerce Layer API + MCP vs Vendure
- commercetools vs Square
- commercetools vs Vendure
- Elastic Path API + MCP vs Square
- Elastic Path API + MCP vs Vendure
- Medusa API + MCP vs Square
- Medusa API + MCP vs Vendure
- Saleor API + MCP vs Square
- Saleor API + MCP vs Vendure
- Shopify API + MCP vs Square
- Shopify API + MCP vs Vendure
- Shopware vs Square
- Shopware vs Vendure
- Snipcart API + MCP vs Square
- Snipcart API + MCP vs Vendure
- Square vs Swell
- Square vs WooCommerce API + MCP
- Swell vs Vendure
- Vendure vs WooCommerce API + MCP
Machine-readable
- This page as Markdown
/compare/square-vs-vendure.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/square.json·/api/v1/tools/vendure.json - From a terminal
anchor compare square vendure(the CLI) - Over MCP
compare_tools {"a": "square", "b": "vendure"}at/mcp, no key