Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion guides/development/extensions/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Extensions must explicitly support target Shopware versions. Review the [Upgrade

## MCP Server extensibility

Both plugins and apps can contribute custom tools, prompts, and resources to Shopware's built-in [MCP Server](../tooling/mcp-server/index.md). This lets AI clients access your extension's capabilities alongside core platform tools.
Both plugins and apps can contribute custom tools, prompts, and resources to Shopware's built-in [MCP Server](../../../products/tools/mcp-server/index.md). This lets AI clients access your extension's capabilities alongside core platform tools.

- [Extend the MCP Server via Plugin](../../plugins/plugins/mcp-server.md)
- [Extend the MCP Server via App](../../plugins/apps/mcp-server.md)
Expand Down
10 changes: 5 additions & 5 deletions guides/plugins/apps/mcp-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
- Your capability needs to scale or deploy independently from Shopware
- You are building a SaaS integration where isolation matters more than in-process performance

For in-process PHP with full DAL access, see [Extending via Plugin](../plugins/mcp-server.md). For a side-by-side comparison of all three extension types, see [Extending the MCP Server](../../development/tooling/mcp-server/extending.md).
For in-process PHP with full DAL access, see [Extending via Plugin](../plugins/mcp-server.md). For a side-by-side comparison of all three extension types, see [Extending the MCP Server](../../../products/tools/mcp-server/extending.md).

## How app capabilities work

Expand Down Expand Up @@ -120,13 +120,13 @@
The `url` attribute supports two modes:

- **External URL** (`https://...`): Shopware sends an HMAC-signed POST to your remote endpoint. This is the default for SaaS integrations and any app hosted outside Shopware.
- **Internal path** (`/...`): Shopware dispatches the call as a Symfony subrequest. This lets an app use [app scripts](../app-scripts/) to serve capability logic without running an external server. Example: `url="/api/script/mcp-greet"`.
- **Internal path** (`/...`): Shopware dispatches the call as a Symfony subrequest. This lets an app use [app scripts](./app-scripts/) to serve capability logic without running an external server. Example: `url="/api/script/mcp-greet"`.

Check warning on line 123 in guides/plugins/apps/mcp-server.md

View workflow job for this annotation

GitHub Actions / Runner

[LanguageTool] reported by reviewdog 🐶 Unpaired symbol: ‘"’ seems to be missing (EN_UNPAIRED_QUOTES) URL: https://languagetool.org/insights/post/punctuation-guide/#what-are-parentheses Rule: https://community.languagetool.org/rule/show/EN_UNPAIRED_QUOTES?lang=en-US Category: PUNCTUATION Raw Output: guides/plugins/apps/mcp-server.md:123:231: Unpaired symbol: ‘"’ seems to be missing (EN_UNPAIRED_QUOTES) URL: https://languagetool.org/insights/post/punctuation-guide/#what-are-parentheses Rule: https://community.languagetool.org/rule/show/EN_UNPAIRED_QUOTES?lang=en-US Category: PUNCTUATION

Use the internal-path mode when your tool is a thin wrapper around data that Shopware already has. Use external URLs when you need to call out to an ERP, PIM, or any system that Shopware cannot reach directly.

### Internal-path example: app script

Point the tool at an [app script endpoint](../app-scripts/add-api-endpoint.md):
Point the tool at an [app script endpoint](./app-scripts/add-api-endpoint.md):

```xml
<mcp-tool name="greet" url="/api/script/mcp-greet">
Expand Down Expand Up @@ -289,7 +289,7 @@

## Further reading

- [MCP Concepts](../../development/tooling/mcp-server/mcp-concepts.md): tools, resources, and prompts explained
- [Best Practices](../../development/tooling/mcp-server/best-practices.md): design principles for MCP tools
- [MCP Concepts](../../../products/tools/mcp-server/mcp-concepts.md): tools, resources, and prompts explained
- [Best Practices](../../../products/tools/mcp-server/best-practices.md): design principles for MCP tools
- [Extending via Plugin](../plugins/mcp-server.md): in-process PHP alternative
- [McpHelloWorld](https://github.com/shopwareLabs/McpHelloWorld): minimal example app registering tools, prompts, and resources via webhook
10 changes: 5 additions & 5 deletions guides/plugins/plugins/mcp-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
- You want to ship via the Shopware Marketplace
- Your capability is tightly coupled to Shopware's plugin lifecycle (install, activate, deactivate)

For remote/webhook-based capabilities, see [Extending via App](../apps/mcp-server.md). For a side-by-side comparison of all three extension types, see [Extending the MCP Server](../../development/tooling/mcp-server/extending.md).
For remote/webhook-based capabilities, see [Extending via App](../apps/mcp-server.md). For a side-by-side comparison of all three extension types, see [Extending the MCP Server](../../../products/tools/mcp-server/extending.md).

## Naming convention

Expand Down Expand Up @@ -120,7 +120,7 @@

### Required privileges

Declare the [ACL privileges](../../development/tooling/mcp-server/configuration.md#acl-and-permissions) your tool needs with `#[McpToolRequires]` so operators can configure roles correctly:
Declare the [ACL privileges](../../../products/tools/mcp-server/configuration.md#acl-and-permissions) your tool needs with `#[McpToolRequires]` so operators can configure roles correctly:

Check warning on line 123 in guides/plugins/plugins/mcp-server.md

View workflow job for this annotation

GitHub Actions / Runner

[LanguageTool] reported by reviewdog 🐶 File types are normally capitalized. (FILE_EXTENSIONS_CASE[1]) Suggestions: `PHP` URL: https://languagetool.org/insights/post/spelling-capital-letters/ Rule: https://community.languagetool.org/rule/show/FILE_EXTENSIONS_CASE?lang=en-US&subId=1 Category: CASING Raw Output: guides/plugins/plugins/mcp-server.md:123:134: File types are normally capitalized. (FILE_EXTENSIONS_CASE[1]) Suggestions: `PHP` URL: https://languagetool.org/insights/post/spelling-capital-letters/ Rule: https://community.languagetool.org/rule/show/FILE_EXTENSIONS_CASE?lang=en-US&subId=1 Category: CASING

```php
// Static privilege
Expand Down Expand Up @@ -294,7 +294,7 @@

## Further reading

- [MCP Concepts](../../development/tooling/mcp-server/mcp-concepts.md): tools, resources, and prompts explained
- [Best Practices](../../development/tooling/mcp-server/best-practices.md): design principles for MCP tools
- [Configuration](../../development/tooling/mcp-server/configuration.md): allowlist, ACL, and CLI debugging
- [MCP Concepts](../../../products/tools/mcp-server/mcp-concepts.md): tools, resources, and prompts explained
- [Best Practices](../../../products/tools/mcp-server/best-practices.md): design principles for MCP tools
- [Configuration](../../../products/tools/mcp-server/configuration.md): allowlist, ACL, and CLI debugging
- [SwagMcpAdminUsers](https://github.com/shopwareLabs/SwagMcpAdminUsers): example plugin registering tools, prompts, and resources for admin user management
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ With the `sizes` parameter you can control the `sizes` attribute of the `img` an

You can find more information on those sizes here:

<PageRef page="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img\#attr-srcset" title="&lt;img&gt;: The Image Embed element - HTML: HyperText Markup Language | MDN" target="_blank" />
<PageRef page="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-srcset" title="&lt;img&gt;: The Image Embed element - HTML: HyperText Markup Language | MDN" target="_blank" />

E.g. if the browser is in Bootstrap viewport `lg` \(which is 992px - 1199px\) use an image which is closest to 333px. If `sizes` is not set, Shopware will automatically use fallback values from global `shopware.theme.breakpoint`.

Expand Down
Loading