View, create, update, and delete Managed MCP Server configurations for your Project.

Managed MCP Servers expose a set of tools to AI agents through the Model Context Protocol (MCP). Each MCP Server configuration defines which tools are available and how AI agents connect to your commercetools Project.
Managed MCP Servers provide the hosted variant of Commerce MCP. For a conceptual overview and the available tools, see the Commerce MCP documentation. To run and extend the server yourself, see Self-hosted Commerce MCP.
To access Managed MCP Server configuration endpoints, use an API Client with the view_mcp_servers:{projectKey} or manage_mcp_servers:{projectKey} scopes. To learn how to use the Managed MCP Server itself, see Use the MCP Server with a client.
Each Managed MCP Server has a unique key within the Project. The server URL is generated automatically from your region, domain, Project key, and MCP Server key in the following format: https://mcp.{region}.{domain}/projects/{projectKey}/{mcpServerKey}. For example, consider a Project in the europe-west1.gcp region with the key my-project. If you create an MCP Server with the key my-mcp-server, the server URL is https://mcp.europe-west1.gcp.commercetools.com/projects/my-project/my-mcp-server.
A maximum of 1 000 000 tool invocations can be made per Project per month. Learn more about this limit.
A maximum of 500 MCP Servers can be created per Project. Learn more about this limit.

Get MCP Server

Get MCP Server by ID

GET
https://api.{region}.commercetools.com/{projectKey}/mcp-servers/{id}
OAuth 2.0 Scopes:
manage_mcp_servers:{projectKey}view_mcp_servers:{projectKey}
Path parameters:
region
​
String
​
Region in which the Project is hosted.
projectKey
​
String
​
key of the Project.
id
​
String
​
id of the McpServer.
Response:
200

McpServer

as
application/json
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/mcp-servers/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 
200 Response Example: McpServerjson
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "version": 1,
  "createdAt": "2026-07-01T10:30:00.000Z",
  "lastModifiedAt": "2026-07-01T10:30:00.000Z",
  "key": "promo-audit-server",
  "name": {
    "en-US": "Promo audit agent",
    "de-DE": "Aktions-Audit-Agent",
    "fr-FR": "Agent d'audit des promotions",
    "es-ES": "Agente de auditoría de promociones"
  },
  "authenticationMode": "ClientCredentials",
  "state": "Enabled",
  "mcpServer": {
    "type": "CommerceMCP",
    "majorVersion": "v4",
    "url": "https://mcp.europe-west1.gcp.commercetools.com/projects/my-project/promo-audit-server",
    "tools": ["read_cart_discounts", "read_product_discounts", "read_discount_codes"],
    "toolCustomizations": [
      {
        "tool": "read_cart_discounts",
        "description": "Read cart discounts to audit the promotions configured in this Project and flag any that look too broad, for example a discount with no cart predicate or one that applies across all stores. Report findings only; this server cannot change discounts, and it has no access to orders or customers."
      }
    ]
  }
}

Get MCP Server by key

GET
https://api.{region}.commercetools.com/{projectKey}/mcp-servers/key={key}
OAuth 2.0 Scopes:
manage_mcp_servers:{projectKey}view_mcp_servers:{projectKey}
Path parameters:
region
​
String
​
Region in which the Project is hosted.
projectKey
​
String
​
key of the Project.
key
​
String
​
key of the McpServer.
Response:
200

McpServer

as
application/json
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/mcp-servers/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 
200 Response Example: McpServerjson
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "version": 1,
  "createdAt": "2026-07-01T10:30:00.000Z",
  "lastModifiedAt": "2026-07-01T10:30:00.000Z",
  "key": "promo-audit-server",
  "name": {
    "en-US": "Promo audit agent",
    "de-DE": "Aktions-Audit-Agent",
    "fr-FR": "Agent d'audit des promotions",
    "es-ES": "Agente de auditoría de promociones"
  },
  "authenticationMode": "ClientCredentials",
  "state": "Enabled",
  "mcpServer": {
    "type": "CommerceMCP",
    "majorVersion": "v4",
    "url": "https://mcp.europe-west1.gcp.commercetools.com/projects/my-project/promo-audit-server",
    "tools": ["read_cart_discounts", "read_product_discounts", "read_discount_codes"],
    "toolCustomizations": [
      {
        "tool": "read_cart_discounts",
        "description": "Read cart discounts to audit the promotions configured in this Project and flag any that look too broad, for example a discount with no cart predicate or one that applies across all stores. Report findings only; this server cannot change discounts, and it has no access to orders or customers."
      }
    ]
  }
}

Query MCP Servers

GET
https://api.{region}.commercetools.com/{projectKey}/mcp-servers
OAuth 2.0 Scopes:
manage_mcp_servers:{projectKey}view_mcp_servers:{projectKey}
Path parameters:
region
​
String
​
Region in which the Project is hosted.
projectKey
​
String
​
key of the Project.
Query parameters:
sort
​
String
​

Use to sort query results.

