MCP (Model Context Protocol) server for Magento 2 — gives AI agents (Claude, Gemini, ChatGPT, custom assistants) live, structured, rate-limited access to your catalog: product search, product cards, categories, and store info. Read-only by default, no scraping required.
Four well-named, read-only catalog tools with comprehensive descriptions (194 - 392 chars each) and complete JSON Schema input definitions. All parameters are typed and described. Tool annotations (readOnlyHint) are properly implemented via ToolAnnotationsInterface. Output schemas are documented in descriptions but not formally specified in a separate schema block. Error handling guidance is present in descriptions but not structured as recovery patterns. Naming follows verb_noun convention (search_products, get_product, list_categories, get_store_info). No security issues detected, all tools are read-only and accept no credentials.
Get the full product card for one sku in this store: description, current price and stock, canonical URL, the storefront attributes the merchant filled in, and — for configurable products — the purchasable variants with their option values. Requires an exact sku, so call search_products first when only a description of the item is known. The price it returns is the one the shopper is charged. The attributes block is what this merchant maintains, not a full specification: an attribute missing from it is unrecorded in the catalog, which is not the same as the product lacking that feature. Report it as not listed rather than as absent, and never infer one from an image filename or a similar product.
Get this store's identity and policies: name, currency, locale, countries it ships to, and links to its machine-readable surfaces (llms.txt, UCP profile). Takes no arguments. Use this for questions about the merchant — where they ship, what currency prices are in — rather than about individual products.
List this store's active category tree with names, URLs and product counts, to a bounded depth. A count is the products search_products returns for that category, subcategories included where the store rolls them up. Returns id values that are the category_id argument for search_products. Use this to see what the store stocks, or to narrow a vague request before searching. Products often sit deeper than the default depth: a zero count on a category with children means look inside it, not that the store has nothing.
Search this store's product catalog by keyword, with optional category, price range, pagination and sorting. Use this when no sku is known yet. Each result is an abridged record: sku, name, type, current price, stock status, and canonical URL and image where the product has them. Prices are in the store's display currency. Results carry no attributes, no full description and no variants — the response lists what it leaves out in omitted_fields. Call get_product with a sku before stating a colour, size, material, capacity or any other characteristic of a product; a field absent from a result is absent from the result, not from the product. Put a stated category, price floor or ceiling in the matching argument rather than in query.
Output schemas not formally documented. Descriptions mention omitted_fields and response structure, but no JSON Schema is provided for tool results. LLMs cannot reliably parse or chain results without explicit output schema.
Error handling lacks structured recovery guidance. Descriptions mention 'call get_product with a sku' but do not formalize error cases (e.g., 'product not found', 'invalid category_id') with actionable next steps.
Pagination guidance incomplete. search_products accepts page/page_size but description does not explicitly state the default page_size or maximum, forcing LLMs to infer from schema constraints alone.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2025-06-18+ | v2 |
Tool composition assumes LLM knows to call search_products before get_product. While documented, no explicit 'prerequisite' or 'discovery' annotation guides multi-step planning.
get_store_info takes no arguments but description does not explain when to call it relative to product tools. Agents may not recognize it as a discovery tool for store metadata.