MCP Capabilities
Server admin
Tools 14
shopware-tool-search
Description: Search the allowed Shopware MCP tool catalogue by free-text query and return the most relevant tool definitions inline. Use this when a needed tool is not visible in tools/list.
Handler: Shopware\Core\Framework\Mcp\Tool\ToolSearchTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string | Yes | - | - |
maxResults |
integer | No |
3
|
- |
Full Schema
array:3 [ "type" => "object" "properties" => array:2 [ "query" => array:1 [ "type" => "string" ] "maxResults" => array:2 [ "type" => "integer" "default" => 3 ] ] "required" => array:1 [ 0 => "query" ] ] |
shopware-entity-schema
Description: Get the field and association schema of a Shopware entity definition: field names, types, and associations for building shopware-entity-search criteria. Returns {success, data: {fields: [...], associations: [...]}}. See shopware://entities resource for all available entity names.
Handler: Shopware\Core\Framework\Mcp\Tool\EntitySchemaTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
entity |
string | Yes | - | - |
Full Schema
array:3 [ "type" => "object" "properties" => array:1 [ "entity" => array:1 [ "type" => "string" ] ] "required" => array:1 [ 0 => "entity" ] ] |
shopware-entity-search
Description: Search and filter Shopware entities — use this to look up a product by its productNumber or any exact field value, including as the first step in Storefront cart/checkout workflows. For count/sum/average reporting, use shopware-entity-aggregate instead (the _meta.total here is pagination metadata, not a reporting count). Accepts Admin API criteria JSON. Returns {success, data: [...], _meta: {total, page, limit}}. If you don't already know the field names, shopware-entity-schema will tell you.
Handler: Shopware\Core\Framework\Mcp\Tool\EntitySearchTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
entity |
string | Yes | - | - |
criteria |
string | No |
{}
|
- |
limit |
integer | No |
25
|
- |
page |
integer | No |
1
|
- |
term |
string | No |
|
- |
Full Schema
array:3 [ "type" => "object" "properties" => array:5 [ "entity" => array:1 [ "type" => "string" ] "criteria" => array:2 [ "type" => "string" "default" => "{}" ] "limit" => array:2 [ "type" => "integer" "default" => 25 ] "page" => array:2 [ "type" => "integer" "default" => 1 ] "term" => array:2 [ "type" => "string" "default" => "" ] ] "required" => array:1 [ 0 => "entity" ] ] |
shopware-entity-aggregate
Description: The correct tool for count, sum, average, and other aggregate questions. Use this — not shopware-entity-search — for any 'how many', 'total value', or 'average' query. Note: entity-search's _meta.total is pagination metadata, not a reporting count. Supports: count, avg, sum, min, max, terms, date-histogram. Returns only aggregation results, no entity rows. Pass aggregation definitions as Admin API criteria JSON.
Handler: Shopware\Core\Framework\Mcp\Tool\EntityAggregateTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
entity |
string | Yes | - | - |
aggregations |
string | Yes | - | - |
filters |
string | No |
[]
|
- |
Full Schema
array:3 [ "type" => "object" "properties" => array:3 [ "entity" => array:1 [ "type" => "string" ] "aggregations" => array:1 [ "type" => "string" ] "filters" => array:2 [ "type" => "string" "default" => "[]" ] ] "required" => array:2 [ 0 => "entity" 1 => "aggregations" ] ] |
shopware-entity-read
Description: Read a single Shopware entity by its UUID. Use when you already have an entity ID. For searching by other fields, use shopware-entity-search instead. Returns {success, data: {id, ...fields}, _meta: {}}. Pass criteria JSON to include associations or select fields.
Handler: Shopware\Core\Framework\Mcp\Tool\EntityReadTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
entity |
string | Yes | - | - |
id |
string | Yes | - | - |
criteria |
string | No |
{}
|
- |
Full Schema
array:3 [ "type" => "object" "properties" => array:3 [ "entity" => array:1 [ "type" => "string" ] "id" => array:1 [ "type" => "string" ] "criteria" => array:2 [ "type" => "string" "default" => "{}" ] ] "required" => array:2 [ 0 => "entity" 1 => "id" ] ] |
shopware-system-config-read
Description: Read Shopware application configuration values in the core.* namespace. Pass a domain prefix (e.g. "core.listing") to get all keys, or a full dotted key to read a single value. For theme appearance settings (colors, logos, fonts), use shopware-theme-config instead. Optionally scope to a sales channel.
Handler: Shopware\Core\Framework\Mcp\Tool\SystemConfigReadTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
key |
string | Yes | - | - |
salesChannelId |
null|string | No |
|
- |
Full Schema
array:3 [ "type" => "object" "properties" => array:2 [ "key" => array:1 [ "type" => "string" ] "salesChannelId" => array:2 [ "type" => array:2 [ 0 => "null" 1 => "string" ] "default" => null ] ] "required" => array:1 [ 0 => "key" ] ] |
shopware-entity-upsert
Description: Create or update Shopware entity data. Always use dryRun=true (default) first to validate, then set dryRun=false to persist. If you don't already know the required fields, shopware-entity-schema will tell you. Returns validation result in dryRun mode, or the written entity data on commit.
Handler: Shopware\Core\Framework\Mcp\Tool\EntityUpsertTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
entity |
string | Yes | - | - |
payload |
string | Yes | - | - |
dryRun |
boolean | No |
1
|
- |
Full Schema
array:3 [ "type" => "object" "properties" => array:3 [ "entity" => array:1 [ "type" => "string" ] "payload" => array:1 [ "type" => "string" ] "dryRun" => array:2 [ "type" => "boolean" "default" => true ] ] "required" => array:2 [ 0 => "entity" 1 => "payload" ] ] |
shopware-entity-delete
Description: Delete Shopware entities by their UUIDs. Always use dryRun=true (default) first to preview cascade effects and dependent entity deletions, then set dryRun=false to execute. Returns {success, data: {deleted, notFound}, _meta: {dryRun}}.
Handler: Shopware\Core\Framework\Mcp\Tool\EntityDeleteTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
entity |
string | Yes | - | - |
ids |
string | Yes | - | - |
dryRun |
boolean | No |
1
|
- |
Full Schema
array:3 [ "type" => "object" "properties" => array:3 [ "entity" => array:1 [ "type" => "string" ] "ids" => array:1 [ "type" => "string" ] "dryRun" => array:2 [ "type" => "boolean" "default" => true ] ] "required" => array:2 [ 0 => "entity" 1 => "ids" ] ] |
shopware-system-config-write
Description: Modify or overwrite a Shopware system configuration value — use this whenever the user wants to change, set, or update a config key. Provide the full dotted key (e.g. 'core.basicInformation.shopName') and the new value. dryRun=true (default) shows a before/after diff without saving; set dryRun=false to persist. Optionally scope to a sales channel.
Handler: Shopware\Core\Framework\Mcp\Tool\SystemConfigWriteTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
key |
string | Yes | - | - |
value |
string | Yes | - | - |
salesChannelId |
null|string | No |
|
- |
dryRun |
boolean | No |
1
|
- |
Full Schema
array:3 [ "type" => "object" "properties" => array:4 [ "key" => array:1 [ "type" => "string" ] "value" => array:1 [ "type" => "string" ] "salesChannelId" => array:2 [ "type" => array:2 [ 0 => "null" 1 => "string" ] "default" => null ] "dryRun" => array:2 [ "type" => "boolean" "default" => true ] ] "required" => array:2 [ 0 => "key" 1 => "value" ] ] |
shopware-order-state
Description: Change the state of an order, its transactions, and/or its deliveries in one call. Looks up the order by orderNumber or orderId. Provide at least one of orderAction, transactionAction, or deliveryAction. Common actions: cancel, process, complete, reopen, paid, refund, ship, retour. Always use dryRun=true (default) to preview available transitions before executing with dryRun=false. See shopware://state-machines resource for all valid states and transitions.
Handler: Shopware\Core\Framework\Mcp\Tool\OrderStateTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
orderNumber |
string | No |
|
- |
orderId |
string | No |
|
- |
orderAction |
string | No |
|
- |
transactionAction |
string | No |
|
- |
deliveryAction |
string | No |
|
- |
dryRun |
boolean | No |
1
|
- |
Full Schema
array:2 [ "type" => "object" "properties" => array:6 [ "orderNumber" => array:2 [ "type" => "string" "default" => "" ] "orderId" => array:2 [ "type" => "string" "default" => "" ] "orderAction" => array:2 [ "type" => "string" "default" => "" ] "transactionAction" => array:2 [ "type" => "string" "default" => "" ] "deliveryAction" => array:2 [ "type" => "string" "default" => "" ] "dryRun" => array:2 [ "type" => "boolean" "default" => true ] ] ] |
shopware-media-upload
Description: Upload any image or file — including product cover images — to Shopware's media library from a URL. url is the only required parameter; productId, fileName, and mediaFolderId are all optional. Call this tool immediately with just the URL whenever the user asks to upload, import, or add an image. Returns the new mediaId.
Handler: Shopware\Core\Framework\Mcp\Tool\MediaUploadTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
url |
string | Yes | - | - |
fileName |
string | No |
|
- |
mediaFolderId |
string | No |
|
- |
productId |
string | No |
|
- |
Full Schema
array:3 [ "type" => "object" "properties" => array:4 [ "url" => array:1 [ "type" => "string" ] "fileName" => array:2 [ "type" => "string" "default" => "" ] "mediaFolderId" => array:2 [ "type" => "string" "default" => "" ] "productId" => array:2 [ "type" => "string" "default" => "" ] ] "required" => array:1 [ 0 => "url" ] ] |
shopware-toolsets-list
Description: List MCP toolsets that can be enabled for the current session. Use this first for any task: no domain tools are advertised until you enable their toolset.
Handler: Shopware\Core\Framework\Mcp\Tool\ToolsetsListTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|
Full Schema
array:2 [ "type" => "object" "properties" => {#6149} ] |
shopware-toolset-enable
Description: Enable one MCP toolset for the current session and ask the client to refresh tools/list. The toolset remains enabled only for this MCP session.
Handler: Shopware\Core\Framework\Mcp\Tool\ToolsetEnableTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
toolset |
string | Yes | - | - |
Full Schema
array:3 [ "type" => "object" "properties" => array:1 [ "toolset" => array:1 [ "type" => "string" ] ] "required" => array:1 [ 0 => "toolset" ] ] |
shopware-theme-config
Description: Read or update theme appearance settings (colors, logos, fonts) for a sales channel. Use action "get" to read the current theme config. Use action "update" with a config JSON to change values; dryRun=true (default) previews changes. salesChannelId accepts either the sales channel UUID or its name as shown in the admin, e.g. "Storefront". See shopware://sales-channels for the full list.
Handler: Shopware\Storefront\Mcp\Tool\ThemeConfigTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
salesChannelId |
string | No |
|
- |
action |
string | No |
get
|
- |
config |
string | No |
{}
|
- |
dryRun |
boolean | No |
1
|
- |
Full Schema
array:2 [ "type" => "object" "properties" => array:4 [ "salesChannelId" => array:2 [ "type" => "string" "default" => "" ] "action" => array:2 [ "type" => "string" "default" => "get" ] "config" => array:2 [ "type" => "string" "default" => "{}" ] "dryRun" => array:2 [ "type" => "boolean" "default" => true ] ] ] |
Prompts 1
shopware-context
Description: System prompt providing context about Shopware, its data model, and best practices for AI tool interaction.
Handler: Shopware\Core\Framework\Mcp\Prompt\ShopwareContextPrompt::__invoke()
This prompt has no arguments.
Resources 8
shopware-entity-list
| URI | shopware://entities |
|---|---|
| Handler | Shopware\Core\Framework\Mcp\Resource\EntityListResource::__invoke() |
| Description | List of all registered Shopware entity names |
shopware-business-events
| URI | shopware://business-events |
|---|---|
| Handler | Shopware\Core\Framework\Mcp\Resource\BusinessEventsResource::__invoke() |
| Description | All registered Shopware business events that can trigger flows and event actions. |
shopware-flow-actions
| URI | shopware://flow-actions |
|---|---|
| Handler | Shopware\Core\Framework\Mcp\Resource\FlowActionsResource::__invoke() |
| Description | All registered Shopware flow actions (core and app-provided) available in Flow Builder automations. |
shopware-sales-channels
| URI | shopware://sales-channels |
|---|---|
| Handler | Shopware\Core\Framework\Mcp\Resource\SalesChannelListResource::__invoke() |
| Description | All sales channels with their IDs, names, types, and domains. |
shopware-currencies
| URI | shopware://currencies |
|---|---|
| Handler | Shopware\Core\Framework\Mcp\Resource\CurrencyListResource::__invoke() |
| Description | All configured currencies with ISO codes, symbols, and conversion factors. |
shopware-languages
| URI | shopware://languages |
|---|---|
| Handler | Shopware\Core\Framework\Mcp\Resource\LanguageListResource::__invoke() |
| Description | All configured languages with locale codes. |
shopware-state-machines
| URI | shopware://state-machines |
|---|---|
| Handler | Shopware\Core\Framework\Mcp\Resource\StateMachineResource::__invoke() |
| Description | All state machines with their states and transitions. Use this to understand valid actions for shopware-order-state. |
shopware-extensions
| URI | shopware://extensions |
|---|---|
| Handler | Shopware\Core\Framework\Mcp\Resource\ExtensionsResource::__invoke() |
| Description | Optional MCP capability plugins. Read this when a requested tool is not available to find the right extension and its install command. |
Resource Templates 1
tool-result
| URI Template | shopware://tool-result/{id} |
|---|---|
| Handler | Shopware\Core\Framework\Mcp\Resource\ToolResultResource::__invoke() |
| Description | Retrieves a large tool result stored by a previous tool call in this session. Fetch when a tool response contains a resourceUri pointing here. |
| MIME Type | application/json |
Server store_api
Tools 4
shopware-store-api-context
Description: Read the current Store API sales-channel context for this MCP session, including sales channel, language, currency, context token, and whether a customer is authenticated.
Handler: Shopware\Core\System\SalesChannel\Mcp\Tool\StoreApiContextTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|
Full Schema
array:2 [ "type" => "object" "properties" => {#6148} ] |
shopware-tool-search
Description: Search the Store API MCP tool catalogue by free-text query and return the most relevant tool definitions inline. Use this when a needed tool is not visible in tools/list.
Handler: Shopware\Core\System\SalesChannel\Mcp\Tool\StoreApiToolSearchTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string | Yes | - | - |
maxResults |
integer | No |
3
|
- |
Full Schema
array:3 [ "type" => "object" "properties" => array:2 [ "query" => array:1 [ "type" => "string" ] "maxResults" => array:2 [ "type" => "integer" "default" => 3 ] ] "required" => array:1 [ 0 => "query" ] ] |
shopware-toolsets-list
Description: List MCP toolsets that can be enabled for the current session. Use this first for any task: no domain tools are advertised until you enable their toolset.
Handler: Shopware\Core\System\SalesChannel\Mcp\Tool\StoreApiToolsetsListTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|
Full Schema
array:2 [ "type" => "object" "properties" => {#6147} ] |
shopware-toolset-enable
Description: Enable one MCP toolset for the current session and ask the client to refresh tools/list. The toolset remains enabled only for this MCP session.
Handler: Shopware\Core\System\SalesChannel\Mcp\Tool\StoreApiToolsetEnableTool::__invoke()
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
toolset |
string | Yes | - | - |
Full Schema
array:3 [ "type" => "object" "properties" => array:1 [ "toolset" => array:1 [ "type" => "string" ] ] "required" => array:1 [ 0 => "toolset" ] ] |
Prompts 0
No prompts were registered.
Resources 0
No resources were registered.
Resource Templates 0
No resource templates were registered.