For more information, see Sorting.
The parameter can be passed multiple times.
limit
​
Int32
​
Default: 20​
Minimum: 0​
Maximum: 500​
offset
​
Int32
​
Number of elements skipped.
Default: 0​
Maximum: 10000​
withTotal
​
Boolean
​
Controls the calculation of the total number of query results. Set to false to improve query performance when the total is not needed.
Default: true​
Response:
200

McpServerPagedQueryResponse

as
application/json
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/mcp-servers -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 
200 Response Example: McpServerPagedQueryResponsejson
{
  "limit": 20,
  "offset": 0,
  "count": 1,
  "total": 1,
  "results": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "version": 1,
      "createdAt": "2026-07-01T10:30:00.000Z",
      "lastModifiedAt": "2026-07-01T10:30:00.000Z",
      "key": "my-mcp-server",
      "authenticationMode": "ClientCredentials",
      "state": "Enabled",
      "mcpServer": {
        "type": "CommerceMCP",
        "majorVersion": "v4",
        "url": "https://mcp.europe-west1.gcp.commercetools.com/projects/my-project/my-mcp-server",
        "tools": ["read_products", "read_orders", "read_customers"],
        "toolCustomizations": []
      }
    }
  ]
}

Query MCP Server types

GET
https://api.{region}.commercetools.com/{projectKey}/mcp-servers/types
Returns the catalog of available MCP Server types, each with its major versions and the tools you can enable for them.
OAuth 2.0 Scopes:
manage_project:{projectKey}manage_mcp_servers:{projectKey}view_mcp_servers:{projectKey}
Path parameters:
region
​
String
​
Region in which the Project is hosted.
projectKey
​
String
​
key of the Project.
Response:
200

as
application/json
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/mcp-servers/types -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
200 Response Example: arrayjson
[
  {
    "type": "CommerceMCP",
    "majorVersion": "v4",
    "tools": [
      {
        "name": "read_products",
        "description": "Read product data.",
        "operationType": "read",
        "groups": ["all", "read_all"]
      },
      {
        "name": "create_orders",
        "description": "Create orders.",
        "operationType": "write",
        "groups": ["all"]
      }
    ]
  }
]

Get MCP Server type

GET
https://api.{region}.commercetools.com/{projectKey}/mcp-servers/types/{mcpServerType}
Returns a single MCP Server type. When majorVersion is omitted, the latest major version is returned.
OAuth 2.0 Scopes:
manage_project:{projectKey}manage_mcp_servers:{projectKey}view_mcp_servers:{projectKey}
Path parameters:
region
​
String
​
Region in which the Project is hosted.
projectKey
​
String
​
key of the Project.
mcpServerType
​
String
​
type of the McpServerType, such as CommerceMCP.
Query parameters:
majorVersion
​
String
​
Major version to return, such as v4. When omitted, the latest major version is returned.
Response:
200

McpServerType

as
application/json
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/mcp-servers/types/{mcpServerType} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
200 Response Example: McpServerTypejson
{
  "type": "CommerceMCP",
  "majorVersion": "v4",
  "tools": [
    {
      "name": "read_products",
      "description": "Search and retrieve product data from the catalog, including prices, variants, and attributes.",
      "operationType": "read",
      "groups": ["all", "read_all"]
    },
    {
      "name": "create_orders",
      "description": "Create new orders from existing carts.",
      "operationType": "write",
      "groups": ["all"]
    }
  ]
}

Create MCP Server

If the limit is exceeded, a MaxResourceLimitExceeded error is returned.
POST
https://api.{region}.commercetools.com/{projectKey}/mcp-servers

Creates a new MCP Server for the Project.

Specific Error Codes:

OAuth 2.0 Scopes:
manage_mcp_servers:{projectKey}
Path parameters:
region
​
String
​
Region in which the Project is hosted.
projectKey
​
String
​
key of the Project.
Request Body:McpServerDraftasapplication/json
Response:
201

McpServer

as
application/json
Request Example:cURL
curl https://api.{region}.commercetools.com/{projectKey}/mcp-servers -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA 
{
  "key" : "my-mcp-server",
  "mcpServer" : {
    "type" : "CommerceMCP",
    "majorVersion" : "v4",
    "tools" : [ "read_products", "read_orders", "read_customers" ]
  }
}
DATA
201 Response Example: McpServerjson
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "version": 1,
  "createdAt": "2026-07-01T10:30:00.000Z",
  "lastModifiedAt": "2026-07-01T10:30:00.000Z",
  "key": "promo-audit-server",
  "name": {
    "en-US": "Promo audit agent",
    "de-DE": "Aktions-Audit-Agent",
    "fr-FR": "Agent d'audit des promotions",
    "es-ES": "Agente de auditoría de promociones"
  },
  "authenticationMode": "ClientCredentials",
  "state": "Enabled",
  "mcpServer": {
    "type": "CommerceMCP",
    "majorVersion": "v4",
    "url": "https://mcp.europe-west1.gcp.commercetools.com/projects/my-project/promo-audit-server",
    "tools": ["read_cart_discounts", "read_product_discounts", "read_discount_codes"],
    "toolCustomizations": [
      {
        "tool": "read_cart_discounts",
        "description": "Read cart discounts to audit the promotions configured in this Project and flag any that look too broad, for example a discount with no cart predicate or one that applies across all stores. Report findings only; this server cannot change discounts, and it has no access to orders or customers."
      }
    ]
  }
}

