
Spree Admin MCP Server: Setup for Claude, Cursor and Other Apps
Lets Claude, Cursor and other assistants work in your Spree store: find products, run reports, manage orders, stock and sellers.
Spree stores include this server, so there is nothing to install on a new store. Paste your store's admin MCP address into your assistant and sign in. The address is your own store's, ending in /api/v3/admin/mcp.
You choose which permissions the assistant gets when you connect, and it is only shown the tools those permissions allow. Spree API keys do not work here.
Good for
- Store owners and staff who want to run the back office in plain language
- Marketplace operators who approve sellers and products
- Developers who add their own store tools for an assistant
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Client does not support this transport.
Client does not support this transport.
Install Spree Commerce: open-source B2B and marketplace ecommerce MCP
Claude Code
- 1
Copy this prompt.
Add the Spree Commerce: open-source B2B and marketplace ecommerce MCP server to Claude Code. Run this command: claude mcp add --transport http --client-id <client-id> --callback-port 3118 spree https://your-store.com/api/v3/admin/mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires A Spree 6 store with spree_mcp, Your assistant registered under Settings > OAuth clients.
Read-only mode: On the consent screen approve only read permissions, such as read_reports. Tools that need write permissions are not offered.
Replace your-store.com with your store's address. In your Spree dashboard open Settings > AI Agents > Connect an agent to get the exact command with your client ID. Spree documents Claude Code, Claude Desktop and claude.ai, Cursor and VS Code. The other apps are not documented by Spree and need OAuth sign-in support.
From the vendor's docs. Source.
Tools
Shows what a record type contains
Describes a kind of record in your store, including its fields and filters, so the assistant knows what it can ask for.
Try: “What fields can I filter products by?”
Read ·
describe_resourceFinds records in your store
Searches records such as products and orders. It only finds what you approved.
Try: “Which products are out of stock?”
Read ·
search_resourcesOpens one record
Fetches a single record, such as an order or product, by ID.
Try: “Show order R123456789.”
Read ·
get_resourceLists what reports can show
Lists the measures and breakdowns the reporting tool supports.
Try: “What can I report on?”
Read ·
describe_reportingRuns a sales report
Runs a report such as sales by country or period and returns the figures.
Try: “What did we sell in Germany last month?”
Read ·
query_reportMakes a product live
Activates a product so shoppers can see it.
Try: “Activate the Summer Tote product.”
Write ·
products_activateMoves a product to draft
Sets a product back to draft.
Try: “Put the Summer Tote back in draft.”
Write ·
products_draftArchives a product
Archives a product.
Try: “Archive last year's holiday products.”
Write ·
products_archiveApproves a submitted product
Approves a product that was submitted for review.
Try: “Approve the new product from Acme Supplies.”
Write ·
products_approveRejects a submitted product
Rejects a product that was submitted for review.
Try: “Reject that product, the photos are missing.”
Write ·
products_rejectAdds a product variant
Creates a new variant, for example a size, on a product.
Try: “Add a size L variant to the Summer Tote.”
Write ·
variants_createChanges a variant
Updates a variant's details.
Try: “Change the SKU of the size M variant.”
Write ·
variants_updateTurns a catalog on
Activates a catalog.
Try: “Activate the wholesale catalog.”
Write ·
catalogs_activateTurns a catalog off
Deactivates a catalog.
Try: “Deactivate the wholesale catalog.”
Write ·
catalogs_deactivateTurns a price list on
Activates a price list.
Try: “Activate the VIP price list.”
Write ·
price_lists_activateTurns a price list off
Deactivates a price list.
Try: “Turn off the VIP price list.”
Write ·
price_lists_deactivateAdds or removes products in a group
Adds products to a category, collection, catalog or price list, or removes them. It reports how many memberships changed.
Try: “Add these five products to the Summer collection.”
Write ·
curate_productsCancels an order
Cancels an order. The order's timeline records who did it.
Try: “Cancel order R123456789 and tell the customer why.”
Write ·
orders_cancelCompletes an order
Completes an order.
Try: “Complete order R123456789.”
Write ·
orders_completeCaptures a payment
Captures a payment that was only authorized. This moves money.
Try: “Capture the payment on order R123456789.”
Write ·
payments_captureVoids a payment
Voids a payment before it settles.
Try: “Void the payment on order R123456789.”
Write ·
payments_voidRefunds a customer
Creates a refund for a payment. This moves money.
Try: “Refund order R123456789 in full.”
Write ·
refunds_createCreates a shipment
Creates a fulfillment for an order.
Try: “Create a shipment for order R123456789.”
Write ·
fulfillments_createMarks a shipment delivered
Marks a fulfillment as delivered.
Try: “Mark the shipment for R123456789 as delivered.”
Write ·
fulfillments_mark_deliveredUpdates tracking details
Changes the tracking information on a delivery.
Try: “Set the tracking number for R123456789.”
Write ·
deliveries_update_trackingBuys a shipping label
Purchases a shipping label. This spends money.
Try: “Buy a shipping label for R123456789.”
Write ·
shipping_labels_purchaseRefunds a shipping label
Refunds a shipping label that was bought.
Try: “Refund the unused label on R123456789.”
Write ·
shipping_labels_refundSets stock levels
Sets the stock quantity for an item.
Try: “Set stock for the size M variant to 100.”
Write ·
set_stockMoves a stock transfer to draft
Sets a stock transfer back to draft.
Try: “Set transfer 12 back to draft.”
Write ·
stock_transfers_mark_draftMarks a transfer ready
Marks a stock transfer ready to send.
Try: “Mark transfer 12 as ready.”
Write ·
stock_transfers_mark_readyMarks a transfer in transit
Marks a stock transfer as on its way.
Try: “Mark transfer 12 as in transit.”
Write ·
stock_transfers_mark_in_transitReceives a stock transfer
Records that a stock transfer arrived.
Try: “Receive transfer 12.”
Write ·
stock_transfers_receiveCancels a stock transfer
Cancels a stock transfer.
Try: “Cancel transfer 12.”
Write ·
stock_transfers_cancelCloses a stock transfer
Closes a stock transfer.
Try: “Close transfer 12.”
Write ·
stock_transfers_closeMoves a purchase order to draft
Sets a purchase order back to draft.
Try: “Set purchase order 7 back to draft.”
Write ·
purchase_orders_mark_draftMarks a purchase order ordered
Marks a purchase order as sent to the supplier.
Try: “Mark purchase order 7 as ordered.”
Write ·
purchase_orders_mark_orderedReceives a purchase order
Records that the goods on a purchase order arrived.
Try: “Receive purchase order 7.”
Write ·
purchase_orders_receiveCancels a purchase order
Cancels a purchase order.
Try: “Cancel purchase order 7.”
Write ·
purchase_orders_cancelCloses a purchase order
Closes a purchase order.
Try: “Close purchase order 7.”
Write ·
purchase_orders_closeInvites a seller
Invites a new seller to your marketplace.
Try: “Invite acme@example.com as a seller.”
Write ·
sellers_inviteApproves a seller
Approves a seller's application.
Try: “Approve Acme Supplies as a seller.”
Write ·
sellers_approveRejects a seller
Rejects a seller's application.
Try: “Reject the application from Acme Supplies.”
Write ·
sellers_rejectSuspends a seller
Suspends a seller.
Try: “Suspend Acme Supplies.”
Write ·
sellers_suspendReopens seller onboarding
Reopens a seller's onboarding so they can resubmit.
Try: “Reopen onboarding for Acme Supplies.”
Write ·
sellers_reopen_onboardingAccepts a seller document
Accepts a document or answer a seller submitted.
Try: “Accept Acme's tax document.”
Write ·
seller_requirement_submissions_acceptRejects a seller document
Rejects a document or answer a seller submitted.
Try: “Reject Acme's tax document.”
Write ·
seller_requirement_submissions_rejectWaives a seller requirement
Waives a requirement for a seller.
Try: “Waive the insurance requirement for Acme.”
Write ·
seller_requirement_submissions_waiveUploads a file
Uploads a file to the store.
Try: “Upload this product photo.”
Write ·
upload_fileAdds media to a product
Creates a media item such as an image.
Try: “Add this photo to the Summer Tote.”
Write ·
media_createStarts a data import
Starts an import of records from a file.
Try: “Import this CSV of products.”
Write ·
create_importSuggests an import column mapping
Proposes how the columns of an import file map to store fields.
Try: “Map the columns of this CSV to product fields.”
Write ·
propose_import_mappingShows an import mapping
Describes the mapping chosen for an import.
Try: “How are the columns of my import mapped?”
Read ·
describe_import_mappingChecks an import
Returns the status of an import.
Try: “Has my product import finished?”
Read ·
get_import_statusStarts an export
Starts an export of records as CSV. The finished file can be read as a resource.
Try: “Export last month's orders.”
Write ·
create_exportCreates a record
Creates a record such as a product, market or tax rate. It checks your approved permissions for that record type.
Try: “Create a product called Expensive Bag with sizes S and M.”
Write ·
create_resourceChanges a record
Updates a record. It checks your approved permissions for that record type.
Try: “Change the price of the Summer Tote to 49 USD.”
Write ·
update_resourceDeletes a record
Deletes a record of a kind you approved.
Try: “Delete the draft product named Test.”
Delete ·
delete_resourceVerifies a tax exemption certificate
Marks a customer's tax exemption certificate as verified.
Try: “Verify this customer's exemption certificate.”
Write ·
tax_exemption_certificates_verify
From the official docs
Permissions
high risk · 4 things to watch
High risk
The assistant can cancel orders, capture and refund payments, and edit or delete store records, up to the permissions you approve. Approve only the permissions you need, and use read-only permissions to start.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
It can refund and capture payments
Payment, refund and shipping label tools move money. Only approve those permissions if you want that, and read each confirmation your app shows. github.com
It can change or delete store records
Three general tools create, change and delete 38 kinds of record. Approve only the record types you need. github.com
Writes ask your app to confirm
The docs say a write asks your client to confirm before it runs. That depends on your app, so check it does. github.com
Some things are never reachable
The docs say API keys, roles, staff accounts and gift card codes cannot be reached, and customer erasure is dashboard-only. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | Approve only read permissions on the consent screen. Tools that need write permissions are then not offered. |
|---|---|
| Talks to | Your own Spree store |
| Sign-in and keys | You sign in to your store in a browser and approve permissions. There is no API key. Access can be revoked under Settings > AI Agents. |
| Scopes |
|
Questions
What is the Spree Admin MCP server URL?
It is your own store's address followed by /api/v3/admin/mcp, for example https://your-store.com/api/v3/admin/mcp. Each store hosts its own.
Do I need to install anything?
Not on a new store. The starter app already includes the spree_mcp gem. On an older store, run spree add mcp or add the gem.
Can I use a Spree API key?
No. The docs say a key does not work here. You sign in with a browser and approve permissions.
Can I limit it to read-only?
Yes. Approve only read permissions when you connect, and write tools are not offered to the assistant.
Can it refund customers?
Yes, if you approve the refund permission. It can also capture and void payments and buy shipping labels.
How is it different from the Spree docs server?
The docs server only reads Spree's documentation. This one works inside your own store.
Why does the app ask for a client ID?
Your store only accepts registered assistants. Copy the client ID from Settings > OAuth clients in your Spree dashboard, as the quick start explains.
Information
updated Nov 2, 2026
- Publisher
- Official
- Transport
- Streamable HTTP
- Auth
- OAuth
- Version
- 6.0.1
- License
- BSD-3-Clause
- Last commit
- Oct 31, 2026
- Open issues
- 91
- Listed in
- Official MCP registry
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 4Hide
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com