View, create, update, and delete Managed MCP Server configurations for your Project.
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.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.1 000 000 tool invocations can be made per Project per month. Learn more about this limit.Representations
McpServer
Represents an MCP Server configuration that exposes a set of tools to AI agents via the Model Context Protocol.
idString | Unique identifier of the MCP Server. |
versionInt | Current version of the MCP Server. |
keyString | User-defined unique identifier of the MCP Server within a Project. MinLength:2MaxLength: 256Pattern: ^[A-Za-z0-9_-]+$ |
name | Name of the MCP Server. |
description | Description of 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
type discriminator determines the concrete configuration shape and the set of tools available for this MCP Server. Only CommerceMcpServerConfig is supported.typeString | "CommerceMCP"MCP Server type. Determines the shape of the configuration and the set of tools available for this MCP Server. |
CommerceMcpServerConfig
typeString | "CommerceMCP"MCP Server type. Determines the shape of the configuration and the set of tools available for this MCP Server. |
majorVersionString | Major version of this MCP Server type. Supported versions are Can be v1 (deprecated) and v4."v1", or "v4" |
urlString | 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} |
toolsArray 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. |
toolCustomizationsArray 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. |
{
"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
allEnables all available tools, including read, create, and update operations. For security and performance, enable this only when broad access is required.
read_allEnables all read-only tools.
create_applicationsCreates Applications.
read_applicationsReads Applications.
update_applicationsUpdates Applications.
create_attribute_groupsCreates Attribute Groups.
read_attribute_groupsReads Attribute Groups.
update_attribute_groupsUpdates Attribute Groups.
create_bulkCreates resources in bulk.
update_bulkUpdates resources in bulk.
create_business_unitsCreates Business Units.
read_business_unitsReads Business Units.
update_business_unitsUpdates Business Units.
create_cart_discountsCreates Cart Discounts.
read_cart_discountsReads Cart Discounts.
update_cart_discountsUpdates Cart Discounts.
create_cartsCreates Carts.
read_cartsReads Carts.
update_cartsUpdates Carts.
replicate_cartsReplicates an existing Cart or Order into a new Cart.
create_categoriesCreates Categories.
read_categoriesReads Categories.
update_categoriesUpdates Categories.
create_channelsCreates Channels.
read_channelsReads Channels.
update_channelsUpdates Channels.
create_custom_objectsCreates Custom Objects.
read_custom_objectsReads Custom Objects.
update_custom_objectsUpdates Custom Objects.
create_customer_groupsCreates Customer Groups.
read_customer_groupsReads Customer Groups.
update_customer_groupsUpdates Customer Groups.
read_customer_searchSearches for Customers.
create_customersCreates Customers.
read_customersReads Customers.
update_customersUpdates Customers.
create_discount_codesCreates Discount Codes.
read_discount_codesReads Discount Codes.
update_discount_codesUpdates Discount Codes.
create_extensionsCreates API Extensions.
read_extensionsReads API Extensions.
update_extensionsUpdates API Extensions.
create_inventoryCreates Inventory.
read_inventoryReads Inventory.
update_inventoryUpdates Inventory.
read_messagesReads Messages.
create_ordersCreates Orders.
read_ordersReads Orders.
update_ordersUpdates Orders.
create_payment_integrationsCreates Payment Integrations.
read_payment_integrationsReads Payment Integrations.
update_payment_integrationsUpdates Payment Integrations.
update_payment_intentsUpdates Payment Intents.
create_payment_methodsCreates Payment Methods.
read_payment_methodsReads Payment Methods.
update_payment_methodsUpdates Payment Methods.
create_paymentsCreates Payments.
read_paymentsReads Payments.
update_paymentsUpdates Payments.
create_product_discountsCreates Product Discounts.
read_product_discountsReads Product Discounts.
update_product_discountsUpdates Product Discounts.
read_product_projectionsReads Product Projections.
read_product_searchSearches for Products.
create_product_selectionsCreates Product Selections.
read_product_selectionsReads Product Selections.
update_product_selectionsUpdates Product Selections.
create_product_tailoringCreates Product Tailoring.
read_product_tailoringReads Product Tailoring.
update_product_tailoringUpdates Product Tailoring.
create_product_typesCreates Product Types.
read_product_typesReads Product Types.
update_product_typesUpdates Product Types.
create_productsCreates Products.
read_productsReads Products.
update_productsUpdates Products.
read_projectReads Project settings.
update_projectUpdates Project settings.
create_quote_requestsCreates Quote Requests.
read_quote_requestsReads Quote Requests.
update_quote_requestsUpdates Quote Requests.
create_quotesCreates Quotes.
read_quotesReads Quotes.
update_quotesUpdates Quotes.
create_recurring_ordersCreates Recurring Orders.
read_recurring_ordersReads Recurring Orders.
update_recurring_ordersUpdates Recurring Orders.
create_reviewsCreates Reviews.
read_reviewsReads Reviews.
update_reviewsUpdates Reviews.
create_shipping_methodsCreates Shipping Methods.
read_shipping_methodsReads Shipping Methods.
update_shipping_methodsUpdates Shipping Methods.
create_shopping_listsCreates Shopping Lists.
read_shopping_listsReads Shopping Lists.
update_shopping_listsUpdates Shopping Lists.
create_staged_quotesCreates Staged Quotes.
read_staged_quotesReads Staged Quotes.
update_staged_quotesUpdates Staged Quotes.
create_standalone_pricesCreates Standalone Prices.
read_standalone_pricesReads Standalone Prices.
update_standalone_pricesUpdates Standalone Prices.
create_statesCreates States.
read_statesReads States.
update_statesUpdates States.
create_storesCreates Stores.
read_storesReads Stores.
update_storesUpdates Stores.
create_subscriptionsCreates Subscriptions.
read_subscriptionsReads Subscriptions.
update_subscriptionsUpdates Subscriptions.
create_tax_categoriesCreates Tax Categories.
read_tax_categoriesReads Tax Categories.
update_tax_categoriesUpdates Tax Categories.
create_transactionsCreates Transactions.
read_transactionsReads Transactions.
create_typesCreates Types.
read_typesReads Types.
update_typesUpdates Types.
create_zonesCreates Zones.
read_zonesReads Zones.
update_zonesUpdates Zones.
McpServerType
typeString | Identifier of the MCP Server type, such as CommerceMCP. |
majorVersionString | Major version of the MCP Server type, such as v4. |
toolsArray of McpServerTypeTool | Tools available for this MCP Server type and major version. |
{
"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.
nameString | |
descriptionString | Human-readable description of what the tool does. Omitted when no description is available. |
operationTypeString | Whether the tool reads ( Can be read) or modifies (write) data."read", or "write" |
groupsArray 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.
keyString | User-defined unique identifier for the MCP Server. Must be unique within the Project. MinLength:2MaxLength: 256Pattern: ^[A-Za-z0-9_-]+$ |
name | Name of the MCP Server. |
description | Description of the MCP Server. |
state | State of the MCP Server. Default:Enabled |
mcpServer | Configuration of the MCP Server connection. |
McpServerConfigDraft
type discriminator determines the concrete configuration shape and the set of tools available for this MCP Server. Only CommerceMcpServerConfigDraft is supported.typeString | "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.
typeString | "CommerceMCP"MCP Server type. Determines the shape of the configuration and the set of tools available for this MCP Server. |
majorVersionString | Major version of this MCP Server type. Supported versions are Can be v1 (deprecated) and v4."v1", or "v4" |
toolsArray 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. |
toolCustomizationsArray 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. |
{
"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
limitInt | Number of results requested. Default: 20Minimum: 0Maximum: 500 |
offsetInt | Number of elements skipped. Default: 0Maximum: 10000 |
countInt | Actual number of results returned. |
totalInt | 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. |
resultsArray of McpServer | MCP Servers matching the query. |
McpServerState
Disabled MCP Server rejects all AI agent tool requests while keeping its configuration editable. Defaults to Enabled when not provided on creation.EnabledThe MCP Server is active and accepts AI agent tool requests.
DisabledThe MCP Server rejects all AI agent tool requests while keeping its configuration editable.
McpServerToolOutputFormatting
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.
JsonToTabularConverts JSON tool output into a tabular representation to reduce token count.
ToolCustomization
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. |
descriptionString | Replacement description for the tool, shown to the AI agent. |
parametersArray of ParameterOverride | Overrides applied to individual parameters of the tool's input schema. |
ParameterOverride
description, const, default, or allowedTypes must be present. const is mutually exclusive with both default and allowedTypes. Parameter values are JSON values.nameString | Name of the parameter in the tool's input schema to override. |
descriptionString | Replacement description for the parameter, shown to the AI agent. |
constAny | Pins the parameter to a fixed value. Mutually exclusive with default and allowedTypes. |
defaultAny | Default value applied when the caller omits the parameter. Mutually exclusive with const. |
allowedTypesArray of Any | Restricts accepted values to this set. Mutually exclusive with const. |
McpServerJsonOutputFiltering
tools/call results on the MCP Server. Every field is optional; an empty object filters nothing.Fields whose values are replaced with a placeholder. The field itself is kept. | |
Fields that are removed entirely from the response. | |
fieldPathsToKeepArray of String | Exact dotted paths kept even when they would otherwise match redact or drop. |
redactedWithString | Placeholder written in place of redacted values. When unset, the MCP Server applies its own default ( [REDACTED]). |
McpServerJsonOutputFilteringMatcher
fieldPaths: exact dotted path, for examplecustomer.password. Matched case-sensitively.fieldNames: exact field name at any depth, for examplepassword. Matched case-sensitively.fieldNameContains: substring of a field name at any depth, for examplesecretcatchingclientSecret. Matched case-insensitively to widen the net.
fieldPathsArray of String | Exact dotted paths to match, for example customer.password. Matched case-sensitively. |
fieldNamesArray of String | Exact field names to match at any depth, for example password. Matched case-sensitively. |
fieldNameContainsArray 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.
versionInt | 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. |
actionsArray of McpServerUpdateAction | Update actions to be performed on the MCP Server. |
Get MCP Server
Get MCP Server by ID
manage_mcp_servers:{projectKey}view_mcp_servers:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
idString | id of the McpServer. |
application/jsoncurl --get https://api.{region}.commercetools.com/{projectKey}/mcp-servers/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" {
"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"
},
"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
manage_mcp_servers:{projectKey}view_mcp_servers:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
keyString | key of the McpServer. |
application/jsoncurl --get https://api.{region}.commercetools.com/{projectKey}/mcp-servers/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" {
"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"
},
"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
manage_mcp_servers:{projectKey}view_mcp_servers:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
sort | The parameter can be passed multiple times. |
limitInt | Number of results requested. Default: 20Minimum: 0Maximum: 500 |
offsetInt | Number of elements skipped. Default: 0Maximum: 10000 |
withTotalBoolean | 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 |
application/jsoncurl --get https://api.{region}.commercetools.com/{projectKey}/mcp-servers -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" {
"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",
"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
manage_project:{projectKey}manage_mcp_servers:{projectKey}view_mcp_servers:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
application/jsoncurl --get https://api.{region}.commercetools.com/{projectKey}/mcp-servers/types -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"[
{
"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
majorVersion is omitted, the latest major version is returned.manage_project:{projectKey}manage_mcp_servers:{projectKey}view_mcp_servers:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
mcpServerTypeString |
majorVersionString | Major version to return, such as v4. When omitted, the latest major version is returned. |
application/jsoncurl --get https://api.{region}.commercetools.com/{projectKey}/mcp-servers/types/{mcpServerType} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"{
"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
manage_mcp_servers:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
application/jsonapplication/jsoncurl 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{
"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"
},
"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
Specific Error Codes:
manage_mcp_servers:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
idString | id of the McpServer. |
application/jsonapplication/jsoncurl 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{
"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",
"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
Specific Error Codes:
manage_mcp_servers:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
keyString | key of the McpServer. |
application/jsonapplication/jsoncurl 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{
"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",
"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.
actionString | "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. |
{
"action": "addTool",
"tool": "create_carts"
}Remove Tool
actionString | "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. |
{
"action": "removeTool",
"tool": "create_carts"
}Set Tools
Replaces the entire list of tools enabled for the MCP Server.
actionString | "setTools"Identifies the update action to perform, such as addTool, removeTool, or setTools. |
toolsArray 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. |
{
"action": "setTools",
"tools": [
"read_products",
"read_categories",
"read_orders"
]
}Set Tool Customizations
actionString | "setToolCustomizations"Identifies the update action to perform, such as addTool, removeTool, or setTools. |
toolCustomizationsArray of ToolCustomization | New list of tool customizations. Replaces the existing list entirely. |
{
"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
actionString | "addToolCustomization"Identifies the update action to perform, such as addTool, removeTool, or setTools. |
toolCustomization | Tool customization to add. |
{
"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
actionString | "removeToolCustomization"Identifies the update action to perform, such as addTool, removeTool, or setTools. |
toolCustomization | Identifies the tool customization to remove by its tool name. |
{
"action": "removeToolCustomization",
"toolCustomization": {
"tool": "read_orders"
}
}Remove Tool Customization Target
tool | Name of the tool whose customization is removed. |
Set Name
Sets the localized name of the MCP Server.
actionString | "setName"Identifies the update action to perform, such as addTool, removeTool, or setTools. |
name | Value to set. If empty or absent, the existing name is removed. |
{
"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.
actionString | "setDescription"Identifies the update action to perform, such as addTool, removeTool, or setTools. |
description | Value to set. If empty or absent, the existing description is removed. |
{
"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
Disabled MCP Server rejects all AI agent tool requests.actionString | "setState"Identifies the update action to perform, such as addTool, removeTool, or setTools. |
state | New state to set. |
{
"action": "setState",
"state": "Disabled"
}Set JSON Output Filtering
actionString | "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. |
{
"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
actionString | "setToolOutputFormatting"Identifies the update action to perform, such as addTool, removeTool, or setTools. |
toolOutputFormatting | Value to set. If absent, the existing formatting is removed. |
{
"action": "setToolOutputFormatting",
"toolOutputFormatting": "JsonToTabular"
}Delete MCP Server
Delete MCP Server by ID
manage_mcp_servers:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
idString | id of the McpServer. |
versionInt | Last seen version of the resource. |
application/jsoncurl -X DELETE https://api.{region}.commercetools.com/{projectKey}/mcp-servers/{id}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"{
"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"
},
"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
manage_mcp_servers:{projectKey}regionString | Region in which the Project is hosted. |
projectKeyString | key of the Project. |
keyString | key of the McpServer. |
versionInt | Last seen version of the resource. |
application/jsoncurl -X DELETE https://api.{region}.commercetools.com/{projectKey}/mcp-servers/key={key}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"{
"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"
},
"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."
}
]
}
}