Update MCP Server

Update MCP Server by ID

POST
https://api.{region}.commercetools.com/{projectKey}/mcp-servers/{id}

Specific Error Codes:

OAuth 2.0 Scopes:
manage_mcp_servers:{projectKey}
Path parameters:
region
​
String
​
Region in which the Project is hosted.
projectKey
​
String
​
key of the Project.
id
​
String
​
id of the McpServer.
Request Body:McpServerUpdateasapplication/json
Response:
200

McpServer

as
application/json
Request Example:cURL
curl https://api.{region}.commercetools.com/{projectKey}/mcp-servers/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA 
{
  "version" : 1,
  "actions" : [ {
    "action" : "addTool",
    "tool" : "create_carts"
  } ]
}
DATA
200 Response Example: McpServerjson
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "version": 2,
  "createdAt": "2026-07-01T10:30:00.000Z",
  "lastModifiedAt": "2026-07-10T11:00:00.000Z",
  "key": "my-mcp-server",
  "authenticationMode": "ClientCredentials",
  "state": "Enabled",
  "mcpServer": {
    "type": "CommerceMCP",
    "majorVersion": "v4",
    "url": "https://mcp.europe-west1.gcp.commercetools.com/projects/my-project/my-mcp-server",
    "tools": ["read_products", "read_orders", "read_customers", "create_carts"],
    "toolCustomizations": []
  }
}

Update MCP Server by key

POST
https://api.{region}.commercetools.com/{projectKey}/mcp-servers/key={key}

Specific Error Codes:

OAuth 2.0 Scopes:
manage_mcp_servers:{projectKey}
Path parameters:
region
​
String
​
Region in which the Project is hosted.
projectKey
​
String
​
key of the Project.
key
​
String
​
key of the McpServer.
Request Body:McpServerUpdateasapplication/json
Response:
200

McpServer

as
application/json
Request Example:cURL
curl https://api.{region}.commercetools.com/{projectKey}/mcp-servers/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA 
{
  "version" : 1,
  "actions" : [ {
    "action" : "addTool",
    "tool" : "create_carts"
  } ]
}
DATA
200 Response Example: McpServerjson
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "version": 2,
  "createdAt": "2026-07-01T10:30:00.000Z",
  "lastModifiedAt": "2026-07-10T11:00:00.000Z",
  "key": "my-mcp-server",
  "authenticationMode": "ClientCredentials",
  "state": "Enabled",
  "mcpServer": {
    "type": "CommerceMCP",
    "majorVersion": "v4",
    "url": "https://mcp.europe-west1.gcp.commercetools.com/projects/my-project/my-mcp-server",
    "tools": ["read_products", "read_orders", "read_customers", "create_carts"],
    "toolCustomizations": []
  }
}

Update actions

Add Tool

Adds a single tool to the MCP Server's list of enabled tools. Has no effect if the tool is already present.

action​
String​
"addTool"
Identifies the update action to perform, such as addTool, removeTool, or setTools.
tool​
Name of the tool to add, such as read_products or create_orders.
Example: json
{
  "action": "addTool",
  "tool": "create_carts"
}

Remove Tool

Removes a single tool from the MCP Server's list of enabled tools. Returns an InvalidOperation error if the tool is not in the current list.
action​
String​
"removeTool"
Identifies the update action to perform, such as addTool, removeTool, or setTools.
tool​
Name of the tool to remove, such as read_products or create_orders.
Example: json
{
  "action": "removeTool",
  "tool": "create_carts"
}

Set Tools

Replaces the entire list of tools enabled for the MCP Server.

action​
String​
"setTools"
Identifies the update action to perform, such as addTool, removeTool, or setTools.
tools​
Array of McpServerTool​
New list of tools to set. Replaces the existing tools list entirely. Use all to enable all available tools, or specify individual tool names such as read_products or create_orders.
Example: json
{
  "action": "setTools",
  "tools": [
    "read_products",
    "read_categories",
    "read_orders"
  ]
}

Set Tool Customizations

Replaces the entire list of tool customizations on the MCP Server.
action​
String​
"setToolCustomizations"
Identifies the update action to perform, such as addTool, removeTool, or setTools.
toolCustomizations​
Array of ToolCustomization​

New list of tool customizations. Replaces the existing list entirely.

Example: json
{
  "action": "setToolCustomizations",
  "toolCustomizations": [
    {
      "tool": "read_product_search",
      "description": "Look for products in the catalog. Always filter by category when the customer mentions a department.",
      "parameters": [
        {
          "name": "staged",
          "const": false
        }
      ]
    },
    {
      "tool": "read_orders",
      "description": "Look up orders for customer support. Always ask for the order number before searching."
    }
  ]
}

