Vendure MCP Server
OfficialThe Vendure MCP Server enables programmatic interaction with your local Vendure project's CLI and configuration. It operates directly within your project context for intelligent tooling.
Key capabilities:
Project Modification: Add plugins, entities, services, API extensions (GraphQL), job queues, and Admin UI extensions to your project
Database Management: Generate, run, or revert database migrations
Project Analysis: Analyze project structure and list plugins, entities, and services
CLI Integration: Access and execute Vendure CLI commands programmatically
Dual Connectivity: Connect via STDIO (recommended for local clients) or HTTP (for networked clients)
Environment Verification: Check Vendure installation status and dependencies
Dynamic CLI Tooling: Automatically reflects CLI changes with type safety and correctness
The server provides context-aware operation, ensuring access to the correct dependencies and project context.
Enables cloning and working with the source code repository for development purposes.
Supports accessing and contributing to the MCP server's codebase through GitHub repository integration.
Allows installation and execution of the MCP server through npm, supporting both global and local installation patterns.
Provides full TypeScript integration with proper parameter validation, ensuring type safety for all MCP tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Vendure MCP Serveradd a new payment plugin to the project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
[!Caution] This MCP is outdated and not maintained anymore. DO NOT USE IT ANYMORE. Let your agents interact with the Vendure CLI directly.
Features
Project Integration: Operates directly within your Vendure project, providing context-aware tooling.
CLI Integration: Direct access to Vendure CLI
addandmigratecommands.Project Analysis: Analyze project structure, list plugins, entities, and services.
Dual Transport Support: Connect via standard I/O (STDIO) for local clients like Cursor or via HTTP for networked clients.
Environment Check: Verify Vendure installation and dependencies within the project.
Access to Docs: The MCP can fetch the official Vendure docs to use as context whenever it needs to.
Real-time: Works with any local Vendure project without modification.
Related MCP server: DevServer MCP
Dynamic CLI Integration
The server dynamically generates MCP tools from your project's installed Vendure CLI command definitions. This ensures:
Single Source of Truth: CLI changes automatically reflect in MCP tools.
Future-proof: New CLI commands and options become available automatically.
No Hallucinations: The code generated by the tools will always be correct, as it's based on the actual CLI definitions in your project.
Installation and Setup Workflow
To use the CLI command orchestration capabilities of the MCP. The target project should be running a version of the@vendure/cli package that is > 3.4.0 or later. Currently, this would be in our minor branch.
To change the version of your package, open the package.json of your project and change the "@vendure/cli" version to "minor", then delete your package-lock.json file and node_modules folder and run npm install.
The server is designed to be installed and run directly from your Vendure project. This ensures it always has access to the correct dependencies and project context.
Configure Your MCP Client (e.g., Cursor)
Create or update the mcp.json file used by your MCP client. This file is typically located at .cursor/mcp.json inside your project's root folder.
Below are configurations for both STDIO and HTTP connections.
You must restart your MCP client, e.g., Cursor IDE or Claude Code, to apply the changes.
Option 1: STDIO Connection (Recommended for Local Clients)
This is the simplest and most direct way to connect.
{
"mcpServers": {
"vendure-local-mcp": {
"command": "npx",
"args": ["@vendure/mcp-server@latest", "--projectPath", "/path/to/your/vendure-project"]
}
}
}You must replace/path/to/your/vendure-project with the absolute path to your Vendure project's root directory. The same path as your vendure-config.ts.
Option 2: HTTP Connection
If your client does not support STDIO or you need to connect over a network, you can run the server in HTTP mode.
First, start the server from your terminal in your Vendure project's root directory:
npx @vendure/mcp-server@latest --transport http --projectPath .This will start the server on the default port (8000), you can explicitly define the port by using the --port <0000> flag.
Then, configure your mcp.json to connect to the running server's URL:
{
"mcpServers": {
"vendure": {
"url": "http://localhost:8000/mcp"
}
}
}Option 3: Docker
This will start a Docker container and the server will run through in stdio mode. Refer to the Docker Guide for more information about running with Docker.
{
"mcpServers": {
"vendure-mcp-docker": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--env",
"PROJECT_PATH=/workspace",
"--volume",
"/absolute/path/to-your-vendure-project:/workspace",
"vendure/mcp:latest",
"--projectPath",
"/workspace"
]
}
}
}You must replace/path/to/your/vendure-project with the absolute path to your Vendure project's root directory. The same path as your vendure-config.ts.
Development
If you are contributing to the Vendure MCP server itself, you'll want to run it from the source code.
Build from Source
git clone https://github.com/vendure-ecommerce/mcp.git
cd vendure-mcp-server # Or the correct directory name
npm install
npm run buildDevelopment Mode
To connect an MCP client to your local development server, use the npm run dev script and point it to a test Vendure project. You can run it in either STDIO or HTTP mode.
STDIO Mode:
npm run dev -- --projectPath /path/to/your/test-vendure-projectHTTP Mode:
npm run dev:http -- --projectPath /path/to/your/test-vendure-project
Configure your mcp.json as described in the setup section to connect to your development server. The -- is required to pass arguments to the npm script correctly.
Trouble-shooting and issue reporting
If you run into problems while using/running the MCP, we would appreciate any issue with information that would help us reproduce your issue.
you can provide us withMCP Logs created by your MCP-Client.
In Cursor, you could find them by looking for Developer: Open Log File... > MCP Logs in your command palette (Shift+Cmd/Ctrl/Super+P) by default.
Links
Available Tools
7 toolsanalyze_project_structureC
Analyze the overall structure of a Vendure project including entities, services, and configuration
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Path to the Vendure project directory (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool analyzes structure but doesn't describe what 'analyze' entails—e.g., whether it performs read-only inspection, outputs a report, requires specific permissions, or has side effects. For a tool with no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It avoids redundancy and waste, though it could be slightly more structured by including usage hints. Overall, it's appropriately concise for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (analyzing project structure) and lack of annotations or output schema, the description is incomplete. It doesn't explain what the analysis returns (e.g., a summary, detailed breakdown, or error messages), behavioral traits, or how it differs from sibling tools. This leaves the agent with insufficient context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'projectPath' documented as 'Path to the Vendure project directory (required)'. The description adds no additional parameter semantics beyond this, such as format examples or constraints. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Analyze the overall structure of a Vendure project including entities, services, and configuration.' It specifies the verb ('analyze'), resource ('Vendure project'), and scope ('entities, services, and configuration'). However, it doesn't explicitly differentiate from sibling tools like 'check_vendure_installation' or 'list_plugins', which might overlap in analyzing aspects of a project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the project must be installed or configured), exclusions, or comparisons to sibling tools like 'list_plugins' or 'check_vendure_installation'. This leaves the agent without clear context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_vendure_installationA
Check if Vendure CLI is properly installed and what version is available in the project
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Path to the Vendure project directory (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does (check installation and version) but doesn't describe behavioral traits like what constitutes 'properly installed', whether this is a read-only operation, what happens if the CLI isn't installed, or what format the version information returns. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that clearly communicates the tool's purpose without unnecessary words. It's appropriately sized for a simple tool and front-loads the essential information. Every word earns its place in conveying the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate but has clear gaps. It explains what the tool does but doesn't provide enough context about what 'properly installed' means or what the output looks like. For a diagnostic tool with no output schema, the description should ideally provide more information about expected results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the single parameter 'projectPath' fully documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no parameter information in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('check if installed' and 'what version is available') and identifies the target resource ('Vendure CLI'). It distinguishes from sibling tools like 'analyze_project_structure' or 'list_commands' by focusing specifically on installation status and version checking rather than project analysis or command listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('in the project') but doesn't explicitly state when to use this tool versus alternatives like 'list_commands' for available commands or 'analyze_project_structure' for broader project assessment. No explicit exclusions or prerequisites are mentioned, leaving usage guidance at an implied level rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_commandsC
List all available Vendure CLI commands accessible via MCP
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Path to the Vendure project directory (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only states what the tool does ('List all available Vendure CLI commands'), but doesn't disclose any behavioral traits such as whether it's a read-only operation, what permissions are required, how results are formatted, or if there are any rate limits. For a tool with no annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no annotations and no output schema, the description should provide more context about what the tool returns and its behavioral characteristics. The description only covers the basic purpose, leaving gaps in understanding how to interpret results or what constraints might apply. For a tool with no structured metadata, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't mention any parameters, but the input schema has 100% description coverage (the 'projectPath' parameter is fully documented in the schema). According to the rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no parameter info in the description. The description doesn't add any semantic value beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List all available Vendure CLI commands accessible via MCP'. It specifies the verb ('List') and resource ('Vendure CLI commands'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'check_vendure_installation' or 'list_plugins', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are no explicit instructions on when/when-not to use it, nor does it mention any prerequisites or alternatives among the sibling tools. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pluginsC
List all plugins in the Vendure project by analyzing the project structure
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Path to the Vendure project directory (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool 'list all plugins' but doesn't disclose behavioral traits such as whether it's read-only, what format the output takes, if there are rate limits, or how it handles errors. The mention of 'analyzing the project structure' adds some context but is insufficient for a mutation or analysis tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose ('List all plugins in the Vendure project') and adds necessary context ('by analyzing the project structure'). There is zero waste, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (analysis-based listing), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'plugins' entail, the output format, or behavioral aspects like safety or performance. For a tool with no structured data support, this leaves significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'projectPath' well-documented in the schema as 'Path to the Vendure project directory (required)'. The description adds no additional meaning beyond this, such as examples or constraints, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and resource 'plugins in the Vendure project', with the specific method 'by analyzing the project structure'. It distinguishes from generic listing by specifying the analysis approach, though it doesn't explicitly differentiate from sibling tools like 'analyze_project_structure' or 'list_commands'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'analyze_project_structure' or 'list_commands'. It mentions the method ('analyzing the project structure') but doesn't specify prerequisites, exclusions, or comparative use cases with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vendure_addA
Add features to your Vendure project.
IMPORTANT USAGE PATTERNS:
For API Extension: Requires apiExtension="plugin-name", plus queryName OR mutationName, plus selectedService
For Entity: Requires entity="EntityName" and selectedPlugin="plugin-name"
For Service: Requires service="ServiceName" and selectedPlugin="plugin-name"
For Job Queue: Requires jobQueue="plugin-name", name="queue-name", and selectedService="service-name"
EXAMPLES:
Add API extension: {apiExtension: "my-plugin", queryName: "customProducts", selectedService: "ProductService"}
Add entity: {entity: "CustomProduct", selectedPlugin: "my-plugin"}
Add service: {service: "CustomService", selectedPlugin: "my-plugin"}
Create new plugin: {plugin: "MyNewPlugin"}
Use list_plugins tool first to see available plugin names.
| Name | Required | Description | Default |
|---|---|---|---|
| apiExtension | No | Add an API extension scaffold to the specified plugin. Provide the plugin name. Example: "my-plugin". Requires queryName or mutationName and selectedService. | |
| codegen | No | Add GraphQL codegen configuration to the specified plugin. Provide the plugin name. Example: "my-plugin" | |
| config | No | Specify the path to a custom Vendure config file. Example: "./custom-vendure-config.ts" | |
| customFields | No | Add custom fields support to the entity (boolean flag) | |
| entity | No | Add a new entity with the specified class name. Example: "Product" or "Customer". Requires selectedPlugin to be specified. | |
| jobQueue | No | Add job-queue support to the specified plugin. Provide the plugin name. Example: "my-plugin" | |
| mutationName | No | Name for the GraphQL mutation (used with apiExtension). Example: "createCustomOrder" or "updateSpecialPrice" | |
| name | No | Name for the job queue (required with jobQueue). Example: "email-queue" or "product-import-queue" | |
| plugin | No | Create a new plugin with the specified name. Example: "MyNewPlugin" | |
| projectPath | Yes | Path to the Vendure project directory (required) | |
| queryName | No | Name for the GraphQL query (used with apiExtension). Example: "customProducts" or "getSpecialOffers" | |
| selectedEntity | No | Name of the entity for entity service (automatically sets type to entity). Example: "Product" | |
| selectedPlugin | No | Name of the plugin to add the entity/service/api-extension to. Must be an existing plugin name. Example: "my-plugin" or "test-plugin" | |
| selectedService | No | Name of the service to add the job queue or API extension to. Must be an existing service. Example: "ProductService" | |
| service | No | Add a new service with the specified class name. Example: "ProductService" or "OrderService". Requires selectedPlugin to be specified. | |
| translatable | No | Make the entity translatable (boolean flag) | |
| type | No | Type of service: "basic" or "entity" (default: basic). Use "entity" when working with database entities. | |
| uiExtensions | No | Add Admin UI extensions setup to the specified plugin. Provide the plugin name. Example: "my-plugin" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior by outlining usage patterns and examples, indicating it's a mutation tool (adding features) with specific dependencies (e.g., requires existing plugins or services). However, it lacks details on permissions, error handling, or side effects, which are important for a mutation tool with 18 parameters. The guidance is helpful but not fully comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for usage patterns and examples, making it easy to scan. It's appropriately sized for a complex tool with 18 parameters, and every sentence adds value (e.g., the examples illustrate parameter combinations). However, the opening line 'Add features to your Vendure project' is somewhat vague, and the structure could be more front-loaded with a clearer summary before diving into details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (18 parameters, no annotations, no output schema), the description does a good job of providing context through usage patterns and examples. It compensates for the lack of annotations by explaining behavioral aspects like parameter dependencies. However, it doesn't cover return values or error scenarios, which are gaps for a mutation tool without an output schema. Overall, it's mostly complete but has minor omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all parameters are documented in the schema. The description adds value by grouping parameters into usage patterns (e.g., for API Extension: requires apiExtension, queryName OR mutationName, and selectedService), which clarifies interdependencies beyond individual parameter descriptions. However, it doesn't provide additional syntax or format details beyond what the schema offers, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Add features to your Vendure project,' which clearly states the tool's purpose with a specific verb ('Add') and resource ('features to your Vendure project'). It distinguishes from siblings like 'list_plugins' or 'check_vendure_installation' by focusing on feature addition rather than listing or validation. However, it doesn't explicitly differentiate from 'vendure_migrate' or 'vendure_add_help,' which slightly limits sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage patterns with clear when-to-use guidance: it lists specific parameter combinations for different use cases (API Extension, Entity, Service, Job Queue) and includes an example for creating a new plugin. It also advises to 'Use list_plugins tool first to see available plugin names,' offering a clear prerequisite and alternative tool reference. This covers when, when-not, and alternatives comprehensively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vendure_add_helpC
Get detailed guidance on how to use the vendure_add tool with correct parameter combinations
| Name | Required | Description | Default |
|---|---|---|---|
| operation | No | Specific operation to get help for, or "all" for complete guide |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the tool as providing 'detailed guidance,' which implies a read-only, informational function, but doesn't specify output format, potential errors, or any behavioral traits like response structure or limitations. For a tool with no annotations, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the tool's purpose without unnecessary words. It's front-loaded with the main action ('Get detailed guidance') and specifies the target tool, making it easy to parse. Every part of the sentence earns its place, resulting in optimal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's purpose (providing guidance), no output schema, and no annotations, the description is incomplete. It doesn't explain what the guidance output looks like (e.g., text, structured data), potential error cases, or how it integrates with the 'vendure_add' tool. For a help tool with these gaps, more context is needed to ensure the agent can use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'operation' parameter well-documented in the schema (including enum values and description). The description mentions 'parameter combinations' but doesn't add any meaningful semantics beyond what the schema provides, such as examples or context for choosing enum values. Since schema coverage is high, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get detailed guidance on how to use the vendure_add tool with correct parameter combinations.' It specifies the verb ('Get detailed guidance') and the resource ('vendure_add tool'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate itself from sibling tools like 'list_commands' or 'analyze_project_structure,' which might also provide guidance, so it doesn't reach a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions the 'vendure_add' tool, but doesn't explain scenarios where this help tool is preferred over directly using 'vendure_add' or other siblings like 'list_commands' for general command information. There's no mention of prerequisites, exclusions, or specific contexts, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vendure_migrateC
Generate, run or revert a database migration
| Name | Required | Description | Default |
|---|---|---|---|
| generate | No | Generate a new migration with the specified name | |
| outputDir | No | Output directory for generated migrations | |
| projectPath | Yes | Path to the Vendure project directory (required) | |
| revert | No | Revert the last migration | |
| run | No | Run pending migrations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions three operations (generate, run, revert) but doesn't disclose critical behavioral traits: whether these operations are destructive (e.g., reverting might delete data), require specific permissions, have side effects, or produce output. For a database migration tool with zero annotation coverage, this is a significant gap in safety and operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core functionality. Every word earns its place by listing the three key operations without redundancy. It's appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (database migrations with potential destructive operations), lack of annotations, and no output schema, the description is incomplete. It doesn't address safety concerns, output format, error handling, or dependencies. For a tool with such critical operations, more contextual information is needed to guide safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds no additional meaning beyond what the schema provides—it doesn't explain parameter interactions (e.g., mutually exclusive options like generate vs. run), default behaviors, or examples. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs (generate, run, revert) and resource (database migration). It distinguishes from siblings by focusing on migration operations rather than project analysis, installation checks, or plugin management. However, it doesn't explicitly differentiate from all siblings (e.g., vendure_add might also modify the database).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., when migrations are needed), exclusions (e.g., don't use during production), or relationships with sibling tools like vendure_add (which might also affect database schema). The agent must infer usage from the parameter options alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v1.0.0- First observed
analyze_project_structure - First observed
check_vendure_installation - First observed
list_commands - First observed
list_plugins - First observed
vendure_add - First observed
vendure_add_help - First observed
vendure_migrate
TDQS
Scored across 7 tools
Most tools have distinct purposes (analyzing structure, checking installation, listing items, adding features, migrating), but 'vendure_add' and 'vendure_add_help' are closely related—the help tool exists solely to explain the add tool, which could cause confusion. The 'list_commands' and 'list_plugins' tools might overlap slightly in listing functionality, but their specific scopes (CLI commands vs. project plugins) help differentiate them.
The naming is inconsistent with mixed conventions: 'analyze_project_structure', 'check_vendure_installation', 'list_commands', and 'list_plugins' follow a verb_noun pattern, but 'vendure_add' and 'vendure_migrate' use a noun_verb style, and 'vendure_add_help' is a hybrid. This lack of a uniform pattern makes the tool set less predictable and harder for agents to navigate.
With 7 tools, the count is reasonable for a server focused on Vendure project management. It covers key areas like analysis, installation checks, listing, adding features, and migrations, which aligns well with the domain. However, having a separate help tool for 'vendure_add' feels slightly redundant, slightly inflating the count.
The tool set covers analysis, installation, listing, and migrations, but there are notable gaps. For example, it lacks tools for updating or deleting plugins, entities, or services, which are common operations in a development lifecycle. The 'vendure_add' tool handles creation, but without complementary update/delete tools, agents may hit dead ends when managing project components.
Maintenance
Related MCP Connectors
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
- SupabaseOAuthcom.supabase
MCP server for interacting with the Supabase platform
MCP server for Boson Protocol — on-chain agentic commerce for physical & digital goods.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that publishes CLI tools on your machine for discoverability by LLMs5 npm1MIT
- AlicenseNot gradedqualityFmaintenanceAn MCP server that enables programmatic management and monitoring of development servers through a unified interface and interactive TUI. It provides tools for process control, log streaming, and experimental browser automation via Playwright.1MIT
- AlicenseNot gradedqualityBmaintenanceCLI-first MCP server for Composer-based Kirby CMS projects that enables IDE or agent to inspect blueprints, templates, plugins, docs, and interact with a real Kirby runtime.60MIT
- AlicenseNot gradedqualityCmaintenanceCreates and manages an MCP server integrated with build tools (Rollup, Vite, Webpack, etc.) to enable AI assistants to analyze, inspect, and control the build process.1,504 npm31MIT