refactor: remove prompting tools, focus MCP on API interaction#1
Conversation
…nteraction Remove tools that generated LLM prompts (start-plugin-fix, setup-environment, check-environment) as prompting is not the responsibility of an MCP server. The MCP now solely provides API interaction with the Shopware account API. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
dithom
left a comment
There was a problem hiding this comment.
The PR correctly implements the task of removing prompting responsibility from the MCP server.
Correctness: All three prompting tools (start-plugin-fix, check-environment, setup-environment) that generated LLM prompt templates are properly removed. The get-support-ticket tool is correctly cleaned up to return raw ticket data instead of embedding LLM instructions in the response text. The tool description is updated to accurately reflect its purpose.
Consistency: index.ts removes all imports and registrations for the deleted tools. The PROJECT_DIRECTORY env var (used only by the removed filesystem tools) is also removed from the README config examples — a clean, complete cleanup.
README: Improved by adding a Claude Code config example alongside Cursor, fixing the missing newline, and updating the description to reflect the new focused scope.
Tests: The 6 existing tests cover the formatter and API client, which are the parts that remain. No new tests are needed since the removed tools were pure template-string generators with no meaningful logic to test.
No issues found. The change correctly narrows the MCP to its intended responsibility: providing AI access to the Shopware account API. LGTM.
| # Shopware MCP | ||
|
|
||
| A local Model Context Protocol (MCP) server for Shopware plugin development. This project aims to automate bugfixing for Shopware plugins as much as possible by considering support tickets, affected Shopware versions, and affected plugin versions using LLMs in your IDE. | ||
| A local Model Context Protocol (MCP) server for interacting with the Shopware account API. This MCP provides tools for AI assistants to access the mostly closed-source Shopware account API, which can otherwise only be reverse engineered using network requests or [shopware-cli](https://github.com/shopware/shopware-cli). |
There was a problem hiding this comment.
I guess "local" is obsolete, thats how mcps usually work
| @@ -26,21 +21,31 @@ Create `.cursor/mcp.json` (in case you are using Cursor) in your desired project | |||
| "env": { | |||
| "SHOPWARE_ACCOUNT_EMAIL": "YOUR_SHOPWARE_ACCOUNT_EMAIL", | |||
| "SHOPWARE_ACCOUNT_PASSWORD": "YOUR_SHOPWARE_ACCOUNT_PASSWORD" | |||
| "PROJECT_DIRECTORY": "/absolute/path/to/project" | |||
| } | |||
| } | |||
| } | |||
| } | |||
| ``` | |||
|
|
|||
| Check it's connecting successfully. Then you can prompt something like: | |||
| **Cursor** (`.cursor/mcp.json`): | |||
|
|
|||
| ``` | |||
| Use "start-plugin-fix" to stat fixing the plugin affected by support ticket ABCDE-123456. | |||
| ```json | |||
| { | |||
| "mcpServers": { | |||
| "shopware-mcp": { | |||
| "command": "npx", | |||
| "args": ["-y", "@studiosolid/shopware-mcp"], | |||
| "env": { | |||
| "SHOPWARE_ACCOUNT_EMAIL": "YOUR_SHOPWARE_ACCOUNT_EMAIL", | |||
| "SHOPWARE_ACCOUNT_PASSWORD": "YOUR_SHOPWARE_ACCOUNT_PASSWORD" | |||
| } | |||
| } | |||
| } | |||
| } | |||
| ``` | |||
|
|
|||
| or also simply | |||
| Check it's connecting successfully. Then you can prompt something like: | |||
|
|
|||
| ``` | |||
| Can you show me info about ABCDE-123456? | |||
| ``` No newline at end of file | |||
| Can you show me info about support ticket ABCDE-123456? | |||
| ``` | |||
There was a problem hiding this comment.
Check if we actually need that for an mcp. this seems quite agent/tool specific. follow best practices
Summary
start-plugin-fix,setup-environment,check-environment) that generated LLM prompt templates instead of interacting with the Shopware account APIget-support-tickettool to return raw ticket data without embedded LLM instructionsThe MCP was originally built for Cursor before tool calls existed, so it included tools that created prompts based on templates. This is not what an MCP should do — it should only provide the ability for AI to interact with the Shopware account API. Prompting is the responsibility of the AI client, not the MCP server.
Test plan
npm run build)npm test)npm run format)get-support-tickettool works correctly against the Shopware account API🤖 Generated with Claude Code