Add Tool Customization

Adds a single tool customization to the MCP Server. Returns an InvalidOperation error if a customization for the same tool already exists.
action​
String​
"addToolCustomization"
Identifies the update action to perform, such as addTool, removeTool, or setTools.
toolCustomization​

Tool customization to add.

Example: json
{
  "action": "addToolCustomization",
  "toolCustomization": {
    "tool": "read_orders",
    "description": "Look up orders for customer support. Always ask for the order number before searching. Do not reveal payment details to the customer.",
    "parameters": [
      {
        "name": "limit",
        "default": 5
      }
    ]
  }
}

Remove Tool Customization

Removes the tool customization matching the given tool name. Has no effect if no customization exists for that tool.
action​
String​
"removeToolCustomization"
Identifies the update action to perform, such as addTool, removeTool, or setTools.
toolCustomization​

Identifies the tool customization to remove by its tool name.

Example: json
{
  "action": "removeToolCustomization",
  "toolCustomization": {
    "tool": "read_orders"
  }
}

Remove Tool Customization Target

Identifies a tool customization to remove by its tool name.
tool​

Name of the tool whose customization is removed.

Set Name

Sets the localized name of the MCP Server.

action​
String​
"setName"
Identifies the update action to perform, such as addTool, removeTool, or setTools.
name​

Value to set. If omitted, the existing name is removed.

Example: json
{
  "action": "setName",
  "name": {
    "en-US": "Storefront agent server",
    "de-DE": "Storefront-Agent-Server",
    "fr-FR": "Serveur d'agent de vitrine",
    "es-ES": "Servidor de agente de escaparate"
  }
}

Set Description

Sets the localized description of the MCP Server.

action​
String​
"setDescription"
Identifies the update action to perform, such as addTool, removeTool, or setTools.
description​

Value to set. If omitted, the existing description is removed.

Example: json
{
  "action": "setDescription",
  "description": {
    "en-US": "Read-only catalog access for the storefront agent.",
    "de-DE": "Nur-Lese-Zugriff auf den Katalog für den Storefront-Agenten.",
    "fr-FR": "Accès en lecture seule au catalogue pour l'agent de vitrine.",
    "es-ES": "Acceso de solo lectura al catálogo para el agente de escaparate."
  }
}

Set State

Sets the state of the MCP Server. A Disabled MCP Server rejects all AI agent tool requests.
action​
String​
"setState"
Identifies the update action to perform, such as addTool, removeTool, or setTools.
state​

New state to set.

Example: json
{
  "action": "setState",
  "state": "Disabled"
}

Set Authentication Mode

Sets the authentication mode of the MCP Server. This action has no effect if the MCP Server already uses the given authentication mode, and in that case the version of the MCP Server stays the same.
action​
String​
"setAuthenticationMode"
Identifies the update action to perform, such as addTool, removeTool, or setTools.
authenticationMode​

New authentication mode to set.

Example: json
{
  "action": "setAuthenticationMode",
  "authenticationMode": "ClientCredentials"
}

Set JSON Output Filtering

Sets the response field-filtering rules applied to tool responses.
action​
String​
"setJsonOutputFiltering"
Identifies the update action to perform, such as addTool, removeTool, or setTools.
jsonOutputFiltering​

Value to set. The existing configuration is entirely replaced with this value. If absent, the existing filtering configuration is removed.

Example: json
{
  "action": "setJsonOutputFiltering",
  "jsonOutputFiltering": {
    "redact": {
      "fieldNameContains": [
        "phone",
        "password"
      ]
    },
    "drop": {
      "fieldNames": [
        "billingAddress",
        "shippingAddress",
        "paymentInfo",
        "createdBy",
        "lastModifiedBy"
      ]
    },
    "fieldPathsToKeep": [
      "customer.email",
      "order.orderNumber"
    ],
    "redactedWith": "[REDACTED]"
  }
}

Set Tool Output Formatting

Sets the output formatting applied to tool responses.
action​
String​
"setToolOutputFormatting"
Identifies the update action to perform, such as addTool, removeTool, or setTools.
toolOutputFormatting​

Value to set. If absent, the existing formatting is removed.

Example: json
{
  "action": "setToolOutputFormatting",
  "toolOutputFormatting": "JsonToTabular"
}

Delete MCP Server

Delete MCP Server by ID

DELETE
https://api.{region}.commercetools.com/{projectKey}/mcp-servers/{id}
OAuth 2.0 Scopes:
manage_mcp_servers:{projectKey}
Path parameters:
region
​
String
​
Region in which the Project is hosted.
projectKey
​
String
​
key of the Project.
id
​
String
​
id of the McpServer.
Query parameters:
version
​
Int64
​

Last seen version of the resource.

Response:
200

McpServer

