Magento 2 MCP Server
Magento 2 MCP サーバー
これは、Magento 2 REST API に接続するモデル コンテキスト プロトコル (MCP) サーバーであり、Claude や他の MCP クライアントが Magento ストアから製品情報を照会できるようにします。
特徴
製品の特徴
SKUまたはIDで製品情報を照会する
さまざまな条件で製品を検索する
製品カテゴリを取得する
関連商品を入手する
製品在庫情報を取得する
製品属性を取得する
属性コードと値を指定して製品属性を更新します
フィルタリングと並べ替えによる高度な製品検索
顧客の特徴
顧客の注文したすべての商品をメールアドレスで取得する
注文と収益機能
特定の日付範囲の注文数を取得する
特定の日付範囲の収益を取得する
特定の日付範囲で国別にフィルタリングされた収益を取得します
販売数量や売れ筋商品などの商品販売統計を取得します
「今日」、「昨日」、「先週」、「今月」、「YTD」などの相対的な日付表現のサポート
国コードと国名の両方を使用した国フィルタリングのサポート
Related MCP server: keycrm-mcp
前提条件
Node.js (v14以上)
REST APIアクセスを備えたMagento 2インスタンス
Magento 2インスタンスのAPIトークン
インストール
このリポジトリをクローンする
依存関係をインストールします:
npm install使用法
サーバーを直接実行する
node mcp-server.jsテストクライアントによるテスト
node test-mcp-server.jsClaude Desktopでの使用
パスノードを
which nodeで確認するか開発者設定に移動し、「設定を編集」をクリックします。JSONファイルが開きます。
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"
}
}/path/to/your/node手順 1 で確認したパスに置き換えます。/path/to/mcp-server.js、このリポジトリをクローンしたパスに置き換えます。Magento管理画面の「システム」>「統合」からAPIトークンを取得できます。
Claude Desktop を再起動します。
これで、Magento ストア内の製品について Claude に質問できるようになります。
利用可能なツール
サーバーは次のツールを公開します。
製品ツール
get_product_by_sku: SKU別に製品の詳細情報を取得するsearch_products: Magentoの検索条件を使用して製品を検索するget_product_categories: SKU で特定の商品のカテゴリを取得しますget_related_products: SKUで特定の商品に関連する商品を取得するget_product_stock: SKU別に商品の在庫情報を取得するget_product_attributes: SKU別に製品のすべての属性を取得するget_product_by_id: IDで製品の詳細情報を取得しますadvanced_product_search: 高度なフィルタリングオプションを使用して製品を検索しますupdate_product_attribute: SKU別に商品の特定の属性を更新する
顧客ツール
get_customer_ordered_products_by_email: 顧客の注文したすべての商品をメールアドレスで取得する
注文と収益ツール
get_order_count: 指定された日付範囲の注文数を取得するget_revenue: 指定された日付範囲の合計収益を取得しますget_revenue_by_country: 指定した日付範囲の国別にフィルタリングした収益を取得します。get_product_sales: 指定された日付範囲で販売された製品の数量に関する統計を取得します。
クロードのクエリ例
MCP サーバーが Claude Desktop に接続されると、次のような質問をすることができます。
製品に関する問い合わせ
「シャツにはどんな商品がありますか?」
「SKU SKU-xxxの製品について教えてください」
「製品 SKU-xxx はどのカテゴリに属しますか?」
「SKU-SKU-xxxに関連する商品はありますか?」
「商品SKU-xxxの在庫状況はどうですか?」
「価格順にすべての商品を表示」
「製品SKU-xxxの価格を49.99ドルに更新します」
「商品 ABC-123 の説明を、耐水性と変更してください」
「製品XYZ-456のステータスを「有効」に設定する」
顧客からの問い合わせ
「顧客john.doe@example.com はどのような製品を注文しましたか?」
「メールアドレスjane.smith@example.comの顧客の注文履歴と商品を表示してください」
注文と収益のクエリ
「今日の注文は何件ですか?」
「先週の注文数はどれくらいですか?」
「昨日はどれくらいの収益を上げましたか?」
「先月の総収益はいくらでしたか?」
「今年これまでにオランダでどれだけの収益を上げましたか?」
「先週のドイツでの収益はいくらですか?」
「今月の米国とカナダの収益を比較してください」
「今月完了した注文の平均注文額はいくらですか?」
「先月は商品をいくつ販売しましたか?」
「今年最も売れた商品は何ですか?」
「1 回の注文あたりの平均商品数はどれくらいですか?」
「前四半期にドイツでXYZ-123製品を何ユニット販売しましたか?」
「今月、米国で最も収益を生み出した製品はどれですか?」
発達
SSL証明書の検証
開発目的では、サーバーはSSL証明書の検証をバイパスするように設定されています。本番環境では、適切なSSL証明書を使用し、 callMagentoApi関数からhttpsAgent設定を削除する必要があります。
新しいツールの追加
新しいツールを追加するには、既存のコードのパターンに従ってください。各ツールは次のように定義されています。
ユニークな名前
説明
Zodを使用した検証による入力パラメータ
リクエストを処理してレスポンスを返す非同期ハンドラ関数
ライセンス
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