Saleor Commerce MCP Server
Official read-only MCP server for Saleor Commerce. Query products, stocks, warehouses, orders, customers, and channels via the Saleor GraphQL API.
Saleor MCP is the official Model Context Protocol server maintained by Saleor Commerce, the open-source headless ecommerce platform. It exposes a read-only interface over the Saleor GraphQL API so AI assistants can fetch information about products, stock levels, warehouses, orders, customers, and sales channels without being able to mutate store data.
The server is built in Python (3.12+) using FastMCP and ships with a tools module for each domain (products, orders, customers, channels). Each tool maps to a paginated GraphQL query with optional filtering, sorting, and search arguments, returning structured results including page info and total counts. Authentication is per-request via the X-Saleor-Auth-Token and X-Saleor-API-URL headers, and the token must carry MANAGE_PRODUCTS and MANAGE_ORDERS permissions.
Saleor hosts a managed production instance at https://mcp.saleor.app/mcp that can be reached over Streamable HTTP and is compatible with Saleor 3.21+ instances on the saleor.cloud domain. Teams that need to point at self-hosted Saleor installations can clone the repo and run the server locally with uv. The MCP is intentionally read-only, making it safe to attach to agents for analytics, reporting, and customer-support lookups.
Tools
| Tool | Description |
|---|---|
products |
Retrieve product information including ID, name, slug, pricing, and category from the Saleor GraphQL API. Channel-aware so pricing and availability reflect the selected channel. |
stocks |
Retrieve stock information including quantity, allocated quantity, warehouse details, and the associated product variant. |
warehouse_details |
Fetch comprehensive warehouse information including address, shipping zones, channels, supported countries, and metadata. |
orders |
List orders with details including ID, number, status, dates, payment info, totals, addresses, and line items. |
order_count |
Fetch the total count of orders from the Saleor GraphQL API based on applied filters. |
customers |
Retrieve customer information including ID, active status, language code, last login, date joined, and default address country. |
channels |
Retrieve the list of sales channels including ID, name, slug, currency code, default country, active status, and associated warehouses. |
Option 1: Use the hosted production instance (recommended)
Saleor runs a managed MCP endpoint at https://mcp.saleor.app/mcp that works with any Saleor 3.21+ instance on the saleor.cloud domain. Add it to your MCP client config:
{
"servers": {
"saleor-mcp": {
"type": "http",
"url": "https://mcp.saleor.app/mcp",
"headers": {
"X-Saleor-Auth-Token": "eyJhb...",
"X-Saleor-API-URL": "https://example.saleor.cloud/graphql/"
}
}
}
}
Required headers
X-Saleor-API-URL: the GraphQL endpoint of your Saleor store.X-Saleor-Auth-Token: a Saleor app or staff auth token. The token must haveMANAGE_PRODUCTSandMANAGE_ORDERSpermissions.
Option 2: Self-host
Prerequisites: Python 3.12+ and the uv package manager.
git clone git@github.com:saleor/saleor-mcp.git
cd saleor-mcp
uv sync
uv run saleor-mcp
The server listens on http://localhost:6000 by default. Set ALLOWED_DOMAIN_PATTERN (regex) to restrict which Saleor API hosts the server is willing to proxy to. Point your MCP client at the local URL and pass the same X-Saleor-API-URL / X-Saleor-Auth-Token headers shown above.
- Pull a paginated, filtered list of recent orders into an agent to summarize revenue, AOV, or refund rates by channel.
- Look up a customer by filter and surface their order history, last login, and default shipping country for a support agent.
- Query products with full-text search to answer merchandising questions like which SKUs exist in a category or channel.
- Check stock and warehouse coverage across multiple regions before recommending restock or fulfillment changes.
- Generate channel-level reports (active channels, currencies, default countries, attached warehouses) for ops reviews.
- "List the 50 most recent orders in the
default-channeland total their gross revenue." - "Search the product catalog for items containing 'hoodie' in the US channel and show their prices."
- "How many orders do we have in
UNFULFILLEDstatus right now?" - "Find customer accounts that joined in the last 30 days and group them by country."
- "Show me stock levels for the Berlin warehouse and flag any variants with zero available quantity."
- Official, maintained by Saleor under the
saleor/GitHub org and announced on the Saleor blog. - Read-only by design, so it is safe to attach to autonomous agents without risking unintended mutations.
- Hosted endpoint at
mcp.saleor.appremoves the need to operate the server yourself forsaleor.cloudtenants. - Covers the most commonly queried Saleor domains (products, stocks, warehouses, orders, customers, channels) with pagination, filtering, and sorting.
- No write operations: cannot create or update products, fulfill orders, or modify customer data.
- Hosted instance only targets
saleor.clouddomains; self-hosted Saleor installs must run the MCP server themselves. - Tool surface is limited to a handful of high-level queries; less common entities (vouchers, gift cards, payments, etc.) require self-hosting and code changes or direct GraphQL.
mcp-graphql: generic GraphQL MCP server recommended in Saleor's own AI docs for raw access to the Saleor schema.ashwin2912/saleor-dashboard-mcp: community-maintained MCP server targeting Saleor data.- Shopify Storefront / Admin MCP servers for teams on a different headless commerce platform.