as
application/json
Request Example:cURL
curl -X DELETE https://api.{region}.commercetools.com/{projectKey}/mcp-servers/{id}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
200 Response Example: McpServerjson
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "version": 1,
  "createdAt": "2026-07-01T10:30:00.000Z",
  "lastModifiedAt": "2026-07-01T10:30:00.000Z",
  "key": "promo-audit-server",
  "name": {
    "en-US": "Promo audit agent",
    "de-DE": "Aktions-Audit-Agent",
    "fr-FR": "Agent d'audit des promotions",
    "es-ES": "Agente de auditoría de promociones"
  },
  "authenticationMode": "ClientCredentials",
  "state": "Enabled",
  "mcpServer": {
    "type": "CommerceMCP",
    "majorVersion": "v4",
    "url": "https://mcp.europe-west1.gcp.commercetools.com/projects/my-project/promo-audit-server",
    "tools": ["read_cart_discounts", "read_product_discounts", "read_discount_codes"],
    "toolCustomizations": [
      {
        "tool": "read_cart_discounts",
        "description": "Read cart discounts to audit the promotions configured in this Project and flag any that look too broad, for example a discount with no cart predicate or one that applies across all stores. Report findings only; this server cannot change discounts, and it has no access to orders or customers."
      }
    ]
  }
}

Delete MCP Server by key

DELETE
https://api.{region}.commercetools.com/{projectKey}/mcp-servers/key={key}
OAuth 2.0 Scopes:
manage_mcp_servers:{projectKey}
Path parameters:
region
​
String
​
Region in which the Project is hosted.
projectKey
​
String
​
key of the Project.
key
​
String
​
key of the McpServer.
Query parameters:
version
​
Int64
​

Last seen version of the resource.

Response:
200

McpServer

as
application/json
Request Example:cURL
curl -X DELETE https://api.{region}.commercetools.com/{projectKey}/mcp-servers/key={key}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
200 Response Example: McpServerjson
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "version": 1,
  "createdAt": "2026-07-01T10:30:00.000Z",
  "lastModifiedAt": "2026-07-01T10:30:00.000Z",
  "key": "promo-audit-server",
  "name": {
    "en-US": "Promo audit agent",
    "de-DE": "Aktions-Audit-Agent",
    "fr-FR": "Agent d'audit des promotions",
    "es-ES": "Agente de auditoría de promociones"
  },
  "authenticationMode": "ClientCredentials",
  "state": "Enabled",
  "mcpServer": {
    "type": "CommerceMCP",
    "majorVersion": "v4",
    "url": "https://mcp.europe-west1.gcp.commercetools.com/projects/my-project/promo-audit-server",
    "tools": ["read_cart_discounts", "read_product_discounts", "read_discount_codes"],
    "toolCustomizations": [
      {
        "tool": "read_cart_discounts",
        "description": "Read cart discounts to audit the promotions configured in this Project and flag any that look too broad, for example a discount with no cart predicate or one that applies across all stores. Report findings only; this server cannot change discounts, and it has no access to orders or customers."
      }
    ]
  }
}

Representations

McpServer

Represents an MCP Server configuration that exposes a set of tools to AI agents via the Model Context Protocol.

id​
String​

Unique identifier of the MCP Server.

version​
Int64​

Current version of the MCP Server.

key​
String​

User-defined unique identifier of the MCP Server within a Project.

MinLength: 2​MaxLength: 256​Pattern: ^[A-Za-z0-9_-]+$​
name​

Name of the MCP Server.

description​

Description of the MCP Server.

authenticationMode​

Determines how AI agents authenticate when connecting to the MCP Server.

state​
State of the MCP Server. A Disabled MCP Server rejects all AI agent tool requests.
mcpServer​

Configuration of the MCP Server connection.

createdAt​

Date and time (UTC) the MCP Server was initially created.

createdBy​

IDs and references that created the MCP Server.

lastModifiedAt​

Date and time (UTC) the MCP Server was last updated.

lastModifiedBy​

IDs and references that last modified the MCP Server.

McpServerConfig

Connection configuration of an MCP Server. The type discriminator determines the concrete configuration shape and the set of tools available for this MCP Server. Only CommerceMcpServerConfig is supported.
type​
String​
"CommerceMCP"

MCP Server type. Determines the shape of the configuration and the set of tools available for this MCP Server.

CommerceMcpServerConfig

Connection configuration of a Commerce MCP Server. Exposes the Commerce MCP Server tools to AI agents.
type​
String​
"CommerceMCP"

MCP Server type. Determines the shape of the configuration and the set of tools available for this MCP Server.

majorVersion​
String​
Major version of this MCP Server type. Supported versions are v1 (deprecated) and v4.
Can be "v1", or "v4"​
url​
String​
URL of the MCP Server. Generated by the system from the region, domain, Project key, and MCP Server key. Format: https://mcp.{region}.{domain}/projects/{projectKey}/{mcpServerKey}
tools​
Array of McpServerTool​
List of tools enabled for this MCP Server. Use all to enable all available tools, or specify individual tool names such as read_products or create_orders. To reduce the number of LLM turns and improve overall performance, it is advisable to expose only the tools that are necessary, or at least minimize the exposure of tools that are unlikely to be used.
toolCustomizations​
Array of ToolCustomization​
Per-tool customizations applied at tools/list and tools/call time, such as overriding a tool's description or constraining its parameters.
jsonOutputFiltering​

