Labsco
MCP SERVER · OFFICIAL PROJECT

commercetools MCP Essentials

by commercetools

Let an agent read and change a commercetools Project — products, carts, orders, customers — with a tool list you choose.

E-commerce & Marketplace OperationsOfficial source
Summary
Your Project's API, narrowed to what one agent should touch.

The control worth understanding is the pairing of two things: the API Client sets the ceiling on what is possible and --tools sets what is actually offered. Start with a read-only client and a short list, then widen it once you can see which tools the agent really calls.

What it is

Commercetools' own MCP server for a Composable Commerce Project, now called Commerce MCP. It exposes the Project's resources as tools an assistant can call, using the API Client credentials you hand it.

What you get
  • Catalogue work: read_products, update_products, read_product_projections and read_product_search
  • Cart and order operations, including create_carts, update_carts, create_orders and update_orders
  • Customer data through read_customers, update_customers and read_customer_search
  • Pricing and promotions: standalone prices, cart discounts, discount codes, shipping methods and tax categories
  • A tool allow-list — pass the tools you want and nothing else is exposed
  • Field filtering and redaction, so a read-only agent stays read-only
  • Two ways to run it: managed servers configured in the Merchant Center, or the self-hosted package, with the same tools and filtering either way
Requirements

A commercetools Project and an API Client whose scopes cover the tools you enable — an Admin Client with manage and view scopes sees all of them. The self-hosted package runs with npx -y @commercetools/commerce-mcp and takes --projectKey, --clientId and --clientSecret; stdio is the default transport and --remote=true switches it to Streamable HTTP.

Setup effort

One command plus a key — npx -y @commercetools/mcp-essentials --tools=all --clientId=CLIENT_ID --clientSecret=CLIENT_SECRET --projectKey=PROJECT_KEY --authUrl=AUTH_URL --apiUrl=API_URL, then supply credentials