Skip to main content
Glama

Shop health audit

shop_audit
Read-onlyIdempotent

Run a read-only, one-shot Shopware health check that returns prioritized findings on orders, stock, promotions, legal pages, scheduled tasks, and EU compliance gaps.

Instructions

Run a one-shot health check across the shop and return prioritised findings: paid orders not shipped, old unpaid orders, shipped orders never completed, out-of-stock and low-stock products, products without cover image, delivery time or sales channel visibility, expired promotions still active, promotions in the next 14 days that will not work, sales channels in maintenance mode, storefronts missing legal pages (imprint, terms, privacy, revocation, shipping), reviews awaiting moderation, scheduled tasks overdue or failed, and extensions with pending updates. Each finding has a severity, total count, sample items and a hint. Also reports which EU duties (e-invoicing, accessibility, packaging reporting, AI labelling) appear to be covered by an installed extension, guessed from extension names, and whether Shopware itself is set up for ZUGFeRD e-invoices. The shop's own rules (Shopware filters, e.g. 'active products without a manufacturer') run too: pass them as rules, or point SHOPWARE_MCP_RULES at a JSON file. Ready-made packs check product data for the GPSR, the accessibility act and shopping feeds (rulePacks). Start here when asked 'is everything okay with the shop?'. Read-only. Returns one object.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "shop_audit"
  }
}

Input Schema

NameRequiredDescriptionDefault
rulesNoThe shop's own checks: { id, title, severity, entity, filter[], hint }, the filter in Shopware criteria. Default: the rules in SHOPWARE_MCP_RULES, if set
maxItemsNoSample items per finding
timeZoneNoIANA time zone of the shop for the order-silence check; default: the server's
rulePacksNoReady-made rules: gpsr (manufacturer data, EU product safety), eaa (alt texts and descriptions, accessibility), feeds (GTIN, MPN, weight for shopping feeds and AI agents)
forecastDaysNoFlag products whose stock lasts fewer days than this at the recent sales pace
stuckOrderDaysNo
complianceChecksNoInclude the EU duty coverage map. Set false outside the EU.
lowStockThresholdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.11.1

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false), yet the description adds genuinely new behaviour: the finding payload shape (severity, total count, sample items, hint), that the return is one object, the SHOPWARE_MCP_RULES environment-variable fallback, and an honest caveat that EU-duty coverage is 'guessed from extension names' — an important accuracy signal for downstream trust. It doesn't state cost/latency expectations for a tool that clearly scans many entities, which is why it isn't a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose followed by the finding catalogue, then usage, rules, and the 'Read-only. Returns one object.' closer — a sensible order. The single enumerative sentence is very long and could have been a scannable list, but nearly every clause names a distinct check that helps an agent decide whether to call it, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, no-required-arg, high-complexity tool with no output schema, it does the hard work: it describes the return shape, the default rules source, the rule-pack semantics and the compliance toggle. The residual gap is guidance on interpreting results (what severity levels imply, whether findings are truncated) and the two undocumented thresholds.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Beyond the 75%-covered schema, it explains that shop-specific checks are 'Shopware filters' supplied as rules or via SHOPWARE_MCP_RULES, and it unpacks what each rulePack value is for ('gpsr (manufacturer data, EU product safety)', 'eaa (alt texts…)', 'feeds (GTIN, MPN, weight…)') — real semantic value the schema does not carry. However, stuckOrderDays and lowStockThreshold are undocumented in both schema and description, leaving part of the gap unclosed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('one-shot health check across the shop') and then enumerates the exact finding classes it produces (unshipped paid orders, out-of-stock products, expired promotions, missing legal pages, etc.), which makes its scope unmistakable. The only gap is that it never names near-neighbour siblings such as shop_diagnose, shop_pulse or agent_readiness, so an agent must infer the boundary from the finding catalogue rather than from an explicit exclusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Start here when asked 'is everything okay with the shop?'" gives a clear entry-point trigger, and "Set false outside the EU" gives conditional guidance for the compliance block. It stops short of stating when NOT to use it (e.g. for a single deep domain, use shop_diagnose or stock_forecast instead), so the routing is suggestive rather than complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.