Response field-filtering rules applied to tool responses.

toolOutputFormatting​

Output formatting applied to tool responses. When absent, responses are left untouched.

Example: json
{
  "type": "CommerceMCP",
  "majorVersion": "v4",
  "url": "https://mcp.europe-west1.gcp.commercetools.com/projects/my-project/promo-audit-server",
  "tools": [
    "read_cart_discounts",
    "read_product_discounts",
    "read_discount_codes"
  ],
  "toolCustomizations": [
    {
      "tool": "read_cart_discounts",
      "description": "Read cart discounts to audit active promotions and flag any that look too broad, for example a discount with no cart predicate or one that applies across all stores."
    },
    {
      "tool": "read_discount_codes",
      "description": "Read discount codes to check whether any active code is effectively unrestricted, for example no maximum number of applications and no validity window."
    }
  ],
  "jsonOutputFiltering": {
    "drop": {
      "fieldNames": [
        "createdBy",
        "lastModifiedBy"
      ]
    }
  },
  "toolOutputFormatting": "JsonToTabular"
}

McpServerTool

Identifies a tool that can be enabled on an MCP Server. For more information about the functions of each tool, see Commerce MCP Server tools.
all

Enables all available tools, including read, create, and update operations. For security and performance, enable this only when broad access is required.

read_all

Enables all read-only tools.

create_applications

Creates Applications.

read_applications

Reads Applications.

update_applications

Updates Applications.

create_attribute_groups

Creates Attribute Groups.

read_attribute_groups

Reads Attribute Groups.

update_attribute_groups

Updates Attribute Groups.

create_bulk

Creates resources in bulk.

update_bulk

Updates resources in bulk.

create_business_units

Creates Business Units.

read_business_units

Reads Business Units.

update_business_units

Updates Business Units.

create_cart_discounts

Creates Cart Discounts.

read_cart_discounts

Reads Cart Discounts.

update_cart_discounts

Updates Cart Discounts.

create_carts

Creates Carts.

read_carts

Reads Carts.

update_carts

Updates Carts.

replicate_carts

Replicates an existing Cart or Order into a new Cart.

create_categories

Creates Categories.

read_categories

Reads Categories.

update_categories

Updates Categories.

create_channels

Creates Channels.

read_channels

Reads Channels.

update_channels

Updates Channels.

create_custom_objects

Creates Custom Objects.

read_custom_objects

Reads Custom Objects.

update_custom_objects

Updates Custom Objects.

create_customer_groups

Creates Customer Groups.

read_customer_groups

Reads Customer Groups.

update_customer_groups

Updates Customer Groups.

read_customer_search

Searches for Customers.

create_customers

Creates Customers.

read_customers

Reads Customers.

update_customers

Updates Customers.

create_discount_codes

Creates Discount Codes.

read_discount_codes

Reads Discount Codes.

update_discount_codes

Updates Discount Codes.

create_extensions

Creates API Extensions.

read_extensions

Reads API Extensions.

update_extensions

Updates API Extensions.

create_inventory

Creates Inventory.

read_inventory

Reads Inventory.

update_inventory

Updates Inventory.

read_messages

Reads Messages.

create_orders

Creates Orders.

read_orders

Reads Orders.

update_orders

Updates Orders.

create_payment_integrations

Creates Payment Integrations.

read_payment_integrations

Reads Payment Integrations.

update_payment_integrations

Updates Payment Integrations.

update_payment_intents

Updates Payment Intents.

create_payment_methods

Creates Payment Methods.

read_payment_methods

Reads Payment Methods.

update_payment_methods

Updates Payment Methods.

create_payments

Creates Payments.

read_payments

Reads Payments.

update_payments

Updates Payments.

create_product_discounts

Creates Product Discounts.

read_product_discounts

Reads Product Discounts.

update_product_discounts

Updates Product Discounts.

read_product_projections

Reads Product Projections.

read_product_search

Searches for Products.

create_product_selections

Creates Product Selections.

read_product_selections

Reads Product Selections.

update_product_selections

Updates Product Selections.

create_product_tailoring

Creates Product Tailoring.

read_product_tailoring

Reads Product Tailoring.

update_product_tailoring

Updates Product Tailoring.

create_product_types

Creates Product Types.

read_product_types

Reads Product Types.

update_product_types

Updates Product Types.

create_products

Creates Products.

read_products

Reads Products.

update_products

Updates Products.

read_project

Reads Project settings.

update_project

Updates Project settings.

create_quote_requests

Creates Quote Requests.

read_quote_requests

Reads Quote Requests.

update_quote_requests

Updates Quote Requests.

create_quotes

Creates Quotes.

