Magento 2 MCP Server
Servidor MCP de Magento 2
Este es un servidor de Protocolo de contexto de modelo (MCP) que se conecta a una API REST de Magento 2, lo que permite a Claude y otros clientes de MCP consultar información de productos de una tienda Magento.
Características
Características del producto
Consultar información del producto por SKU o ID
Busque productos utilizando varios criterios
Obtener categorías de productos
Obtenga productos relacionados
Obtener información sobre el stock de productos
Obtener atributos del producto
Actualice los atributos del producto especificando el código y el valor del atributo
Búsqueda avanzada de productos con filtrado y clasificación
Características del cliente
Obtenga todos los productos pedidos para un cliente por dirección de correo electrónico
Funciones de pedidos e ingresos
Obtener el recuento de pedidos para rangos de fechas específicos
Obtenga ingresos para rangos de fechas específicos
Obtenga ingresos filtrados por país para rangos de fechas específicos
Obtenga estadísticas de ventas de productos, incluidas la cantidad vendida y los productos más vendidos.
Compatibilidad con expresiones de fecha relativa como "hoy", "ayer", "la semana pasada", "este mes", "YTD"
Soporte para filtrado de países utilizando códigos y nombres de países
Related MCP server: keycrm-mcp
Prerrequisitos
Node.js (v14 o superior)
Una instancia de Magento 2 con acceso a la API REST
Token API para la instancia de Magento 2
Instalación
Clonar este repositorio
Instalar dependencias:
npm installUso
Ejecutar el servidor directamente
node mcp-server.jsPruebas con el cliente de prueba
node test-mcp-server.jsUso con Claude Desktop
Comprueba tu nodo de ruta con
which nodeVaya a la configuración del desarrollador y haga clic en "Editar configuración". Se abrirá un archivo JSON.
Agregue el siguiente fragmento dentro de
mcpServers:
"magento2": {
"command": "/path/to/your/node",
"args": ["/path/to/mcp-server.js"],
"env": {
"MAGENTO_BASE_URL": "https://YOUR_DOMAIN/rest/V1",
"MAGENTO_API_TOKEN": "your-api-token"
}
}Reemplace
/path/to/your/nodecon la ruta que marcó en el paso 1Reemplace
/path/to/mcp-server.jscon la ruta donde clonó este repositorioPuede obtener un token API desde Sistema > Integraciones en el administrador de Magento
Reinicie Claude Desktop.
Ahora deberías poder hacerle preguntas a Claude sobre los productos en tu tienda Magento.
Herramientas disponibles
El servidor expone las siguientes herramientas:
Herramientas de producto
get_product_by_sku: Obtenga información detallada sobre un producto por su SKUsearch_products: busca productos utilizando los criterios de búsqueda de Magentoget_product_categories: Obtener categorías para un producto específico por SKUget_related_products: Obtener productos relacionados con un producto específico por SKUget_product_stock: Obtener información de stock de un producto por SKUget_product_attributes: Obtener todos los atributos de un producto por SKUget_product_by_id: Obtenga información detallada sobre un producto por su IDadvanced_product_search: Busque productos con opciones de filtrado avanzadasupdate_product_attribute: Actualizar un atributo específico de un producto por SKU
Herramientas para el cliente
get_customer_ordered_products_by_email: Obtener todos los productos pedidos por un cliente por dirección de correo electrónico
Herramientas de pedidos e ingresos
get_order_count: obtiene el número de pedidos para un rango de fechas determinadoget_revenue: obtiene los ingresos totales para un rango de fechas determinadoget_revenue_by_country: Obtener ingresos filtrados por país para un rango de fechas determinadoget_product_sales: Obtener estadísticas sobre la cantidad de productos vendidos en un rango de fechas determinado
Ejemplos de consultas para Claude
Una vez que el servidor MCP esté conectado a Claude Desktop, puede hacer preguntas como:
Consultas de productos
"¿Qué productos tenéis que sean camisetas?"
"Infórmeme sobre el producto con SKU SKU-xxx"
"¿A qué categorías pertenece el producto SKU-xxx?"
"¿Hay algún producto relacionado con SKU-SKU-xxx?"
"¿Cuál es el estado del stock del producto SKU-xxx?"
"Muéstrame todos los productos ordenados por precio"
Actualizar el precio del producto SKU-xxx a $49.99
"Cambiar la descripción del producto ABC-123 para describirlo como resistente al agua"
"Establecer el estado del producto XYZ-456 en 'habilitado'"
Consultas de clientes
"¿Qué productos ha pedido el cliente john.doe@example.com ?"
Muéstrame el historial de pedidos y productos del cliente con correo electrónico jane.smith@example.com
Consultas de pedidos e ingresos
"¿Cuántos pedidos tenemos hoy?"
"¿Cuál fue nuestro número de pedidos de la semana pasada?"
"¿Cuántos ingresos generamos ayer?"
"¿Cuáles fueron nuestros ingresos totales el mes pasado?"
¿Cuántos ingresos hemos obtenido en los Países Bajos este año hasta la fecha?
"¿Cuáles fueron nuestros ingresos en Alemania durante la última semana?"
Compare nuestros ingresos entre EE. UU. y Canadá este mes.
"¿Cuál es nuestro valor promedio de pedido para los pedidos completados este mes?"
¿Cuántos productos vendimos el mes pasado?
"¿Cuáles son nuestros productos más vendidos este año?"
"¿Cuál es el número promedio de productos por pedido?"
"¿Cuántas unidades del producto XYZ-123 vendimos en Alemania el último trimestre?"
"¿Qué productos generaron más ingresos en EE. UU. este mes?"
Desarrollo
Verificación del certificado SSL
Para fines de desarrollo, el servidor está configurado para omitir la verificación del certificado SSL. En un entorno de producción, se recomienda usar certificados SSL adecuados y eliminar la configuración httpsAgent de la función callMagentoApi .
Agregar nuevas herramientas
Para agregar nuevas herramientas, siga el patrón del código existente. Cada herramienta se define con:
Un nombre único
Una descripción
Parámetros de entrada con validación mediante Zod
Una función de controlador asíncrono que procesa la solicitud y devuelve una respuesta
Licencia
ISC
Available Tools
14 toolsadvanced_product_searchC
Search for products with advanced filtering options
| Name | Required | Description | Default |
|---|---|---|---|
| field | Yes | Field to search on (e.g., name, sku, price, status) | |
| value | Yes | Value to search for | |
| condition_type | No | Condition type (eq, like, gt, lt, etc.). Default: eq | |
| page_size | No | Number of results per page (default: 10) | |
| current_page | No | Page number (default: 1) | |
| sort_field | No | Field to sort by (default: entity_id) | |
| sort_direction | No | Sort direction (ASC or DESC, default: DESC) |
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 mentions 'advanced filtering options' but doesn't specify what makes them advanced (e.g., multiple filters, complex conditions). It doesn't describe pagination behavior, rate limits, authentication needs, or what happens when no results are found. For a search tool with 7 parameters, this is inadequate.
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. There's zero waste or redundancy—every word earns its place by conveying essential information about the tool's 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 complexity (7 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain return values, error conditions, or behavioral nuances like pagination limits. For an 'advanced' search tool, more context is needed to guide effective use beyond what the schema provides.
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 7 parameters thoroughly. The description adds no additional meaning beyond implying 'advanced filtering' (which the schema details with fields like 'condition_type'). Baseline 3 is appropriate when the schema does the heavy lifting, though the description doesn't compensate with higher-level context.
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 as 'Search for products with advanced filtering options', which includes a specific verb ('search') and resource ('products'). It distinguishes itself from the simpler 'search_products' sibling by emphasizing 'advanced filtering options', though it doesn't explicitly contrast with all siblings like 'get_product_by_id' or 'get_product_by_sku'.
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 when to prefer this over 'search_products' (which likely has basic filtering) or when to use simpler lookup tools like 'get_product_by_id' or 'get_product_by_sku'. There's no context about use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customer_ordered_products_by_emailC
Get all ordered products for a customer by email address
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The email address of the customer |
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 indicates this is a read operation ('Get'), but doesn't specify whether it requires authentication, has rate limits, returns paginated results, or what format the output takes. This leaves significant gaps for a tool that presumably queries customer data.
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 unnecessary words. It's appropriately sized for a simple lookup tool and front-loads the essential information.
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?
For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'ordered products' means in this context, whether it returns historical or current data, or what the response structure looks like. The agent would need to guess about important behavioral aspects.
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 schema description coverage is 100%, with the single parameter 'email' fully documented in the schema. The description adds no additional parameter information beyond what's already in the structured data, so it meets the baseline for adequate but not additive documentation.
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 action ('Get all ordered products') and target resource ('for a customer by email address'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from potential sibling tools that might also retrieve customer data, such as 'get_revenue' or 'get_order_count', which could overlap in purpose.
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 'get_order_count' or 'search_products', nor does it mention any prerequisites or exclusions. It simply states what the tool does without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_order_countC
Get the number of orders for a given date range
| Name | Required | Description | Default |
|---|---|---|---|
| date_range | Yes | Date range expression (e.g., 'today', 'yesterday', 'last week', 'this month', 'YTD', or a specific date range like '2023-01-01 to 2023-01-31') | |
| status | No | Filter by order status (e.g., 'processing', 'complete', 'pending') |
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 'Get[s] the number of orders', implying a read-only operation, but doesn't cover aspects like authentication requirements, rate limits, error handling, or output format. This is a significant gap for a tool with no annotation coverage.
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 unnecessary words. It's front-loaded and every part of the sentence contributes to understanding the tool's function, making it highly concise and well-structured.
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 no annotations, no output schema, and a read operation with two parameters, the description is incomplete. It lacks information on behavioral traits (e.g., authentication, rate limits), output format, and usage guidelines relative to siblings. This makes it inadequate for an agent to fully understand how to invoke and interpret results from this tool.
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 schema description coverage is 100%, with clear descriptions for both parameters (date_range and status). The description adds no additional parameter semantics beyond what the schema provides, such as examples or constraints. Baseline 3 is appropriate since the schema adequately documents the parameters.
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 a specific verb ('Get') and resource ('number of orders'), and specifies the scope ('for a given date range'). However, it doesn't differentiate from sibling tools like 'get_revenue' or 'get_product_sales', which might also operate on date ranges, leaving some ambiguity about when to choose this specific tool.
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 sibling tools like 'get_revenue' or 'get_product_sales', nor does it specify prerequisites, exclusions, or contextual cues for selection. Usage is implied only by the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_attributesC
Get all attributes for a product by SKU
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | The SKU (Stock Keeping Unit) of the product |
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 implies a read operation ('Get') but doesn't disclose behavioral traits such as authentication needs, rate limits, error handling, or what 'all attributes' entails (e.g., format, data types). This is a significant gap for a tool with no annotation coverage.
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 with zero waste, front-loading the core action and resource. It's appropriately sized for a simple tool, earning full marks for 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 no annotations, no output schema, and multiple sibling tools, the description is incomplete. It lacks details on return values, error cases, and usage context, making it inadequate for an agent to confidently invoke this tool without additional assumptions.
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 adds minimal meaning beyond the input schema, which has 100% coverage and documents the 'sku' parameter well. It clarifies that attributes are retrieved 'by SKU', but this is redundant with the schema. Baseline 3 is appropriate as 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 ('Get') and resource ('all attributes for a product'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_product_by_sku' or 'update_product_attribute', which could handle similar product data, so it misses the highest 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. With siblings like 'get_product_by_sku' and 'search_products' available, there's no indication of context, prerequisites, or exclusions, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_by_idB
Get detailed information about a product by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the product |
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 it's a read operation ('Get'), but doesn't disclose behavioral traits such as error handling (e.g., what happens if the ID doesn't exist), authentication needs, rate limits, or response format. 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 without unnecessary words. Every part ('Get detailed information', 'about a product', 'by its ID') contributes essential information, making it appropriately sized and structured.
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 no annotations, no output schema, and a simple input schema, the description is incomplete. It doesn't explain what 'detailed information' includes in the response, error conditions, or other behavioral aspects. For a tool that likely returns complex product data, more context is needed to guide the agent 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 schema description coverage is 100%, with the parameter 'id' fully documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., no examples or constraints on ID format). Baseline 3 is appropriate as the schema handles parameter documentation adequately.
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 action ('Get detailed information') and target resource ('about a product'), with the specific mechanism 'by its ID'. It distinguishes from siblings like 'get_product_by_sku' (which uses SKU) and 'search_products' (which is broader). However, it doesn't specify what 'detailed information' includes, which could be more precise.
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 when you have a product ID and need detailed info, distinguishing it from siblings that use other identifiers (e.g., SKU) or perform searches. However, it lacks explicit guidance on when to use this versus alternatives like 'get_product_attributes' or 'get_related_products', and no exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_by_skuC
Get detailed information about a product by its SKU
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | The SKU (Stock Keeping Unit) of the product |
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 retrieves 'detailed information' but doesn't specify what that includes, whether it's a read-only operation, error handling for invalid SKUs, or performance characteristics. This is a significant gap for a tool with no annotation coverage.
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 unnecessary words. It's appropriately sized and front-loaded, with every part contributing to clarity.
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 (simple lookup), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'detailed information' includes, how errors are handled, or the return format. For a tool with no structured output documentation, this leaves significant gaps.
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 schema description coverage is 100%, with the single parameter 'sku' fully documented in the schema. The description adds minimal value by mentioning 'SKU' in context, but doesn't provide additional semantics beyond what the schema already states. Baseline 3 is appropriate when 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 a specific verb ('Get') and resource ('detailed information about a product'), and identifies the key input ('by its SKU'). It distinguishes from some siblings like 'get_product_by_id' by specifying the lookup method, though it doesn't explicitly differentiate from all similar tools like 'get_product_attributes'.
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 when to prefer this over 'get_product_by_id', 'get_product_attributes', or 'search_products', nor does it specify prerequisites like needing a valid SKU. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_categoriesC
Get categories for a specific product by SKU
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | The SKU (Stock Keeping Unit) of the product |
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 retrieves categories but doesn't specify if it's a read-only operation, what permissions are required, how errors are handled, or the format of the returned data. This is a significant gap for a tool with no annotation coverage.
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 front-loaded and appropriately sized for its simple function, earning a top score for 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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'categories' entail, how they are structured, or any behavioral aspects like error handling. For a tool with no structured support, more detail is needed to guide the agent 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 'sku' parameter clearly documented. The description adds no additional semantic context beyond implying the SKU is used to fetch categories, so it meets the baseline of 3 where the schema does the heavy lifting without extra value from 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 action ('Get categories') and resource ('for a specific product by SKU'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'get_product_by_sku' or 'get_product_attributes', which might also retrieve product-related information, so it doesn't achieve full distinction.
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, such as needing a valid SKU, or compare it to siblings like 'get_product_by_sku' or 'get_product_attributes' that might overlap in functionality, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_salesB
Get statistics about the quantity of products sold in a given date range
| Name | Required | Description | Default |
|---|---|---|---|
| date_range | Yes | Date range expression (e.g., 'today', 'yesterday', 'last week', 'this month', 'YTD', or a specific date range like '2023-01-01 to 2023-01-31') | |
| status | No | Filter by order status (e.g., 'processing', 'complete', 'pending') | |
| country | No | Filter by country code (e.g., 'US', 'NL', 'GB') or country name (e.g., 'United States', 'The Netherlands', 'United Kingdom') |
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 getting statistics but doesn't disclose behavioral traits like whether this is a read-only operation, if it requires authentication, rate limits, pagination, or what format the statistics are returned in. 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 unnecessary words. It's appropriately sized and front-loaded with 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 has no annotations and no output schema, the description is incomplete. It doesn't explain what the statistics output looks like (e.g., aggregated totals, time-series data) or behavioral aspects. However, the purpose is clear and parameters are well-documented in the schema, making it minimally adequate.
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 schema description coverage is 100%, with clear descriptions for all three parameters (date_range, status, country). The description adds no additional parameter semantics beyond what's in the schema, 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 tool's purpose: 'Get statistics about the quantity of products sold in a given date range.' It specifies the verb ('Get statistics') and resource ('quantity of products sold'), but doesn't explicitly distinguish it from sibling tools like 'get_revenue' or 'get_order_count' which might provide different metrics.
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 sibling tools like 'get_revenue' (which might focus on monetary metrics) or 'get_order_count' (which might count orders rather than product quantities), leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_stockC
Get stock information for a product by SKU
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | The SKU (Stock Keeping Unit) of the product |
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 states the action but fails to mention critical details like whether this is a read-only operation, potential rate limits, authentication requirements, or the format of the returned stock information. This leaves significant gaps in understanding the tool's 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, direct sentence that efficiently conveys the core purpose without any unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured for quick comprehension.
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 lack of annotations and output schema, the description is incomplete for effective tool use. It does not cover behavioral aspects like safety, performance, or return values, which are crucial for an AI agent to invoke the tool correctly in a real-world context.
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, clearly documenting the 'sku' parameter. The description adds no additional semantic context beyond what the schema provides, such as examples or constraints, so it meets the baseline score without enhancing parameter understanding.
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 ('Get') and resource ('stock information for a product by SKU'), making the purpose immediately understandable. However, it does not explicitly differentiate from sibling tools like 'get_product_by_sku', which might retrieve broader product details rather than just stock information, leaving room for ambiguity.
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 such as 'get_product_by_sku' or 'search_products', nor does it mention any prerequisites or exclusions. This lack of context could lead to incorrect tool selection by an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_revenueB
Get the total revenue for a given date range
| Name | Required | Description | Default |
|---|---|---|---|
| date_range | Yes | Date range expression (e.g., 'today', 'yesterday', 'last week', 'this month', 'YTD', or a specific date range like '2023-01-01 to 2023-01-31') | |
| status | No | Filter by order status (e.g., 'processing', 'complete', 'pending') | |
| include_tax | No | Whether to include tax in the revenue calculation (default: true) |
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. While 'Get' implies a read-only operation, the description doesn't mention whether this requires specific permissions, how results are formatted, if there are rate limits, or what happens with invalid date ranges. For a revenue calculation tool with zero annotation coverage, this is insufficient.
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 states the core purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information.
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?
For a revenue calculation tool with 3 parameters, 100% schema coverage, and no output schema, the description is minimally adequate. It states what the tool does but lacks behavioral context (permissions, rate limits, result format) and usage guidance relative to siblings. The absence of annotations and output schema means the description should do more to compensate.
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 three parameters thoroughly. The description mentions 'date range' which aligns with the required parameter but adds no additional semantic context beyond what the schema provides. The baseline score of 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 a specific verb ('Get') and resource ('total revenue'), and specifies the scope ('for a given date range'). However, it doesn't differentiate from sibling tools like 'get_revenue_by_country', which suggests this tool provides overall revenue rather than country-specific breakdowns.
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 'get_revenue_by_country' or 'get_product_sales'. It mentions a date range but doesn't specify when this tool is preferred over other revenue-related tools or when it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_revenue_by_countryC
Get revenue filtered by country for a given date range
| Name | Required | Description | Default |
|---|---|---|---|
| date_range | Yes | Date range expression (e.g., 'today', 'yesterday', 'last week', 'this month', 'YTD', or a specific date range like '2023-01-01 to 2023-01-31') | |
| country | Yes | Country code (e.g., 'US', 'NL', 'GB') or country name (e.g., 'United States', 'The Netherlands', 'United Kingdom') | |
| status | No | Filter by order status (e.g., 'processing', 'complete', 'pending') | |
| include_tax | No | Whether to include tax in the revenue calculation (default: true) |
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 mentions filtering but doesn't describe what the tool returns (e.g., revenue amount, breakdown), whether it's read-only, performance characteristics, or error conditions. For a revenue query tool, this leaves significant behavioral gaps.
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 states the tool's core functionality. There's no wasted language, and it's appropriately front-loaded with the essential information.
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?
For a revenue query tool with 4 parameters and no output schema, the description is insufficient. It doesn't explain what format the revenue data returns (e.g., numeric value, structured object), doesn't mention aggregation level, and provides no context about data freshness or limitations.
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 schema description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema, meeting the baseline expectation but not providing extra value.
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 a specific verb ('Get') and resource ('revenue'), and specifies filtering by country and date range. However, it doesn't distinguish this tool from its sibling 'get_revenue' (which presumably doesn't filter by country), missing full 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 no guidance on when to use this tool versus alternatives like 'get_revenue' or other revenue-related tools. It states what the tool does but offers no context about appropriate use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsC
Search for products using Magento search criteria
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (product name, description, etc.) | |
| page_size | No | Number of results per page (default: 10) | |
| current_page | No | Page number (default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits like pagination behavior, rate limits, authentication needs, or what 'Magento search criteria' specifically means. It lacks details on return format, error handling, or performance characteristics, which are critical for a search 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 with no wasted words, making it front-loaded and easy to parse. However, it could be more structured by explicitly mentioning key aspects like pagination or sibling differentiation, but it's appropriately sized for its content.
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 (search with pagination), lack of annotations, and no output schema, the description is incomplete. It doesn't explain return values, error cases, or how 'Magento search criteria' works, leaving gaps that could hinder an AI agent's ability to use the tool 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?
Schema description coverage is 100%, so the input schema fully documents parameters (query, page_size, current_page). The description adds no additional meaning beyond implying 'Magento search criteria' might relate to the query parameter, but this is minimal. Baseline 3 is appropriate as 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 'Search for products using Magento search criteria' clearly states the action (search) and resource (products), but it's vague about scope and doesn't differentiate from sibling tools like 'advanced_product_search' or 'get_product_by_id'. It specifies the platform (Magento) but lacks detail on what 'search criteria' entails.
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?
No explicit guidance is provided on when to use this tool versus alternatives such as 'advanced_product_search' or 'get_product_by_id'. The description implies a general search function but doesn't clarify use cases, exclusions, or prerequisites, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_product_attributeC
Update a specific attribute of a product by SKU
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | The SKU (Stock Keeping Unit) of the product | |
| attribute_code | Yes | The code of the attribute to update (e.g., name, price, description, status, etc.) | |
| value | No | The new value for the attribute |
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. While 'Update' implies a mutation operation, the description doesn't disclose critical behavioral traits such as whether this requires specific permissions, whether changes are reversible, what happens if the SKU doesn't exist, or any rate limits. For a mutation tool with zero annotation coverage, this represents 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 directly states the tool's purpose without any unnecessary words. It's appropriately sized and front-loaded, with every word earning its place. This represents optimal conciseness for a basic tool description.
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 this is a mutation tool with no annotations, no output schema, and multiple sibling tools, the description is incomplete. It doesn't address behavioral aspects like error conditions, authentication requirements, or how it differs from other product-related tools. The description provides only the basic purpose without the contextual information needed for an agent to use it effectively in a broader system.
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 schema description coverage is 100%, with all three parameters (sku, attribute_code, value) having clear descriptions in the schema. The description adds no additional semantic information beyond what's already documented in the schema. According to the scoring rules, when schema coverage is high (>80%), the baseline score is 3 even without 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 action ('Update') and resource ('a specific attribute of a product by SKU'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling tools that might also modify product data, such as if there were a 'bulk_update_product_attributes' tool. The description is specific but lacks 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 no guidance on when to use this tool versus alternatives. With sibling tools like 'get_product_by_sku' and 'search_products', there's no indication whether this tool should be used for single attribute updates versus broader modifications, or what prerequisites might exist (e.g., authentication needs, product existence). The description simply states what it does without contextual usage information.
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.
14 tool updates
v1.0.0- Added
advanced_product_search - Added
get_customer_ordered_products_by_email - Added
get_order_count - Added
get_product_attributes - Added
get_product_by_id - Added
get_product_by_sku - Added
get_product_categories - Added
get_product_sales - Added
get_product_stock - Added
get_related_products - Added
get_revenue - Added
get_revenue_by_country - Added
search_products - Added
update_product_attribute
TDQS
Scored across 14 tools
Most tools have distinct purposes focused on specific data retrieval or updates, but there is some overlap between 'advanced_product_search' and 'search_products' which could cause confusion as both search for products. The other tools are clearly differentiated by their target resources (products, orders, customers, revenue) and actions.
All tool names follow a consistent verb_noun pattern using snake_case, with verbs like 'get', 'search', and 'update' clearly indicating actions. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.
With 14 tools, the server is well-scoped for a Magento 2 e-commerce platform, covering key areas like products, orders, customers, and revenue. Each tool serves a specific purpose without bloat, making the count appropriate for the domain's complexity.
The tool set provides strong coverage for data retrieval and some updates in the e-commerce domain, including product details, sales, and revenue. However, there are minor gaps such as the lack of tools for creating or deleting products or orders, which agents might need to work around for full CRUD operations.
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to Adobe Commerce data from Claude Desktop through CData JDBC Drivers. Free (beta) read/write servers available at https://www.cdata.com/solutions/mcpMIT
- FlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that lets Claude manage keyCRM catalogue, stock, orders, customers, pipelines, and more via natural language.3-
- FlicenseNot gradedqualityBmaintenanceFreento MCP is a native Magento 2 extension that implements the Model Context Protocol (MCP) — an open standard for connecting AI assistants to external data sources. This server acts as a secure, direct bridge between your Adobe Commerce / Magento 2 store and LLM-powered assistants (like Claude, ChatGPT, and others), allowing you to manage and audit your store using natural language.16-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides AI assistants with safe, structured access to Magento 2 operations within Warden environments.10 npm3MIT