Skip to main content
Glama
PO-VINCENT
by PO-VINCENT

CatalogReady

Can AI shopping agents actually read your product page?

CatalogReady is the open-source Lighthouse for AI shopping. Point it at a product page and get a transparent 0–100 readiness score, the exact product data machines can and cannot read, unsupported marketing claims, and paste-ready fixes.

Offline · deterministic rules · no API key · never writes to your store.

Install the Chrome extension

CatalogReady — AI Readiness Score is now available in the Chrome Web Store. Audit any product page in one click, compare platform-specific readiness scores, inspect every deduction, and get actionable fixes.

Add CatalogReady to Chrome →

CatalogReady — AI Readiness Score installed in Chrome

Related MCP server: aeo-mcp

The benchmark result

40 of 50 real product pages (80%) were not ready for AI shopping agents — even though every page was reachable and auditable.

The benchmark covers 50 different domains across fashion, electronics, home, beauty, and grocery. It uses one GET per page and the same deterministic audit as the CLI: no model, no synthetic data, and no points for generated fixes. See every score and the methodology →

Benchmark earns trust. The case makes it memorable. The scorecard makes it shareable.

A real skincare contrast: CeraVe Intensive Moisturizing Cream scored 16/100 with 4 high-severity findings. Another mainstream skincare page — The Ordinary Niacinamide 10% + Zinc 1% — scored 91/100 with no high-severity findings: a 75-point gap in machine-readable product identity and evidence.

CatalogReady benchmark: CeraVe scored 16 while The Ordinary scored 91

Reproduce the full 50-page benchmark:

uv run python scripts/benchmark.py benchmark/urls.txt benchmark/BENCHMARK.md

The benchmark measures fetched static HTML, not product quality, popularity, or observed ranking in an AI answer.

See it in action

Audit a live product page from the CatalogReady browser extension, compare the platform-specific readiness scores, inspect every deduction, and generate evidence-backed fixes without writing to the storefront.

CatalogReady auditing a live retail product page

uvx --from catalogready-ai catalogready https://your-store.com/products/example
  Waterproof Commuter Shoe – Blue

  CatalogReady Score: 82/100 (ready)

  Product identity      16/20
  Offer completeness    20/20
  Structured data       20/20
  Decision evidence     14/15
  Media & variants       2/15
  Claim grounding       10/10

  0 critical · 2 recommended · 0 minor findings
  Full report: catalogready-report.html

The HTML report is a single self-contained file: score dial, per-pillar breakdown, every finding with a stable rule ID, the questions only the merchant can answer, a recommended Product JSON-LD block built strictly from evidence found on the page, and a downloadable PNG score card.

Why this exists

ChatGPT shopping, Google AI results, and Perplexity buy-flows read product pages with machines, not eyes. A page can look perfect to humans while being invisible or untrustworthy to an AI shopping agent: missing stable IDs, incomplete offers, absent Product JSON-LD, and marketing claims with no supporting evidence.

CatalogReady checks what the machines check — deterministically, locally, and with a score that survives scrutiny:

  • Only your page earns points. Nothing CatalogReady generates contributes to the score.

  • Blocking defects cap the score. Duplicate IDs, incomplete offers, missing structured data, or an unsupported high-risk claim hard-cap the number, no matter how complete everything else is.

  • Every finding cites evidence and carries a rule ID you can grep for. docs/RULES.md documents every rule with its source — Google's merchant-listing requirements, OpenAI's Agentic Commerce feed spec, Bing's Copilot grounding guidelines, and the published crawler documentation of OpenAI, Perplexity, and Anthropic.

See docs/scoring-methodology.md for the full rubric and caps.

Quick start with ChatGPT, Claude, Gemini, or DeepSeek

Use CatalogReady with the chat app you already have open — no plugin, no account linking, no API key. The tool computes the real score; your chatbot explains it and plans the fixes.

Step 1 — install uv (once, skip if you have it):

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Step 2 — audit your product page (one command, replace the URL):

uvx --from catalogready-ai catalogready audit https://your-store.com/products/example --json > audit.json

This writes audit.json (the full result) and catalogready-report.html (a visual report you can open in a browser).

Step 3 — open your chatbox: chatgpt.com · claude.ai · gemini.google.com · chat.deepseek.com

Step 4 — copy this prompt into the chat:

I ran CatalogReady (github.com/PO-VINCENT/ai-shopping-audit), an
open-source auditor that scores product pages 0–100 for AI-shopping
readiness using deterministic rules. Below is the JSON result for my
product page. Act as my e-commerce consultant:
1. Explain the score, the pillar breakdown, and any caps in plain language.
2. Prioritize the findings into a fix list, most damaging first.
3. Show me the corrected Product JSON-LD using ONLY facts present in
   this JSON — do not invent product data.
4. Tell me which merchant questions I must answer and why they matter.
Here is the audit JSON:

Step 5 — paste the contents of audit.json right below the prompt and send. (Or attach audit.json as a file — ChatGPT, Claude, and Gemini all accept file uploads.)

Step 6 — keep the conversation going. Good follow-ups: "Rewrite my product title following the fix list" · "Explain rule GEO-PRODUCT-003" · "I fixed the JSON-LD — what should I verify after deploying?" (Re-run Step 2 after each fix to watch the score climb.)

Prefer your assistant to run the audit itself? (MCP)

Agentic assistants can call CatalogReady as a tool via its MCP server. Then just ask: "Fetch https://store.example/products/x and run the CatalogReady agent on the HTML — summarize the score and the top fixes." A matching Agent Skill teaches Claude Code, Codex CLI, and any other agentskills.io adopter when to reach for the tools and which guardrails apply — install snippets in QUICKSTART-AI-ASSISTANTS.md.

Claude Code — one line:

claude mcp add catalogready -- uvx --from catalogready-ai catalogready-mcp