read_quotes

Reads Quotes.

update_quotes

Updates Quotes.

create_recurring_orders

Creates Recurring Orders.

read_recurring_orders

Reads Recurring Orders.

update_recurring_orders

Updates Recurring Orders.

create_reviews

Creates Reviews.

read_reviews

Reads Reviews.

update_reviews

Updates Reviews.

create_shipping_methods

Creates Shipping Methods.

read_shipping_methods

Reads Shipping Methods.

update_shipping_methods

Updates Shipping Methods.

create_shopping_lists

Creates Shopping Lists.

read_shopping_lists

Reads Shopping Lists.

update_shopping_lists

Updates Shopping Lists.

create_staged_quotes

Creates Staged Quotes.

read_staged_quotes

Reads Staged Quotes.

update_staged_quotes

Updates Staged Quotes.

create_standalone_prices

Creates Standalone Prices.

read_standalone_prices

Reads Standalone Prices.

update_standalone_prices

Updates Standalone Prices.

create_states

Creates States.

read_states

Reads States.

update_states

Updates States.

create_stores

Creates Stores.

read_stores

Reads Stores.

update_stores

Updates Stores.

create_subscriptions

Creates Subscriptions.

read_subscriptions

Reads Subscriptions.

update_subscriptions

Updates Subscriptions.

create_tax_categories

Creates Tax Categories.

read_tax_categories

Reads Tax Categories.

update_tax_categories

Updates Tax Categories.

create_transactions

Creates Transactions.

read_transactions

Reads Transactions.

create_types

Creates Types.

read_types

Reads Types.

update_types

Updates Types.

create_zones

Creates Zones.

read_zones

Reads Zones.

update_zones

Updates Zones.

McpServerType

Describes an MCP Server type and one of its major versions, including the catalog of tools available for it. Use this catalog to discover which tools you can enable on a McpServer of this type.
type​
String​
Identifier of the MCP Server type, such as CommerceMCP.
majorVersion​
String​
Major version of the MCP Server type, such as v4.
tools​
Array of McpServerTypeTool​

Tools available for this MCP Server type and major version.

Example: json
{
  "type": "CommerceMCP",
  "majorVersion": "v4",
  "tools": [
    {
      "name": "read_products",
      "description": "Search and retrieve product data from the catalog, including prices, variants, and attributes.",
      "operationType": "read",
      "groups": [
        "all",
        "read_all"
      ]
    },
    {
      "name": "create_orders",
      "description": "Create new orders from existing carts.",
      "operationType": "write",
      "groups": [
        "all"
      ]
    }
  ]
}

McpServerTypeTool

Describes a single tool available for an MCP Server type and major version.

name​
String​
Identifier of the tool, such as read_products or create_orders. Matches a value of McpServerTool.
description​
String​

Human-readable description of what the tool does. Omitted when no description is available.

operationType​
String​
Whether the tool reads (read) or modifies (write) data.
Can be "read", or "write"​
groups​
Array of String​
Group identifiers the tool belongs to, such as all or read_all. Empty when the tool belongs to no group.

McpServerDraft

Draft representation for creating a new MCP Server.

key​
String​

User-defined unique identifier for the MCP Server. Must be unique within the Project.

MinLength: 2​MaxLength: 256​Pattern: ^[A-Za-z0-9_-]+$​
name​

Name of the MCP Server.

description​

Description of the MCP Server.

authenticationMode​

Determines how AI agents authenticate when connecting to the MCP Server.

Default: ClientCredentials​
state​

State of the MCP Server.

Default: Disabled​
mcpServer​

Configuration of the MCP Server connection.

McpServerConfigDraft

Connection configuration for creating or updating an MCP Server. The type discriminator determines the concrete configuration shape and the set of tools available for this MCP Server. Only CommerceMcpServerConfigDraft is supported.
type​
String​
"CommerceMCP"

MCP Server type. Determines the shape of the configuration and the set of tools available for this MCP Server.

CommerceMcpServerConfigDraft

Connection configuration for creating or updating a Commerce MCP Server.

type​
String​
"CommerceMCP"

MCP Server type. Determines the shape of the configuration and the set of tools available for this MCP Server.

majorVersion​
String​
Major version of this MCP Server type. Supported versions are v1 (deprecated) and v4.
Can be "v1", or "v4"​
tools​
Array of McpServerTool​
List of tools to enable for this MCP Server. Use all to enable all available tools, or specify individual tool names such as read_products or create_orders. To reduce the number of LLM turns and improve overall performance, it is advisable to expose only the tools that are necessary, or at least minimize the exposure of tools that are unlikely to be used.
toolCustomizations​
Array of ToolCustomization​
Per-tool customizations applied at tools/list and tools/call time, such as overriding a tool's description or constraining its parameters.
jsonOutputFiltering​

Response field-filtering rules applied to tool responses.

toolOutputFormatting​

Output formatting applied to tool responses. When absent, responses are left untouched.

