Saleor MCP Server

A Model Context Protocol implementation for interacting with Saleor e-commerce platform

Welcome to Saleor MCP

Transform how you interact with your Saleor store data

The Model Context Protocol (MCP) is a way to plug Saleor's API into an LLM, letting you ask questions about your store data in the context of the LLM itself. This lets you take an agent that you already use, like Cursor, and pull in additional information from Saleor to help with tasks like business analysis, inventory management, and customer insights.

Connecting Saleor to LLMs allows you to easily get answers to questions like:

  • "Which products are running low on stock?"
  • "Customer insights from this month"
  • "Show recent orders that need attention"

This provides an easy interface to learn insights about your Saleor store without needing to navigate through different dashboards or write complex queries.

Getting Started

Quick setup guide to get you up and running

To get started with the Saleor MCP server, visit our GitHub repository which contains detailed installation instructions, configuration guides, and examples.

Note: The repository includes setup instructions for various MCP clients, authentication configuration, and example usage scenarios.

Available Tools

Pre-configured functions for common Saleor operations

Tools are pre-configured functions that can be used to help with common tasks. Each tool provides specific functionality for interacting with your Saleor store data.

Add a channel to a shipping zone.This is required for digital products to have their stock visible in a channel.

Arguments:

  • shipping_zone_id (required) str:
  • channel_id (required) str:

Fetch the list of channels from Saleor.This tools retrieves the list of channels. For each channel it returns information such as: ID, name, slug, currency code, default country, whether the channel is active, and the list of warehouses.

No additional arguments required

Create a new channel in Saleor.Args: ctx: MCP context for logging and request metadata name: Name of the channel (e.g., "OpenSensor OCR") slug: URL-friendly slug for the channel (e.g., "opensensor-ocr") currency_code: Currency code (default: USD) default_country: Default country code (default: US) is_active: Whether the channel is active (default: True)

Arguments:

  • name (required) str:
  • slug (required) str:
  • currency_code str:
  • default_country str:
  • is_active bool:

Create a new product in Saleor.Args: ctx: MCP context for logging and request metadata name: Name of the product (e.g., "OCR Credits - 2,000 Pages") product_type_id: ID of the product type slug: URL-friendly slug (optional) description: Product description in JSON format (optional)

Arguments:

  • name (required) str:
  • product_type_id (required) str:
  • slug str | None:
  • description str | None:

Create a new product type in Saleor.Args: ctx: MCP context for logging and request metadata name: Name of the product type (e.g., "Digital Credits") slug: URL-friendly slug (optional, auto-generated if not provided) is_digital: Whether products are digital (default: True for credits) is_shipping_required: Whether shipping is required (default: False) has_variants: Whether products have multiple variants (default: False)

Arguments:

  • name (required) str:
  • slug str | None:
  • is_digital bool:
  • is_shipping_required bool:
  • has_variants bool:

Create a product variant in Saleor.Args: ctx: MCP context for logging and request metadata product_id: ID of the parent product sku: Stock Keeping Unit (e.g., "ocr-credits-2000") name: Variant name (optional)

Arguments:

  • product_id (required) str:
  • sku (required) str:
  • name str | None:

Return the current domain of the connected Saleor instance.

No additional arguments required

Fetch list of customers from Saleor GraphQL API.This tool retrieves customer information such as: ID, active status, language code, last login, date joined, and default shipping/billing address country.

Arguments:

  • first int | None: Number of customers to fetch (max 100 per request)
  • after str | None: Cursor for pagination - fetch customers after this cursor
  • sort_by saleor_mcp.saleor_client.input_types.UserSortingInput | None: Sort customers by specific field
  • filter saleor_mcp.tools.customers.CustomerFilterInput | None: Filter customers by specific criteria

List all shipping zones in Saleor.Returns: List of shipping zones with their warehouses and channels.

No additional arguments required

Fetch total count of orders from Saleor GraphQL API.This tool retrieves the total count of orders based on the provided filter criteria.

Arguments:

  • filter saleor_mcp.tools.orders.OrderFilterInput | None: Filter and search orders by specific criteria

Fetch list of orders from Saleor GraphQL API.This tool retrieves the list of orders. For each order it returns information such as: ID, number, status, creation date, last update date, payment status, total amount, shipping and billing address country, order lines which include: quantity, product SKU, variant name, product ID, product name, unit price.

Arguments:

  • first int | None: Number of orders to fetch (max 100 per request)
  • after str | None: Cursor for pagination - fetch orders after this cursor
  • sort_by saleor_mcp.saleor_client.input_types.OrderSortingInput | None: Sort orders by specific field
  • filter saleor_mcp.tools.orders.OrderFilterInput | None: Filter and search orders by specific criteria

Fetch list of products from Saleor GraphQL API.This tool retrieves product information such as: ID, name, slug, external reference, product type, category, date of creation, date of last update, and pricing.

Arguments:

  • first int | None: Number of products to fetch (max 100 per request)
  • after str | None: Cursor for pagination - fetch products after this cursor
  • channel str | None: Slug of a channel for which the data should be returned. If not provided, general product data is returned.
  • sort_by saleor_mcp.saleor_client.input_types.ProductOrder | None: Sort products by specific field
  • search str | None: Search products with full-text search

Publish a product to a specific channel.Args: ctx: MCP context for logging and request metadata product_id: ID of the product to publish channel_id: ID of the channel to publish to is_published: Whether the product is published (default: True) is_available_for_purchase: Whether available for purchase (default: True) visible_in_listings: Whether visible in listings (default: True)

Arguments:

  • product_id (required) str:
  • channel_id (required) str:
  • is_published bool:
  • is_available_for_purchase bool:
  • visible_in_listings bool:

Set the price of a product variant in a specific channel.The currency is determined by the channel's configured currency.

Arguments:

  • variant_id (required) str:
  • channel_id (required) str:
  • price (required) float:

Fetch list of stocks from Saleor GraphQL API.This tool retrieves stock information such as: ID, quantity, allocated quantity, warehouse information, and associated product variant details.

Arguments:

  • first int | None: Number of stocks to fetch (max 100 per request)
  • after str | None: Cursor for pagination - fetch stocks after this cursor
  • filter saleor_mcp.saleor_client.input_types.StockFilterInput | None: Filter stocks by specific criteria

Fetch warehouse details from Saleor GraphQL API.This tool retrieves detailed warehouse information including: ID, name, slug, address details, click and collect options, associated shipping zones with their channels and countries, and metadata.

Arguments:

  • id str | None: ID of the warehouse to fetch details for