Add to ~/.codex/config.toml (or a trusted project's .codex/config.toml):

[mcp_servers.catalogready]
command = "uvx"
args = ["--from", "catalogready-ai", "catalogready-mcp"]
startup_timeout_sec = 20
tool_timeout_sec = 120

ChatGPT's web/desktop connectors expect remote MCP servers; for a local audit tool, Codex CLI is the supported path today.

Add to claude_desktop_config.jsonmcpServers:

{
  "mcpServers": {
    "catalogready": {
      "command": "uvx",
      "args": ["--from", "catalogready-ai", "catalogready-mcp"]
    }
  }
}

Add to .gemini/settings.json (this repo ships one):

{
  "mcpServers": {
    "catalogready": {
      "command": "uvx",
      "args": ["--from", "catalogready-ai", "catalogready-mcp"],
      "trust": false
    }
  }
}

Gemini Enterprise can use the A2A agent card instead — see docs/INTEROPERABILITY.md.

DeepSeek has no MCP client, so the integration runs the other way: use DeepSeek as the optional model powering CatalogReady's chat answers and listing drafts:

# .env next to where you run the server
DEEPSEEK_API_KEY=…
DEEPSEEK_MODEL=deepseek-chat

Then pick DeepSeek in the dashboard/extension, or --provider deepseek. The same pattern works for OpenAI, Gemini, and Claude keys — see docs/BYO-KEYS.md.

The full guide — including Copilot (VS Code agent mode) and each vendor as the BYO model inside CatalogReady — is docs/QUICKSTART-AI-ASSISTANTS.md.

Install and run

# one-off (recommended for a first try)
uvx --from catalogready-ai catalogready https://your-store.com/products/example

# or as a checkout
uv sync
uv run catalogready audit https://your-store.com/products/example

# fully offline: audit a saved page instead of fetching it
uv run catalogready audit https://your-store.com/products/example saved-page.html

# machine-readable output
uv run catalogready audit <url> [saved.html] --json

# also fetch product images to check marketplace size minimums (max 3 requests)
uv run catalogready audit <url> --online

Fetching is exactly one HTTP GET for the page you name. The audit engine itself makes no network calls — the test suite runs with networking disabled.

Try it on the bundled examples without touching the network:

uv run catalogready audit https://example.com/products/cr-001 examples/demo-store/index.html
uv run catalogready catalog examples/messy-apparel.csv   # scores 51/100, and shows exactly why

What gets checked

Pillar

Examples of rules

Product identity

stable ID (SKU/GTIN/MPN), brand, category, canonical URL

Offer completeness

price + currency + availability, complete Offer markup

Structured data

Product JSON-LD present, valid, consistent with the visible page

Decision evidence

description, specifications, shipping/returns/care/limitations on the page

Media & variants

primary image, image count, variant attributes and identity

Claim grounding

superlatives, “clinically proven”, warranty and performance claims checked against page evidence

When facts are missing, CatalogReady asks instead of inventing: the report lists the questions only the merchant can answer, and --answers merchant-answers.json resumes the audit with verified values.

Interactive agent session

catalogready chat opens a Claude Code-style terminal session over the bounded agent — audit, ask, answer, fix:

catalogready> /audit https://your-store.com/products/example
● inspect_product_page — Extracted 3 evidence items ...
● audit_product — Measured readiness at 1/100 and produced 14 findings.

  CatalogReady Score: 1/100 (needs_work)
  ...
  [blocking] price: What is the current verified product price?

catalogready> why is offer completeness low?
Offer completeness: 0/20
  ✗ price
  ✗ currency
  ...

catalogready> /answers sku=CR-100 price=49.00 currency=AUD availability=in_stock
catalogready> /draft
Isolated preview validation: 1 → 29 (+28), status validated.

catalogready> /report

The agent pauses for facts it cannot verify instead of inventing them; /answers resumes it. Free-text questions are answered deterministically from the audit result; set /provider openai (or gemini, claude, deepseek — keys via server environment variables only) for open-ended, model-answered questions grounded strictly in the audit JSON.

Interactive dashboard

One command serves the web UI and the local API on the same port and opens your browser:

uvx --from catalogready-ai catalogready dashboard   # or: uv run catalogready dashboard

Enter a product URL and press Audit — the local server fetches the page for you (one request). Or paste the HTML / load the built-in good/bad demos to stay fully offline. Every audit produces a plain-language summary conclusion, auto-drafted fix suggestions with an isolated preview validation, expandable per-pillar score explanations, inline merchant questions, a paste-ready JSON-LD patch, an "Ask the agent" chat window, and a downloadable HTML report. The UI follows your browser language (English / 中文, switchable in the header). Everything runs locally; the page never asks for API keys.

Why the extension and the URL fetch can score differently: the extension audits the rendered page (what a browsing agent sees); the URL fetch audits the static HTML (what non-rendering crawlers like OAI-SearchBot and PerplexityBot receive). Both views are labeled in the UI, and the gap between them measures your page's JavaScript dependence — content that only exists after rendering is invisible to most AI crawlers, which is why Google recommends putting Product data in the initial HTML.

How it compares

CatalogReady measures whether your product page is citable by an AI shopping agent — an input you control — not whether it happened to be cited, an outcome that changes on every run. That axis is what separates it from each neighbouring category:

Axis

CatalogReady

Schema validators

GEO/AEO visibility

Feed & PIM tools

AI copy generators

SEO suites

Open source, self-hostable, no account/key

some

Deterministic — every point traces to a cited rule

n/a (syntax)

✗ (probabilistic)

✗ (opaque)

Audits the live page an AI agent fetches & renders

✓ (syntax only)

✗ (asks the LLM)

✗ (the feed, not the page)

partial

Scores product completeness for AI shopping agents

partial (feed-side)

Checks marketing claims against on-page evidence

✗ (generates them)

Scores checkout transactability (UCP/ACP era)

Paste-ready JSON-LD fix, built only from page evidence

generated, ungrounded

Representative tools per column — Schema validators: Google Rich Results Test, google/schemarama, spatie/schema-org; GEO/AEO visibility: Profound, Peec.ai, Otterly, Adobe LLM Optimizer; Feed & PIM: Feedonomics, DataFeedWatch, Salsify, Akeneo; AI copy generators: Describely, Hypotenuse, Jasper; SEO suites: Screaming Frog, Semrush, Ahrefs.

No tool combines all seven rows: schema validators own row 3 only; GEO/AEO platforms measure the outcome this score is the input for; feed & PIM tools work the feed instead of the public page; generators create the very claims CatalogReady audits. The transactability row has no competition yet — the protocols it checks against (UCP, ACP checkout) are only months old.

Bring your own model key (optional)

Everything above runs with no key. To enable model-assisted planning, chat answers, and listing drafts, put a provider key in the server's .env — see docs/BYO-KEYS.md. Keys never enter the dashboard, the extension, or tool arguments.

Also in the box

The audit engine is a vendor-neutral service with several thin surfaces. These are secondary to the page audit and documented in docs/ROADMAP.md:

  • catalogready catalog feed.csv — CSV catalog audit with the same deduction-and-cap scoring.

  • catalogready-api — HTTP server with OpenAPI docs and an A2A agent card.

  • A Chromium extension (browser-extension-standalone/, on the Chrome Web Store) — one click on any product page runs the deterministic audit fully in-browser: score, per-platform views, findings, merchant questions, and a rendered-vs-crawler comparison. No server needed; an optional local server adds AI fix drafts. Works on bot-protected storefronts because it reads what your browser rendered.

  • An Agent Skill (skills/catalogready/) auto-discovered by Claude Code and Codex CLI inside this repo, and installable globally — see docs/QUICKSTART-AI-ASSISTANTS.md.

  • Optional model-assisted listing drafts (OpenAI, Gemini, Claude, DeepSeek) with bring-your-own keys via server environment variables — never in tool arguments or browser storage — and deterministic claim evaluation with publishing safety caps.

Guarantees

  • The deterministic core requires no API key and makes no network calls.

  • CatalogReady never writes to a storefront, feed, or merchant system.

  • It never invents product attributes, citations, or rankings.

  • A readiness score is not a promise of ranking or citation by any AI system — and any tool that promises that is guessing.

Contributing

Rule proposals are the most valuable contribution — see CONTRIBUTING.md and the issue templates. Run the suite with python -m unittest discover -s tests -v; it must pass offline.

Architecture and module design: docs/repository-design.md · Rules with sources: docs/RULES.md · Metrics & landscape: docs/METRICS.md · Scoring: docs/scoring-methodology.md · Interoperability: docs/INTEROPERABILITY.md · Roadmap: docs/ROADMAP.md · Browser extension privacy: docs/PRIVACY.md

Contact

Built by Vincent Po Li. Questions, fix help, partnership, or feedback:

Licensed under Apache-2.0.

Available Tools

11 tools
catalogready_audit_catalogC

Audit a local CSV catalog and return structured evidence-backed findings.

ParametersJSON Schema
NameRequiredDescriptionDefault
catalog_pathYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It does not state whether the tool modifies the CSV, requires specific permissions, or any side effects. 'Audit' suggests a read operation but is not explicitly confirmed.

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?

The description is a single sentence with no unnecessary words. It efficiently conveys the core purpose. However, it could be slightly more detailed without losing conciseness.

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

Completeness2/5

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

Given no annotations and no output schema, the description should provide more context about return values, error handling, or prerequisites. It only covers the basic purpose, leaving significant gaps for an AI agent.

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

Parameters2/5

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

Schema coverage is 0% (no parameter descriptions). The description only implies that 'catalog_path' is the path to the CSV file, but lacks details on format, required vs. optional, or constraints. This adds minimal meaning beyond the parameter name.

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?

The description clearly states the verb ('Audit') and resource ('local CSV catalog') and mentions the output ('structured evidence-backed findings'). It distinguishes from sibling tools by specifying the resource type (CSV vs. discovery bundle or HTML page), though it doesn't explicitly state when to use this versus others.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus siblings like catalogready_audit_discovery_bundle or catalogready_audit_page_html. The description implies use when auditing a local CSV catalog but offers no exclusions or alternative recommendations.

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

catalogready_audit_discovery_bundleC

Audit page HTML together with optional robots.txt and sitemap evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
htmlYes
robots_txtNo
sitemap_xmlNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavioral traits. It only mentions inputs (page HTML, robots.txt, sitemap) but does not disclose side effects, permissions, rate limits, or output behavior. The main verb 'audit' is ambiguous regarding read/write nature.

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?

The description is a single concise sentence, efficiently listing the key inputs. It could be improved by front-loading the purpose but has no unnecessary words.

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

Completeness2/5

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

Given no output schema and moderate complexity (4 params), the description is too brief. It fails to explain what the audit output is, how results are returned, or criteria for choosing this bundle over similar siblings. Missing essential guidance for correct tool selection.

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

Parameters3/5

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

With 0% schema description coverage, the description adds meaning by mapping the optional parameters (robots_txt, sitemap_xml) to the evidence mentioned. However, it does not add details on format, constraints, or usage beyond name mapping.

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?

The description clearly states the tool audits page HTML along with optional robots.txt and sitemap evidence. It distinguishes from siblings like `catalogready_audit_page_html` by bundling additional discovery files, but does not elaborate on what the audit entails.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus siblings or when to include the optional files. The description implies usage for auditing with discovery evidence but lacks explicit context or exclusions.

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

catalogready_audit_page_htmlC

Audit supplied product-page HTML; the host remains responsible for fetching it.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
htmlYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden. It only states the tool audits HTML and that the host fetches it, but does not disclose what the auditing entails, output format, or any side effects.

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?

The description is extremely concise with one sentence, front-loading the core purpose. However, it sacrifices detail, earning a 4 rather than 5.

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

Completeness2/5

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

For a tool with no output schema and no annotations, the description is inadequate. It does not explain what the audit checks, what the return value is, or how to handle the url parameter, leaving the agent underinformed.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning beyond the parameter names. It does not explain what 'url' and 'html' represent or how they relate to the auditing process.

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

Purpose5/5

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

The description clearly states the tool audits supplied product-page HTML, with a specific verb ('audit') and resource ('product-page HTML'). It also distinguishes from fetching by noting the host is responsible for fetching.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The description implies the tool does not fetch HTML, but does not mention sibling tools or provide exclusion criteria.

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

catalogready_build_visibility_prompt_packC

Build prompts for repeated, timestamped AI-visibility observations.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
marketNoen-AU
categoryYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the behavioral disclosure burden. It only states the tool builds prompts but does not disclose side effects, permissions needed, output format, or any status changes. The description is too minimal to convey behavioral traits.

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

Conciseness3/5

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

The description is a single sentence, which is concise but at the expense of clarity and detail. It is not front-loaded with critical information, and while brief, it could be longer to improve understanding without being verbose.

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

Completeness2/5

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

Given the tool has 3 parameters, no output schema, and no annotations, the description is highly incomplete. It fails to explain what the prompts are, how they are used, what the output is, or any usage constraints. The tool's complexity requires more detailed context.

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

Parameters1/5

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

With 0% schema description coverage, the description should add meaning for the three parameters. However, it provides no context for 'domain', 'market', or 'category' beyond their names. The description does not compensate for the lack of schema documentation, leaving the agent without semantic guidance.

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?

The description clearly states the tool action 'Build prompts' and the resource 'for repeated, timestamped AI-visibility observations'. It provides a specific verb and resource, and the context of observations helps distinguish it from sibling tools focused on auditing, optimizing, or scoring.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives. It does not mention prerequisites, required context, or scenarios where other sibling tools like catalogready_audit_catalog or catalogready_score_visibility_snapshots might be more appropriate.

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

catalogready_describeC

Describe CatalogReady capabilities, protocols, and limitations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description must convey behavior. It implies a read-only informative action but does not explicitly state read-only, side effects, or any limitations beyond the vague 'limitations' word.

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?

Single sentence is concise, but it lacks structure (e.g., no bullet points or clear breakdown of what is described). Still, it is not verbose.

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

Completeness3/5

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

For a tool with no parameters and no output schema, the description is minimal. It doesn't specify the output format or how detailed the description will be, which may leave the agent uncertain about the response.

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?

No parameters exist, and schema coverage is 100% (empty). The description does not need to add parameter info; baseline score 4 is appropriate.

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

Purpose3/5

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

Description states it describes capabilities, protocols, and limitations, which is clear but vague. It distinguishes from sibling tools that perform specific actions, but could be more precise about what 'CatalogReady' refers to.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus siblings. It does not mention prerequisites or context, leaving the agent without direction on when 'describe' is appropriate.

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

catalogready_model_providersA

List BYO model providers and whether their server-side environment is configured.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description clearly implies a read-only operation by stating it lists providers and configuration status. No annotations are provided, but the description adequately conveys the non-destructive nature of the tool.

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

Conciseness5/5

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

A single, concise sentence with no wasted words. It efficiently communicates the purpose and scope of the tool.

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 a simple list tool with no parameters and no output schema, the description provides sufficient information about what the tool returns (list of providers and environment configuration status). Minor improvement could be mentioning the expected output format.

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?

The tool has zero parameters, so the description does not need to add parameter semantics. Baseline for 0 parameters is 4.

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

Purpose5/5

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

The description uses specific verbs ('List') and resources ('BYO model providers'), and clearly distinguishes from sibling tools which focus on audit, optimization, or discovery tasks.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. While the usage is straightforward for a list tool, the description lacks context about prerequisites or scenarios where other tools might be preferred.

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

catalogready_optimize_product_csvB

Optimize one CSV product row without writing to a merchant system.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
marketNoen-AU
csv_textYes
providerNodeterministic
row_indexNo

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description only reveals that the tool does not write to a system, but fails to disclose output format, side effects, or other behavioral traits like error handling.

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

Conciseness5/5

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

A single, focused sentence with no unnecessary words; front-loaded with the key action and constraint.

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

Completeness1/5

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

For a tool with 5 parameters, no parameter descriptions, and no output schema, the description is critically incomplete, offering no guidance on input formatting, parameter roles, or expected return values.

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

Parameters1/5

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

Despite 0% schema description coverage, the description provides no meaning for any of the 5 parameters (e.g., model, market, provider), leaving the agent without guidance on their purpose.

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

Purpose5/5

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

The description clearly states the tool optimizes one CSV product row and explicitly says it does not write to a merchant system, distinguishing it from siblings like catalogready_optimize_product_html.

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

Usage Guidelines3/5

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

The phrase 'without writing to a merchant system' implies a non-destructive use case, but lacks explicit when/when-not guidance or comparison to sibling tools like catalogready_optimize_shopify_payload.

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

catalogready_optimize_product_htmlC

Create an evidence-backed product listing, journey, claim audit, and readiness score.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
htmlYes
modelNo
marketNoen-AU
providerNodeterministic

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as idempotency, side effects, authentication requirements, or rate limits. The description only covers what is created, not how the tool behaves.

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

Conciseness3/5

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

The description is a single sentence that lists multiple outputs, which makes it dense. It could be more concise by focusing on the core action, but it is not excessively long.

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

Completeness2/5

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

Given the complexity (5 parameters, 2 required, no output schema), the description is insufficient. It does not clarify what 'evidence-backed' means, how 'readiness score' is computed, or how this tool relates to sibling tools like catalogready_audit_catalog.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no explanation for any of the 5 parameters (url, html, model, market, provider). Parameters like 'model' and 'provider' are left completely unexplained.

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

Purpose3/5

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

The description states the tool creates a 'product listing, journey, claim audit, and readiness score' which gives a general idea of the output but lacks specificity about the input and does not differentiate from sibling tools like catalogready_optimize_product_csv.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as catalogready_audit_page_html or catalogready_optimize_product_csv. There is no mention of context, prerequisites, or exclusions.

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

catalogready_optimize_shopify_payloadC

Optimize an authorized Shopify GraphQL product object supplied by the host agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
marketNoen-AU
providerNodeterministic
shop_domainNo
product_dataYes

TDQS

C2/5.0
Behavior2/5

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

With no annotations, the description must disclose behaviors. It only states the tool operates on an 'authorized' Shopify object, but does not describe side effects, permission requirements, rate limits, or what 'optimize' modifies. The term 'authorized' hints at authentication, but no details.

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

Conciseness2/5

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

The description is a single short sentence, which is concise but lacks substance. Important information about parameters, usage, and behavior is omitted, so the sentence does not earn its place.

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

Completeness1/5

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

Given the tool's complexity (5 params, nested objects, no output schema, no annotations), the description is severely incomplete. It fails to explain what optimization does, how parameters affect behavior, or what the user should expect.

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

Parameters1/5

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

The input schema has 5 parameters (including a nested object) with 0% coverage in description. The description does not explain any parameter, such as 'model', 'market', 'provider', or 'shop_domain'. The required 'product_data' is mentioned but not detailed.

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

Purpose3/5

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

The description states the tool optimizes a Shopify GraphQL product object, which is a specific verb-resource combination. However, 'optimize' is vague and does not explain what optimization entails. The sibling tools (CSV, HTML) provide clearer differentiation, but this description lacks specificity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus its siblings (e.g., catalogready_optimize_product_csv, catalogready_optimize_product_html). The description does not mention prerequisites, alternatives, or context for selection.

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

catalogready_run_product_agentD

Inspect, plan, safely draft, and validate product-readiness changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
htmlYes
modeNoaudit
modelNo
providerNodeterministic
resumed_fromNo
merchant_answersNo

TDQS

D1.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits like side effects or safety. The phrase 'safely draft' hints at non-destructive behavior but is insufficient. There is no mention of required permissions, error handling, or what the tool actually does to the system.

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

Conciseness2/5

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

The description is a single sentence that is too generic to be useful. It does not earn its place as it fails to add significant value for the agent.

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

Completeness1/5

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

Given the complexity (7 parameters, no schema descriptions, no output schema, no annotations), the description is completely inadequate. It provides no information on inputs, outputs, or behavior, making it impossible for an agent to use the tool correctly.

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

Parameters1/5

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

Schema description coverage is 0%, and the tool description does not explain any of the 7 parameters, including the required 'url' and 'html'. The agent has no guidance on what values to provide or how parameters affect behavior.

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

Purpose2/5

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

The description lists generic verbs (inspect, plan, draft, validate) but does not specify what 'product-readiness changes' are or how this tool differs from siblings like catalogready_audit_catalog or catalogready_optimize_product_html. The purpose is vague.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this agent versus individual sibling tools. The description does not mention prerequisites, alternatives, or context for use.

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

catalogready_score_visibility_snapshotsC

Score recorded citation observations without calling a live model provider.

ParametersJSON Schema
NameRequiredDescriptionDefault
snapshot_pathYes
target_domainYes

TDQS

C2.3/5.0
Behavior2/5

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

No annotations are provided, and the description only states offline behavior. It fails to mention whether the tool modifies data, requires special permissions, or any side effects.

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

Conciseness2/5

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

The description is a single sentence that is too brief, lacking necessary details. While concise, it sacrifices completeness.

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

Completeness1/5

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

Given no output schema, no annotations, and 0% param coverage, the description is woefully incomplete. It does not explain inputs, outputs, or behavior beyond the basic action.

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

Parameters1/5

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

Schema coverage is 0%, and the description adds no meaning for the two required parameters (snapshot_path, target_domain). The agent has no information on their format or purpose.

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?

The description clearly states the tool scores recorded citation observations offline, distinguishing it from siblings like catalogready_audit_catalog. However, it omits specifics on what constitutes 'citation observations' and the scoring output.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The phrase 'without calling a live model provider' implies use for offline scoring, but no exclusions or prerequisites are provided.

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.

  1. 11 tool updatesv0.5.0
    • First observedcatalogready_audit_catalog
    • First observedcatalogready_audit_discovery_bundle
    • First observedcatalogready_audit_page_html
    • First observedcatalogready_build_visibility_prompt_pack
    • First observedcatalogready_describe
    • First observedcatalogready_model_providers
    • First observedcatalogready_optimize_product_csv
    • First observedcatalogready_optimize_product_html
    • First observedcatalogready_optimize_shopify_payload
    • First observedcatalogready_run_product_agent
    • First observedcatalogready_score_visibility_snapshots

TDQS

B3.1/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct input or action (e.g., audit_catalog vs audit_page_html, optimize_product_csv vs optimize_shopify_payload). No two tools overlap in purpose; descriptions clearly differentiate them.

Naming Consistency4/5

Most tools follow a verb_noun pattern (audit_catalog, optimize_product_csv, etc.), but 'model_providers' is a bare noun and 'describe' is a bare verb, deviating slightly from the dominant pattern.

Tool Count5/5

11 tools is well within the 3–15 range. Each tool serves a necessary function in the catalog readiness workflow, with no redundancy or clutter.

Completeness5/5

The tool surface covers the full lifecycle: auditing (various inputs), optimization (various outputs), visibility scoring, and agent-driven product readiness. No obvious gaps for the stated domain.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that gives AI agents tools to inspect a website's visibility to AI answer engines, including crawler permissions, llms.txt, structured data, on-page signals, and a full 29-check AI-readiness audit.
    5
    32
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Open-source MCP server that audits websites for AI search readiness, providing deterministic scoring (0-100) and prioritized fix lists for metrics like JSON-LD, llms.txt, heading hierarchy, and AI crawler access.
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that audits websites for accessibility (WCAG 2.1 AA/EAA), performance, SEO, design quality, and mobile responsiveness, providing actionable scores, grades, and prioritized fixes.
    6
    -