Example: json
{
  "type": "CommerceMCP",
  "majorVersion": "v4",
  "tools": [
    "read_product_search",
    "read_categories",
    "read_orders"
  ],
  "toolCustomizations": [
    {
      "tool": "read_product_search",
      "description": "Look for products in the catalog. Always filter by category when the customer mentions a department.",
      "parameters": [
        {
          "name": "staged",
          "const": false
        }
      ]
    }
  ],
  "jsonOutputFiltering": {
    "redact": {
      "fieldNameContains": [
        "phone",
        "password"
      ]
    },
    "drop": {
      "fieldNames": [
        "billingAddress",
        "shippingAddress",
        "paymentInfo"
      ]
    },
    "redactedWith": "[REDACTED]"
  }
}

McpServerPagedQueryResponse

PagedQueryResult with results containing an array of McpServer.
limit​
Int64​
Default: 20​Minimum: 0​Maximum: 500​
offset​
Int64​
Number of elements skipped.
Default: 0​Maximum: 10000​
count​
Int64​

Actual number of results returned.

total​
Int64​
Total number of results matching the query. This field is returned by default. For improved performance, calculating this field can be deactivated by using the query parameter withTotal=false.
results​
Array of McpServer​

MCP Servers matching the query.

McpServerState

State of the MCP Server. A Disabled MCP Server rejects all AI agent tool requests while keeping its configuration editable.
Enabled

The MCP Server is active and accepts AI agent tool requests.

Disabled

The MCP Server rejects all AI agent tool requests while keeping its configuration editable.

McpServerAuthenticationMode

Determines how AI agents authenticate when connecting to the MCP Server.

ClientCredentials
AI agents authenticate with an API Client using the client credentials flow. The MCP Server exposes every configured tool. Use this mode for machine-to-machine scenarios.
CommercetoolsIdentity
Users sign in with an Identity account, the same account that is used for the Merchant Center. The MCP Server exposes only the configured tools that the Merchant Center permissions of the user who signs in allow. Use this mode for human-in-the-loop scenarios.

McpServerToolOutputFormatting

Output formatting applied to every tools/call response on the MCP Server. The value names the conversion performed; when the field is absent, the response content shape is left untouched.
  • JsonToTabular: converts JSON tool output into a tabular representation.
JsonToTabular

Converts JSON tool output into a tabular representation to reduce token count.

ToolCustomization

Customization applied to a single tool at tools/list and tools/call time. At least one of description or a non-empty parameters list must be present; a customization with neither has no effect and is rejected. Parameter names within parameters must be unique.
tool​
Name of the tool to customize, such as read_products or create_orders. Must be one of the tools enabled on the MCP Server.
description​
String​

Replacement description for the tool, shown to the AI agent.

parameters​
Array of ParameterOverride​

Overrides applied to individual parameters of the tool's input schema.

ParameterOverride

Override applied to a single parameter of a tool's input schema. At least one of description, const, default, or allowedTypes must be present. const is mutually exclusive with both default and allowedTypes. Parameter values are JSON values.
name​
String​

Name of the parameter in the tool's input schema to override.

description​
String​

Replacement description for the parameter, shown to the AI agent.

const​
Any​
Pins the parameter to a fixed value. Mutually exclusive with default and allowedTypes.
default​
Any​
Default value applied when the caller omits the parameter. Mutually exclusive with const.
allowedTypes​
Array of Any​
Restricts accepted values to this set. Mutually exclusive with const.

McpServerJsonOutputFiltering

Response field-filtering rules applied to tools/call results on the MCP Server. Every field is optional; an empty object filters nothing.
redact​

Fields whose values are replaced with a placeholder. The field itself is kept.

drop​

Fields that are removed entirely from the response.

fieldPathsToKeep​
Array of String​
Exact dotted paths kept even when they would otherwise match redact or drop.
redactedWith​
String​
Placeholder written in place of redacted values. When unset, the MCP Server applies its own default ([REDACTED]).

McpServerJsonOutputFilteringMatcher

One match group for McpServerJsonOutputFiltering. Selects fields three ways, each with a fixed case-sensitivity rule. All fields are optional.
  • fieldPaths: exact dotted path, for example customer.password. Matched case-sensitively.
  • fieldNames: exact field name at any depth, for example password. Matched case-sensitively.
  • fieldNameContains: substring of a field name at any depth, for example secret catching clientSecret. Matched case-insensitively to widen the net.
fieldPaths​
Array of String​
Exact dotted paths to match, for example customer.password. Matched case-sensitively.
fieldNames​
Array of String​
Exact field names to match at any depth, for example password. Matched case-sensitively.
fieldNameContains​
Array of String​
Substrings to match against field names at any depth, for example secret. Matched case-insensitively.

McpServerUpdate

Update payload for an MCP Server. Specifies the expected version and the update actions to apply.

version​
Int64​
Expected version of the MCP Server on which the changes should be applied. If the expected version does not match the actual version, a ConcurrentModification error is returned.
actions​

Update actions to be performed on the MCP Server.