Skip to main content
Glama
jigarkkarangiya

magento-sql-mcp-server

Magento SQL MCP Server

npm version License: MIT Node.js

An MCP (Model Context Protocol) server that provides AI assistants with read-only access to a Magento 2 / Adobe Commerce MySQL database. It auto-detects local DDEV environments, connects to Adobe Commerce Cloud via CLI tunnels, and ships 50+ tools for orders, catalog, customers, CMS, config, indexers, and diagnostics.

Complementary MCP: Documentation MCPs (see Related MCPs) cover official Adobe Commerce docs. This package covers your live database.


Features

  • 50+ read-only tools for orders, products, customers, CMS, config, EAV, MSI, B2B, staging, cron, and indexers

  • Read-only by design — blocks INSERT/UPDATE/DELETE/DDL; masks password, token, and credit-card columns

  • Multi-environment profiles — local DDEV, Adobe Commerce Cloud (staging/production), direct remote DB, SSH tunnel

  • Zero-config local dev — reads app/etc/env.php, auto-detects DDEV MySQL port (cached 120s)

  • Commerce-aware — detects staging (updated_in), MSI, B2B; EAV joins use row_id on Commerce

  • CMS helpersget_cms_page, audit_cms_page_blocks

  • Parameter aliasesquery to sql, path to pathPattern, entity_type to entity_type_code

  • Per-call profile override — pass profile: "staging" on any tool without restarting MCP

  • MCP standards — Zod schemas, structured output, tool annotations, server instructions

  • Resources and prompts — table reference, EAV cheatsheet, order-debug and MSI-troubleshoot workflows

  • Dual transport — stdio (default) and optional HTTP for LibreChat / remote hosts


Related MCP server: Magento MCP Server

Quick setup for Cursor

Prerequisites

Requirement

Notes

Node.js 18+

node --version

Magento project

Must contain app/etc/env.php

DDEV

Optional; auto-detected for local profiles

Adobe Commerce Cloud CLI

Required for Cloud staging/production tunnels

  1. Open CursorSettingsMCPAdd new MCP server

  2. Configure:

Field

Value

Name

magento-sql

Type

command

Command

npx -y magento-sql-mcp-server

  1. Set environment variables:

Variable

Required

Example

MAGENTO_ROOT

Yes

/absolute/path/to/magento

MAGENTO_SQL_PROFILE

No

local (defaults to auto-detect)

  1. Restart Cursor. Verify with: Call get_connection_status

Option B: Project config (.cursor/mcp.json)

Create in your Magento project root:

{
  "mcpServers": {
    "magento-sql": {
      "command": "npx",
      "args": ["-y", "magento-sql-mcp-server"],
      "env": {
        "MAGENTO_ROOT": "/absolute/path/to/magento",
        "MAGENTO_SQL_PROFILE": "local"
      }
    }
  }
}

Run from source (development):

{
  "mcpServers": {
    "magento-sql": {
      "command": "node",
      "args": ["/absolute/path/to/magento-sql-mcp-server/dist/index.js"],
      "env": {
        "MAGENTO_ROOT": "/absolute/path/to/magento",
        "MAGENTO_SQL_PROFILE": "local"
      }
    }
  }
}

Option C: Init profile scaffold

npx magento-sql-mcp-server --init

Creates .cursor/magento-sql-mcp.json from examples/magento-sql-mcp.example.json.

Profiles named default, local, or dev auto-fallback to DDEV/env.php detection without a config file.


Setup for other tools

Claude Desktop

OS

Config path

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

Linux

~/.config/Claude/claude_desktop_config.json

Use the same mcpServers JSON as Cursor.

VS Code / GitHub Copilot

.vscode/mcp.json — same env vars; use "servers" key instead of "mcpServers".

Windsurf

~/.codeium/windsurf/mcp_config.json — same structure as Claude Desktop.


Connection profiles

Profile file

Create .cursor/magento-sql-mcp.json in your Magento project (see examples/magento-sql-mcp.example.json):

{
  "defaultProfile": "local",
  "profiles": {
    "local": { "mode": "auto" },
    "staging": {
      "mode": "direct",
      "database": {
        "host": "127.0.0.1",
        "port": 30000,
        "dbname": "your_project_stg",
        "username": "your_project_stg",
        "password": "${MAGENTO_STAGING_DB_PASSWORD}"
      }
    },
    "production": {
      "mode": "direct",
      "database": {
        "host": "127.0.0.1",
        "port": 30000,
        "dbname": "your_project_id",
        "username": "your_project_id",
        "password": "${MAGENTO_PRODUCTION_DB_PASSWORD}"
      }
    }
  }
}

Set passwords in MCP env (never commit credentials):

"env": {
  "MAGENTO_STAGING_DB_PASSWORD": "from-tunnel-info",
  "MAGENTO_PRODUCTION_DB_PASSWORD": "from-tunnel-info",
  "MAGENTO_SQL_PROFILE": "local"
}

Global shared profiles: ~/.config/magento-sql-mcp/config.json

Connection modes

Mode

Use case

auto

Local dev: reads env.php, detects DDEV port

env-php

Same as auto

direct

Connect to host:port (Cloud tunnel on 127.0.0.1:30000, VPN, allowlisted IP)

ssh-tunnel

MCP opens SSH port forward (non-Cloud hosts with standard SSH keys)

Config values support ${ENV_VAR} references for secrets.

Per-tool override: pass profile on any tool call without changing MAGENTO_SQL_PROFILE.


Adobe Commerce Cloud setup

Cloud MySQL runs on database.internal:3306 inside the environment. It is not reachable from the public internet. Use an SSH tunnel (same approach as DBeaver with SSH enabled).

Laptop                    Cloud environment
127.0.0.1:30000  --SSH--> database.internal:3306

Step 1: Install and authenticate Cloud CLI

Documentation: Adobe Commerce Cloud CLI

magento-cloud login
magento-cloud auth:info
magento-cloud project:list
magento-cloud environments -p YOUR_PROJECT_ID

Non-interactive auth: magento-cloud auth:api-token-login or export MAGENTO_CLOUD_CLI_TOKEN=...

Step 2: Open tunnel

# Staging
magento-cloud tunnel:open -p YOUR_PROJECT_ID -e staging

# Production
magento-cloud tunnel:open -p YOUR_PROJECT_ID -e production

Example output:

SSH tunnel opened to database at: mysql://user:pass@127.0.0.1:30000/dbname?compression=1

Default ports (single environment open):

Port

Service

30000

MySQL (primary)

30001

MySQL slave / MBI

30002+

OpenSearch, Valkey, etc.

Note: Staging and production both use port 30000. Close the current tunnel before opening another:

magento-cloud tunnel:close
magento-cloud tunnel:open -p YOUR_PROJECT_ID -e staging

Step 3: Get credentials

magento-cloud tunnel:info -p YOUR_PROJECT_ID -e staging
magento-cloud tunnel:info -P database

On the remote container (SSH):

echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp

CLI reference: Cloud CLI reference

Step 4: Configure MCP profiles

Cloud profiles use direct mode to 127.0.0.1:30000. The tunnel must remain open while MCP is connected.

Add .cursor/mcp.json and .cursor/magento-sql-mcp.json to .gitignore.

Step 5: Switch environments

Target

Steps

Local

tunnel:closeMAGENTO_SQL_PROFILE=local → reload MCP

Staging

tunnel:open -e stagingMAGENTO_SQL_PROFILE=staging or profile: "staging" per tool

Production

tunnel:open -e productionMAGENTO_SQL_PROFILE=production

Step 6: Verify connection

magento-cloud tunnels

MCP tools:

  • get_connection_status (with profile: "staging" or "production")

  • detect_magento_environment

Check

Staging

Production

Database name

Often *_stg suffix

Usually project ID

Cloud URL

mcstaging.yourdomain.com

mcprod.yourdomain.com

Order volume (7d)

Typically low

Active traffic

magento-cloud url -p YOUR_PROJECT_ID -e staging

Step 7: Close tunnel

magento-cloud tunnel:close

Cloud config URLs vs storefront URLs

core_config_data base URLs (web/unsecure/base_url, web/secure/base_url) on staging often still show the production domain (DB cloned from production). Actual storefront URLs are set by Cloud routes and Fastly.

Timezone-aware order queries

Store timezone: general/locale/timezone in core_config_data. Order created_at is stored in UTC. Convert store-local date ranges to UTC before querying sales_order. Use get_magento_config with pathPattern: "general/locale/%" to read the timezone.


Tools

Call list_available_tools for the full catalog with edition tags (OSS / MSI / B2B / Commerce).

Connection and environment

Tool

Description

list_connection_profiles

List configured DB profiles

get_connection_status

Test connectivity, host, database, latency

detect_magento_environment

Detect OSS vs Commerce, MSI, B2B, staging columns

run_database_health_check

Snapshot: connection, indexers, crons, queue backlog

SQL and schema

Tool

Parameters

Description

execute_select_query

sql or query, limit?, profile?

Read-only SELECT/SHOW/DESCRIBE/EXPLAIN (auto LIMIT 100)

validate_select_query

sql or query

Validate SQL safety without executing

explain_select_query

sql or query

EXPLAIN plan for a SELECT

list_tables

pattern?

List tables (optional SQL LIKE pattern)

describe_table

table

Column definitions from INFORMATION_SCHEMA

search_columns

pattern

Find tables containing a column name

get_table_indexes

table

Index details

get_foreign_keys

table

Foreign key relationships

count_table_rows

table

Row count for one table

get_largest_tables

limit?

Top tables by storage size

Catalog and products

Tool

Tag

Description

find_product_by_sku

OSS

Product entity + stock + websites

get_product_attributes

OSS

Name, price, status, visibility, url_key

get_configurable_children

OSS

Configurable to simple child SKUs

get_product_categories

OSS

Category assignments with names

get_eav_attribute

OSS

Attribute metadata + join hints

get_catalog_rule_price

OSS

Indexed catalog rule price

get_msi_stock_status

MSI

Physical qty, reservations, salable qty

get_staging_upcoming_updates

Commerce

Future staging campaigns for a SKU

Sales and customers

Tool

Description

find_order_by_increment_id

Order header + line items

find_customer_by_email

Exact email only + order stats

find_customers_by_name

Firstname/lastname LIKE search

find_active_quote_by_email

Most recent active cart

get_active_quote_items

Quote line items with parent-child nesting

get_order_shipment_tracks

Shipment tracking numbers

get_order_tax_breakdown

Tax rates applied to an order

get_b2b_negotiable_quotes

B2B negotiable quotes (optional company_id)

Operations, CMS, and config

Tool

Description

get_magento_config

core_config_data with value_status + scope inheritance

get_cms_page

CMS page by identifier + embedded block IDs

get_cms_block

CMS block by identifier or block_id

audit_cms_page_blocks

Active/inactive audit of blocks in a page

get_indexer_status

indexer_state + mview_state

get_cron_schedule

Recent cron entries

get_failed_cron_jobs

Failed/stuck crons (24h)

get_db_queue_backlog

Queue backlog (sampled on large DBs)

get_store_hierarchy

Websites, store groups, store views

get_module_versions

Installed module versions

get_url_rewrite

URL rewrite lookup

audit_plaintext_secrets

Flag plaintext secrets in config

get_heavy_log_tables

Oversized log/visitor tables

list_available_tools

Meta-tool: categorized tool catalog

Edition-specific tools return a clear error if required tables are missing.


Resources

URI

Description

magento://schema/common-tables

Common Magento tables by domain

magento://schema/groups

Table group index (JSON)

magento://schema/group/{slug}

Tables in a group (catalog, sales, customer, eav, msi, ...)

magento://schema/eav-cheatsheet

EAV entity types, attribute codes, value tables

magento://help/tools

Full tool catalog markdown

magento://server/info

Server version and capabilities

magento://connection/status

Live connection status (JSON)


Prompts

Prompt

Arguments

Description

order-debug

increment_id

Investigate order, items, addresses, status history

catalog-product-check

sku

Product entity, EAV, stock, URL rewrite

customer-lookup

email

Customer account, group, recent orders

config-inspector

path_pattern

Read store configuration paths

indexer-status-check

Review indexer and mview health

checkout-funnel-debug

email?

Trace quote to order conversion

msi-troubleshoot

sku

Diagnose MSI salable qty issues

b2b-company-audit

company_id

Audit B2B company and quotes

staging-campaign-viewer

sku

View upcoming staging campaigns


Usage examples

What you ask

What happens

"How many orders yesterday and total revenue?"

Timezone-aware query on sales_order

"Debug order 1000203870"

find_order_by_increment_id + line items

"What is the store timezone?"

get_magento_config on general/locale/timezone

"Check Fastly config on staging"

get_magento_config with profile: "staging"

"Audit CMS blocks on the home page"

audit_cms_page_blocks

"Is this Commerce with MSI?"

detect_magento_environment

"Why is salable qty 0 for SKU X?"

msi-troubleshoot + get_msi_stock_status

"Show indexer and failed cron status"

run_database_health_check


How it works

+-------------+     +---------------------------+     +-----------------------------+
|  AI Client  |---->|  MCP Server (stdio/HTTP)  |---->|  MySQL (read-only)          |
|  Cursor,    |<----|  50+ Tools                |<----|  Magento / Adobe Commerce   |
|  Claude,    |     |  7 Resources, 9 Prompts   |     +-----------------------------+
|  VS Code    |     +---------------------------+
+-------------+
                      |
                      +-- Profile: MAGENTO_SQL_PROFILE -> config JSON
                      +-- auto mode: env.php + DDEV port (cached 120s)
                      +-- Cloud: magento-cloud tunnel -> 127.0.0.1:30000
                      +-- Query validation: read-only only
                      +-- Auto LIMIT 100 (max 1000)
                      +-- Sensitive column masking
                      +-- Commerce staging: updated_in = 2147483647
  1. MCP host starts the server with MAGENTO_ROOT pointing at your Magento project

  2. resolveConnection() loads profile from .cursor/magento-sql-mcp.json or auto-detects

  3. For local DDEV: reads app/etc/env.php, runs ddev describe -j once (cached)

  4. Tools run validated read-only SQL or canned queries with Magento-aware joins

  5. Results return as structured JSON with Zod schemas


HTTP transport

npx magento-sql-mcp-server --http
# listens on http://localhost:3100 (override with MCP_HTTP_PORT)

LibreChat librechat.yaml:

mcpServers:
  magento-sql:
    type: streamable-http
    url: http://localhost:3100
    initTimeout: 30000

Configuration

Environment variables

Variable

Description

MAGENTO_ROOT

Magento project root (must contain app/etc/env.php)

MAGENTO_SQL_PROFILE

Active profile (default, local, staging, production)

MAGENTO_SQL_MODE

Override mode: auto, direct, ssh-tunnel, env-php

MAGENTO_SQL_HOST

DB host override

MAGENTO_SQL_PORT

DB port override

MAGENTO_SQL_DATABASE

Database name override

MAGENTO_SQL_USER

DB username override

MAGENTO_SQL_PASSWORD

DB password override

MAGENTO_STAGING_DB_PASSWORD

Staging password for profile ${...} refs

MAGENTO_PRODUCTION_DB_PASSWORD

Production password for profile ${...} refs

MAGENTO_SQL_SSH_HOST

SSH tunnel host override

MAGENTO_SQL_SSH_USER

SSH tunnel user override

MCP_HTTP_PORT

HTTP transport port (default: 3100)

Per-tool overrides: magentoRoot and profile arguments on most tools.


Troubleshooting

MCP server failed to start

  • Verify Node.js 18+: node --version

  • Test manually: npx magento-sql-mcp-server (should print "running on stdio")

  • Ensure MAGENTO_ROOT points to a directory with app/etc/env.php

Profile local not found

v2.4.0+ auto-fallbacks local/default/dev to auto-detect. Upgrade or run:

npx magento-sql-mcp-server --init

Connection refused on Cloud (port 30000)

  • Tunnel not running: magento-cloud tunnel:open -p PROJECT_ID -e staging

  • Wrong environment: magento-cloud tunnels then close and reopen

  • Tunnel dropped after reboot: re-run tunnel:open

Connected to wrong environment

Run get_connection_status and check database. Staging names often end in _stg; production matches project ID.

Missing password environment variable

Copy password from magento-cloud tunnel:info into MCP env. Do not commit it.

DDEV connection refused / wrong port

  • Ensure DDEV is running: ddev start

  • DDEV port is cached for 120s after first discovery

Tool parameter errors

Use

Instead of

sql

query

pathPattern

path

entity_type_code

entity_type

Slow queue / health check tools

On large databases, queue backlog uses sampled counts. Check sampled: true in results.

Green dot does not appear in Cursor

  • Restart Cursor

  • Refresh MCP server in settings

  • Check Output panel for errors


Security

  • All queries validated as read-only before execution

  • Auto LIMIT (default 100, max 1000) on SELECT without explicit LIMIT

  • Password, token, and credit-card columns masked in results

  • Customer/admin password hashes never exposed

  • Use read-only MySQL users for Cloud profiles when available

  • Never commit credentials; use MCP env or ${ENV_VAR} in config JSON

  • Close Cloud tunnels when finished; avoid heavy full-table scans on production


Development

Run from source

git clone https://github.com/jigarkkarangiya/magento-sql-mcp-server.git
cd magento-sql-mcp-server
npm install
npm run build
MAGENTO_ROOT=/path/to/magento npm start

Tests

npm test
MAGENTO_ROOT=/path/to/magento npm run test:live
MAGENTO_ROOT=/path/to/magento npm run test:scenarios

Project structure

magento-sql-mcp-server/
├── src/                 # MCP server source
├── scripts/             # live-tool-smoke.ts, scenario-benchmark.ts
├── tests/               # unit tests
├── examples/            # magento-sql-mcp.example.json
└── dist/                # compiled JS (npm run build)

Requirements

Requirement

Required for

Node.js 18+

All modes

PHP CLI

auto mode (reads env.php)

DDEV CLI

Optional; local auto-detect

Adobe Commerce Cloud CLI

Cloud staging/production tunnels

OpenSSH client

ssh-tunnel mode

MySQL read access

All modes


Find this MCP


Documentation MCPs for Adobe Commerce and related platforms. Install alongside this server for docs + database coverage.

Package

npm

Description

adobe-commerce-docs-mcp

npm

Merchant, admin, cloud, operations docs (Experience League)

adobe-commerce-dev-docs-mcp

npm

Developer docs (developer.adobe.com/commerce)

adobe-commerce-kb-mcp

npm

Support Knowledge Base, patches, troubleshooting

adobe-app-builder-docs-mcp

npm

App Builder, I/O Runtime, Commerce extensibility

adobe-api-mesh-docs-mcp

npm

API Mesh, GraphQL gateway

adobe-io-events-docs-mcp

npm

I/O Events, webhooks

aem-live-docs-mcp

npm

AEM / Edge Delivery Services (aem.live)

odoo-docs-mcp

npm

Odoo documentation

Combined Cursor config:

{
  "mcpServers": {
    "magento-sql": {
      "command": "npx",
      "args": ["-y", "magento-sql-mcp-server"],
      "env": {
        "MAGENTO_ROOT": "/absolute/path/to/magento",
        "MAGENTO_SQL_PROFILE": "local"
      }
    },
    "adobe-commerce-docs": {
      "command": "npx",
      "args": ["-y", "adobe-commerce-docs-mcp"]
    },
    "adobe-commerce-dev-docs": {
      "command": "npx",
      "args": ["-y", "adobe-commerce-dev-docs-mcp"]
    },
    "adobe-commerce-kb": {
      "command": "npx",
      "args": ["-y", "adobe-commerce-kb-mcp"]
    }
  }
}

All MCP packages: github.com/jigarkkarangiya?tab=repositories&q=mcp

Available Tools

44 tools
audit_cms_page_blocksAudit CMS Page BlocksA
Read-onlyIdempotent

Loads a CMS page by identifier, parses block_id references from its content, and reports each block's identifier, title, and is_active status. Returns counts of active vs inactive embedded blocks — replaces manual SQL + regex parsing.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
identifierYesCMS identifier (e.g. 'home', 'footer-links').
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds behavioral detail beyond annotations by specifying the internal parsing of block_id references and the reporting of counts, which are not conveyed by the annotations alone. This enriches understanding of what the tool does internally.

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?

The description is two sentences with zero filler. The main action and scope are front-loaded in the first sentence, and the second sentence adds a practical output summary and the tool's value proposition. Every clause earns its place, making it concise and well-structured.

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

Completeness5/5

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

Given the output schema exists (which explains return structure), the description already covers the key outputs: block identifiers, titles, is_active status, and active/inactive counts. The annotations cover safety, and the parameters are fully documented. Nothing an agent needs to decide whether to call the tool or interpret its results is missing.

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?

Schema description coverage is 100%, so all three parameters are fully documented in the schema. The description adds little beyond restating that the tool uses the identifier to load a page, which the schema already describes. It does not provide additional semantics or usage nuances for the parameters, so the baseline score of 3 is appropriate.

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: 'Loads', 'parses', 'reports' and names the exact resource (CMS page by identifier). It clearly distinguishes from siblings like get_cms_page (which fetches a page) by being an audit action that analyzes embedded blocks and returns counts, making its purpose unmistakable.

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?

The description implies when to use it ('replaces manual SQL + regex parsing') and its scope (audit embedded blocks), but it does not explicitly name which sibling alternatives to avoid or when to prefer one over another. The context is clear enough for an agent to infer usage, but a direct reference to alternatives would elevate it.

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

audit_plaintext_secretsAudit Plaintext SecretsA
Read-onlyIdempotent

Flags core_config_data paths that may contain unencrypted secrets (password/key/token paths with plaintext values). Values are masked in output. Does NOT decrypt encrypted values.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, which indicate a safe read operation. The description adds valuable behavioral context beyond annotations: 'Values are masked in output' and 'Does NOT decrypt encrypted values.' These disclose output handling and functional limitations, which meaningfully supplements the annotation profile. No contradiction.

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?

Two concise sentences deliver all essential information: purpose, scope, output masking, and a key limitation. Front-loaded with the primary action ('Flags'), followed by the constraint. No filler or redundancy.

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

Completeness5/5

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

Given the presence of an output schema (which handles return-value documentation), the description fully covers the tool's behavior: what it does, what it doesn't do (decrypt), and how output is handled (masked). Optional parameters are self-explanatory via the schema. An agent has everything needed to invoke it correctly.

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?

Schema description coverage is 100%, with both parameters ('profile' and 'magentoRoot') already well-described in the schema. The description adds no new parameter semantics, but the baseline of 3 applies because the schema already carries the burden. No additional value is needed.

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?

Description clearly states the tool 'Flags core_config_data paths' that may contain unencrypted secrets, with a specific resource and verb. It distinguishes itself from all siblings, none of which audit plaintext secrets, and clarifies the scope (password/key/token paths). No ambiguity.

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 description implies the tool is for auditing potential plaintext secrets, but it does not explicitly mention when to use it versus alternatives, nor does it state exclusion conditions. For example, it doesn't say 'use get_magento_config to retrieve encrypted values' or provide a comparator. Usage context is implicit but not made explicit, so a 3 is appropriate.

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

count_table_rowsCount Table RowsA
Read-onlyIdempotent

Returns approximate or exact row count for a single table. Safer than SELECT * on large Magento tables. Use before execute_select_query to gauge table size.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesMagento database table name (e.g. sales_order, catalog_product_entity).
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nuance about approximate vs. exact counts and the safety advantage over SELECT *, which goes beyond the annotations. Yet it doesn't clarify when approximate vs. exact occurs or address rate limits or auth, which are not covered by annotations. The addition is modest.

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?

The description is three sentences with zero fluff. The primary function comes first, followed by a safety note and a concrete usage tip. Every sentence earns its place, and the structure guides the agent from what → why → when.

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 single-required-parameter tool with an output schema present, the description covers the essential aspects: what it does, safety characteristics, and a common use case. It doesn't elaborate on return format or edge cases, but the output schema handles return details, and the description's core guidance is sufficient. A minor gap is the lack of explicit mention that the count is not guaranteed exact for InnoDB tables, but that's implied by 'approximate or exact.'

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?

Schema description coverage is 100% — all three parameters (table, profile, magentoRoot) include descriptive text in the schema. The description itself adds no parameter-level detail beyond the schema. Per the baseline, when coverage is high, a score of 3 is appropriate.

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's core function: 'Returns approximate or exact row count for a single table.' The verb 'returns' and the resource 'row count for a single table' are specific, and the safety note ('Safer than SELECT *') distinguishes it from data-retrieval tools like execute_select_query. It also implies a singular table scope, differentiating it from tools like get_largest_tables.

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?

The description explicitly advises 'Use before execute_select_query to gauge table size,' providing a clear when-to-use directive. It also conveys safety relative to SELECT * on large tables, which implies it's intended for size estimation rather than data retrieval. However, it doesn't explicitly mention alternatives like explain_select_query or get_largest_tables, so it stops short of full exclusion guidance.

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

describe_tableDescribe TableA
Read-onlyIdempotent

Returns column definitions (name, type, nullable, keys, default) for a Magento table from INFORMATION_SCHEMA. Use before writing JOINs. Use list_tables if you don't know the exact table name.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesMagento database table name (e.g. sales_order, catalog_product_entity).
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds genuine context beyond the annotations: the INFORMATION_SCHEMA source and the exact returned fields. It does not contradict any annotation (returning definitions aligns with readOnlyHint=true). It could note behavior on a nonexistent table, but the output schema likely covers that, so a 4 is fair.

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?

Three sentences with zero waste: purpose, usage trigger, and routing to an alternative. The core definition is front-loaded ahead of the guidance, and every sentence earns its place.

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?

With a full output schema, detailed parameter descriptions, and safety annotations, the description covers the essential decision points: what it returns, when to use it, and which sibling handles the adjacent case. Could mention error behavior for missing tables, but the output schema and openWorldHint annotation cover the remaining surface for a simple describe-table tool.

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?

Schema description coverage is 100%, so all three parameters (table, profile, magentoRoot) are already fully documented with examples and env-var fallbacks. The description adds nothing about parameter semantics beyond the schema, which is the expected baseline-3 situation 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.

Purpose5/5

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

The description states a specific verb (returns), a precise resource (column definitions with name, type, nullable, keys, default), and names the data source (INFORMATION_SCHEMA). The output field list distinguishes it cleanly from siblings like list_tables (which returns table names) and get_table_indexes (which returns indexes rather than column definitions), so an agent can pick it without opening the schema.

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

Usage Guidelines5/5

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

The description gives an explicit when-to-use signal ('Use before writing JOINs') and names the precise alternative with its selection condition ('Use list_tables if you don't know the exact table name'). This routes the agent correctly across two closely related schema tools with no inference required.

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

detect_magento_environmentDetect Magento EnvironmentA
Read-onlyIdempotent

Probes the database schema to detect OSS vs Commerce (row_id staging), MSI, and B2B availability. Run this first on an unfamiliar installation before using edition-specific tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds only that it 'probes the database schema,' which is a minor behavioral detail (read-only probe) but does not disclose additional traits such as performance impact or potential errors. With annotations covering safety, the added value is limited.

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?

The description is two sentences with zero fluff. The core purpose (what it detects and that it should run first) is front-loaded, and the structure is efficient and clear.

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

Completeness5/5

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

The tool has an output schema, so return values are covered. Annotations cover safety and idempotency. The description explains what the tool detects and when to use it. Nothing essential is missing for an agent to call it correctly.

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?

Schema description coverage is 100%, so the baseline is 3. The description adds value by pointing to 'list_connection_profiles' for the profile parameter, which helps the agent determine valid values. It also clarifies the 'magentoRoot' default via env var or auto-discovery, which is context beyond the schema description.

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's function: 'Probes the database schema to detect OSS vs Commerce (row_id staging), MSI, and B2B availability.' It uses a specific verb ('probes') and resource ('database schema'), and explicitly lists what it detects. This distinguishes it from siblings like get_msi_stock_status or get_b2b_negotiable_quotes, which are specialized sub-queries.

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?

The description explicitly says 'Run this first on an unfamiliar installation before using edition-specific tools,' which tells the agent exactly when to use it. However, it does not name specific alternative tools or provide explicit 'when not to use' conditions, though the guidance implicitly covers this.

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

execute_select_queryExecute SELECT QueryA
Read-onlyIdempotent

Runs a read-only SELECT/SHOW/DESCRIBE/EXPLAIN against the Magento database. Auto-appends LIMIT 100 if missing. Parameter: sql (alias: query). Sensitive columns (password, token, cc_) are masked.

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlNoRead-only SQL starting with SELECT, SHOW, DESCRIBE, or EXPLAIN. Alias: query.
limitNoMax rows to return for SELECT queries. Defaults to 100. Hard cap: 1000.
queryNoAlias for sql — same parameter, alternative name.
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, which covers the safety profile. The description adds genuinely useful behavior beyond annotations: the auto-appended LIMIT 100 (prevents unbounded result sets) and the masking of sensitive columns (password, token, cc_). No contradiction between description and annotations.

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?

Three sentences with no filler. Core purpose is front-loaded, followed by the safety-relevant auto-limit, parameter note, and masking disclosure. Each sentence earns its place. Slightly more verbose than strictly necessary, but efficient for a tool with this much behavioral nuance.

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 raw SQL executor, the description is largely complete: allowed query types, auto-limit, masking behavior, and an output schema are all present. Combined with annotations covering the safety profile and idempotency, an agent has what it needs to invoke the tool and interpret results. Missing only explicit guidance on which sibling to reach for instead, which is covered under usage_guidelines.

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?

Schema coverage is 100%, so the input schema fully documents all five parameters, including the limit default (100) and hard cap (1000), the query alias, and the profile and magentoRoot overrides. The description adds only marginal value by restating the sql/query alias relationship and referencing the auto-limit. At full coverage, the baseline 3 is appropriate.

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 states a specific verb ('Runs') with an explicit resource ('the Magento database') and enumerates the allowed query types (SELECT/SHOW/DESCRIBE/EXPLAIN). This clearly differentiates it from the many specialized sibling tools (find_order_by_increment_id, get_indexer_status, etc.) as the raw SQL executor. No ambiguity about what this tool does.

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 gives no guidance on when to prefer this tool over its 46+ siblings, such as validate_select_query or explain_select_query. There is no when/when-not language or alternative routing. It's implied that this is for ad-hoc queries not covered by specialized finders, but that is left entirely to inference.

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

explain_select_queryExplain SELECT QueryA
Read-onlyIdempotent

Runs EXPLAIN on a validated SELECT query to show the execution plan without returning row data. Use to diagnose slow queries before running them on large Magento tables.

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlNoRead-only SQL starting with SELECT, SHOW, DESCRIBE, or EXPLAIN. Alias: query.
queryNoAlias for sql — same parameter, alternative name.
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds the key behavior that it 'does not return row data,' which is important contextual information beyond the annotations. It also implies it expects a validated SELECT query, aligning with the safe, read-only nature. This adds value without contradicting annotations.

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?

The description is two sentences with zero filler. The core action and effect are front-loaded in the first sentence, and the usage guidance is in the second. No redundant information. It is perfectly sized for a simple read-only 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 read-only diagnostic tool that has annotations covering safety and an output schema (which presumably documents the execution plan result), the description sufficiently conveys the purpose and usage. It doesn't explain error scenarios or the exact return format, but those are adequately covered by the output schema and annotations. It could mention that it works only on SELECT/SHOW/etc., but the schema already does that. Overall, it's complete enough for an agent to decide when to call it.

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?

Schema coverage is 100% – all four parameters (sql, query, profile, magentoRoot) have descriptions in the schema. The tool description does not add any parameter-specific information beyond what the schema already provides. The phrase 'validated SELECT query' mirrors the schema's restriction on SQL prefix. With full schema coverage, the baseline of 3 applies, and the description adds negligible value about parameters.

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 specific action ('Runs EXPLAIN'), the resource ('a validated SELECT query'), and the outcome ('shows the execution plan without returning row data'). This distinguishes it from siblings like execute_select_query and validate_select_query, even without naming them, because the verb 'EXPLAIN' and the explicit 'without returning row data' make the purpose unambiguous.

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?

The description provides a clear usage context: 'Use to diagnose slow queries before running them on large Magento tables.' It implies this tool is for pre-execution diagnosis, not for actually running queries. However, it does not explicitly mention alternatives or when NOT to use this tool (e.g., when you need actual row data). Sibling tool names like execute_select_query hint at the distinction, but the description itself doesn't lay out exclusions.

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

find_active_quote_by_emailFind Active Quote by EmailA
Read-onlyIdempotent

Returns the most recent active quote for a customer email. Does NOT return quote items — use get_active_quote_items with the returned quote_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesExact customer email address (full valid email). For name search use find_customers_by_name — partial strings like 'jigar' are rejected here.
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already establish readOnly and non-destructive behavior. The description adds valuable behavioral context beyond that: it clarifies the return scope (quote only, no items), specifies the uniqueness dimension (most recent active for a given email), and discloses the validation strictness (exact email required, partials rejected). It does not need to restate the annotations and adds useful operational details.

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?

The description is two sentences, with the core purpose in the first sentence and the essential caveat (no items, use sibling) in the second. Every sentence earns its place, and the most important information is front-loaded. The parameter descriptions are similarly tight and informative.

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

Completeness5/5

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

Given the tool's simplicity, the presence of an output schema, and annotations covering safety, the description fully equips an agent to call it correctly. It covers the return value, the exclusion of items, the alternative for items, and the email strictness. Nothing needed for correct invocation is missing.

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?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics for the primary parameter email by explaining exact-match behavior and the rejection of partial strings, which is critical for correct invocation. Profile and magentoRoot are standard overrides whose descriptions already clarify their purpose. This enhancement justifies a 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 states the function precisely: 'Returns the most recent active quote for a customer email.' It identifies the specific resource (quote), the filter (email), and the recency/status qualifiers. It also immediately differentiates from the sibling get_active_quote_items by explicitly stating what it does NOT return, making the tool's scope unambiguous.

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

Usage Guidelines5/5

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

The description gives explicit directional guidance: it tells the agent to use get_active_quote_items with the returned quote_id when quote items are needed, and the email parameter description reinforces the boundary by directing partial searches to find_customers_by_name and noting that partial strings are rejected. This is clear when-to-use and when-to-use-alternative guidance.

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

find_customer_by_emailFind Customer by EmailA
Read-onlyIdempotent

Exact email lookup on customer_entity (full valid email required). Returns order count summary. For partial name search use find_customers_by_name. Password hash is never returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesExact customer email address (full valid email). For name search use find_customers_by_name — partial strings like 'jigar' are rejected here.
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already establish readOnly, openWorld, idempotent, and non-destructive behavior. The description adds valuable security context by stating 'Password hash is never returned,' which is not implied by the annotations or schema. It also confirms the operation returns an order count summary, aligning with the output schema without repeating it.

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?

Four short, dense sentences each contribute distinct value: purpose, return basis, sibling routing, and a security guarantee. There is no filler or redundancy, and the most important operational detail (exact match) is front-loaded.

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

Completeness5/5

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

With an output schema present, return-value details are already covered. The description plus schema fully specify the input constraints, the alternative tool, the safety profile (via annotations), and the security guarantee. Nothing an agent needs to invoke or trust this tool is missing.

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?

Schema description coverage is 100%, so the parameter semantics are fully documented in the schema, including the exact-match requirement and rejection of partial strings. The tool description does not add additional parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.

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 a specific action ('Exact email lookup') on a specific resource ('customer_entity') with a required precondition ('full valid email required'). It also explicitly names the sibling tool find_customers_by_name for partial name searches, providing immediate differentiation without needing to inspect schemas.

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

Usage Guidelines5/5

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

The description gives an explicit when-to-use condition (exact email match) and names the alternative for the not-this case ('For partial name search use find_customers_by_name'). This directly answers the routing question an agent would have between the two sibling lookup tools.

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

find_customers_by_nameFind Customers by NameA
Read-onlyIdempotent

Searches customer_entity by firstname, lastname, or full name (LIKE). firstname/lastname/email are static columns on customer_entity — not EAV. For exact email use find_customer_by_email.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCustomer first name, last name, or partial name (LIKE search). Not for email — use find_customer_by_email.
limitNoMax customers to return (default 20).
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds value by explaining the LIKE (partial-match) behavior and the static-column vs EAV distinction, which are behavioral nuances not present in annotations. However, it does not address openWorldHint (e.g., potential for unexpected result scope), but that is a minor gap given the annotations cover the critical safety aspects.

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?

The description is three sentences, front-loaded with the core function and immediately clarifying the alternative. Every sentence earns its place: the search action, the static-column note, and the routing to find_customer_by_email. No fluff or redundancy.

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

Completeness5/5

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

Given the output schema exists and annotations cover safety, the description is complete for an agent to call correctly. It explains the search semantics, the data source, and the alternative tool, leaving no critical missing information. The tool's parameters are all documented in the schema, and the description adds the needed behavioral context.

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?

Schema description coverage is 100%, so all four parameters have clear descriptions in the input schema. The description adds little param-specific value beyond the schema—it reinforces the name parameter's LIKE behavior but does not explain limit/profile/magentoRoot beyond what the schema already provides. Baseline 3 is appropriate since the schema does the heavy lifting.

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 searches customer_entity by firstname, lastname, or full name using LIKE, and explicitly differentiates from find_customer_by_email for exact email searches. It also adds the technical clarification that these are static columns, not EAV, which further pinpoints the exact resource and behavior.

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

Usage Guidelines5/5

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

The description directly names the alternative tool (find_customer_by_email) and the condition that selects it ('For exact email'). It implicitly communicates when to use this tool (when you have a name, including partial names) and provides clear context about the search type, leaving no ambiguity about when to invoke it versus siblings.

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

find_order_by_increment_idFind Order by Increment IDA
Read-onlyIdempotent

Looks up a sales order by increment_id and returns order header plus line items (up to 50). Faster than writing JOINs manually. For payment details use execute_select_query on sales_order_payment.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.
increment_idYesSales order increment_id (e.g. '000000123'). Use find_order_by_increment_id instead of raw SQL.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive behavior, so the description's added value lies in disclosing the line-item limit (up to 50) and the performance benefit over raw SQL. This goes beyond annotations and is useful for an agent deciding whether to call it.

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?

Two sentences with zero waste. The primary action is front-loaded, followed by a performance note and a routing alternative. Every sentence earns its place, and the structure is easy for an agent to parse quickly.

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

Completeness5/5

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

For a simple lookup tool with one required parameter, full parameter documentation, an output schema, and safety annotations, this description is complete. It covers the key behavioral limit (50 items), differentiates from a sibling, and provides enough context for correct invocation without over-specifying.

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?

Schema description coverage is 100%, so the schema already documents all parameters, including an example for increment_id. The description adds minimal parameter-specific information beyond what's in the schema—it reiterates 'instead of raw SQL' and hints at scale, but doesn't need to compensate, so baseline 3 is appropriate.

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?

States a specific verb and resource ('looks up a sales order by increment_id') and clarifies the return scope ('order header plus line items'). It also differentiates from raw SQL and the execute_select_query sibling for payment details, making its purpose unambiguous.

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?

Provides clear context: it is faster than manual JOINs and explicitly names execute_select_query on sales_order_payment as the alternative for payment details. However, it only covers one alternative use case and doesn't enumerate broader when-not-to-use scenarios, so it's strong but not exhaustive.

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

find_product_by_skuFind Product by SKUA
Read-onlyIdempotent

Looks up catalog_product_entity by SKU. Returns entity_id, type_id, attribute_set_id, timestamps. For EAV attribute values use execute_select_query on catalog_product_entity_* tables — use get_eav_attribute first to find backend_type.

ParametersJSON Schema
NameRequiredDescriptionDefault
skuYesProduct SKU. Use find_product_by_sku instead of guessing EAV table joins.
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds valuable behavioral context: that it returns specific base-table fields and does NOT retrieve EAV attribute values, instead directing to other tools. This goes beyond annotations without contradicting them.

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?

Two sentences, front-loaded with the primary purpose and return fields, immediately followed by the precise alternative for EAV cases. No filler or repetition; every sentence earns its place.

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?

Given the tool's simplicity (a single-lookup by SKU), the description covers the essential behavior, return fields, and the limitation regarding EAV attributes, with a pointer to the correct alternative. The presence of an output schema covers return format details. It doesn't enumerate every edge case (e.g., SKU-not-found behavior), but given the output schema and annotations, the description is adequate and above average.

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?

Schema description coverage is 100%, so the baseline for parameter semantics is 3. The description text adds meaningful context for the sku parameter ('Use find_product_by_sku instead of guessing EAV table joins'), reinforcing its role as the primary lookup key. This increment justifies a score above baseline, though not the full 5 since no extra semantics are provided for the other two generic parameters (profile, magentoRoot).

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 states a specific verb ('looks up'), a precise resource ('catalog_product_entity by SKU'), and lists the returned fields (entity_id, type_id, attribute_set_id, timestamps). This clearly distinguishes it from other find_* tools (e.g., find_order_by_increment_id) by the target entity and purpose.

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

Usage Guidelines5/5

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

Explicitly instructs when not to use this tool and what to use instead: 'For EAV attribute values use execute_select_query...' and 'Use get_eav_attribute first to find backend_type.' Also reinforces the sku parameter usage with 'Use find_product_by_sku instead of guessing EAV table joins.' This provides clear context, exclusions, and alternatives.

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

get_active_quote_itemsGet Active Quote ItemsA
Read-onlyIdempotent

Returns quote_item rows for a quote_id with parent-child nesting (configurable/bundle). Does NOT return quote addresses — use execute_select_query on quote_address.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
quote_idYesActive quote entity_id from quote table.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already carry the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower. The description adds real behavioral value beyond those: the parent-child nesting structure for configurable/bundle items and the explicit absence of address data. No contradiction with annotations — 'Returns' aligns with readOnlyHint=true.

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?

Two sentences with zero waste: the first front-loads the core function and the nesting nuance, the second delivers the exclusion and the sibling route. Every clause earns its place, and nothing is repeated from the schema or annotations.

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?

Given an output schema exists (covering return structure) and rich annotations declare the safety profile, the description covers the essential behavioral nuance (nesting) and the key exclusion. Two minor gaps: the meaning of 'active' in the tool name is never defined, and 'configurable/bundle' nesting could use one clause on how it appears in output. Neither blocks correct invocation.

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?

Schema coverage is 100%, so all three parameters (profile, quote_id, magentoRoot) are already documented in the schema with their own descriptions. The tool description adds no parameter-level detail beyond what the schema provides, which matches the baseline-3 case 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.

Purpose5/5

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

States a specific verb+resource ('Returns quote_item rows for a quote_id') with precise scope, and adds the distinguishing nesting behavior ('parent-child nesting (configurable/bundle)'). It differentiates from siblings by explicitly naming what it does NOT return (quote addresses), which no sibling description ambiguity could survive.

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?

Gives an explicit exclusion with a named alternative: 'Does NOT return quote addresses — use execute_select_query on quote_address.' This routes the agent away from a tempting misuse. It lacks broader when-to-use framing (e.g., when debugging a quote's item breakdown), but the negative routing is concrete and actionable.

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

get_b2b_negotiable_quotesGet B2B Negotiable QuotesA
Read-onlyIdempotent

Returns active negotiable quotes for a B2B company_id. Requires Adobe Commerce B2B. Does NOT return requisition lists.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
company_idNoB2B company entity_id. Omit to list recent negotiable quotes (when B2B enabled).
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing safety. The description adds valuable behavioral context: the B2B requirement and the exclusion of requisition lists. It does not contradict annotations and enhances transparency regarding prerequisites and scope.

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?

The description is three concise sentences, each adding distinct value: purpose, requirement, and exclusion. It is front-loaded with the core action and avoids redundancy, making it easy for an agent to scan and understand.

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 read-only tool with an output schema and all optional parameters, the description covers the essential aspects: what it returns, a prerequisite, and a scope exclusion. It doesn't explain 'active' or sorting, but the output schema likely covers return structure, so the missing detail is minor.

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?

Schema description coverage is 100%, so each parameter is already documented in the schema. The description does not add additional parameter-level details beyond what the schema provides. Per calibration, this earns a baseline 3 since the schema carries the parameter context.

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 states a specific verb ('Returns'), resource ('active negotiable quotes'), and scope ('for a B2B company_id'). It also differentiates by explicitly excluding requisition lists, making it clear what the tool does not do. Though it doesn't name a sibling, the negative statement effectively distinguishes it from related quote tools.

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?

The description provides a clear prerequisite ('Requires Adobe Commerce B2B') and an exclusion ('Does NOT return requisition lists'), giving context for when the tool is applicable. However, it does not explicitly recommend this tool over alternatives or state when to use a different tool, so it falls just short of full guidance.

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

get_catalog_rule_priceGet Catalog Rule PriceA
Read-onlyIdempotent

Returns indexed catalog rule price for a SKU on a website and customer group for today. Does NOT calculate rules live — reads catalogrule_product_price index only.

ParametersJSON Schema
NameRequiredDescriptionDefault
skuYesProduct SKU. Use find_product_by_sku instead of guessing EAV table joins.
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
website_idNoWebsite ID for catalog rule price scope (default 1).
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.
customer_group_idNoCustomer group ID for catalog rule price (default 0 = NOT LOGGED IN).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds crucial context beyond these: it reads only the catalogrule_product_price index, meaning results are not live and may be stale, and it is scoped to today's prices. This behavioral trait is essential for correct interpretation and is not covered by the annotations. No contradiction exists.

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?

Two sentences, zero filler. The key functional constraint (reads index, not live) is front-loaded and the temporal scope ('for today') is included. Every word earns its place.

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

Completeness5/5

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

Given the low complexity, 5 parameters with only 1 required and defaults for others, and the presence of an output schema, the description covers the essential behavior and caveats. An agent knows exactly what to expect: a read-only, indexed, today-scoped price lookup. The lack of details about missing-rule handling is acceptable because the output schema likely covers the return shape, and the index-based note implies the behavior.

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 100% schema description coverage, each parameter already has a detailed explanation (sku, profile, website_id, magentoRoot, customer_group_id). The description does not add additional semantic detail; it simply reiterates the role of sku, website, and customer group in the broader context. It adds no new information beyond the schema, so baseline 3 is appropriate.

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 states a specific verb ('Returns indexed catalog rule price') and scopes it precisely to a SKU, website, customer group, and today. It also explicitly distinguishes what it does not do ('Does NOT calculate rules live'), making the tool's function unambiguous and clearly differentiated from potential alternatives.

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?

The description provides clear guidance on when to use this tool: it reads the catalogrule_product_price index and is not a live calculator. This implies that the index may be stale and that live rule evaluation is out of scope, which helps an agent decide to use this instead of a hypothetical recalculation tool. However, it does not name an explicit alternative or describe the exact conditions under which this tool should be preferred over other index-based reads.

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

get_cms_blockGet CMS BlockA
Read-onlyIdempotent

Looks up a CMS block by identifier (e.g. 'footer_links') or numeric block_id. Returns title, is_active, timestamps. Applies Commerce staging filter when present. For blocks embedded in a page use audit_cms_page_blocks.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
block_idNoCMS block numeric ID (block_id). Use instead of identifier when known.
identifierNoCMS identifier (e.g. 'home', 'footer-links').
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering the safety profile. The description adds the staging filter behavior and the fields returned, which are behavioral details not present in annotations. It doesn't mention pagination or error cases, but for a read-only lookup the given context is sufficient. The addition of the staging filter specifically addresses a non-obvious behavior, raising above baseline 3.

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?

Three sentences with no fluff. The core lookup behavior is stated first, followed by return fields and the staging filter, and the sibling pointer is at the end. Every sentence earns its place. The description is front-loaded with the most important action, and the sibling note is placed after primary usage, which is logical.

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

Completeness5/5

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

Given the output schema exists (though not shown in full, the signal says 'Has output schema: true'), the description need not explain return values in detail. The annotations cover safety and idempotency. The description covers the core lookup, optional staging filter, and points to the sibling. For a read-only tool with zero required parameters, this is complete. No critical information is missing.

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?

Schema description coverage is 100%, so each parameter is already well-documented in the schema (e.g., 'block_id' says 'Use instead of identifier when known', 'profile' mentions override, 'magentoRoot' explains the default). The description itself adds little beyond the schema—it restates the identifier/block_id distinction but relies on the schema for detailed semantics. Baseline 3 is appropriate when the schema carries the parameter documentation.

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 looks up a CMS block by identifier or block_id, lists specific return fields (title, is_active, timestamps), mentions the staging filter, and distinguishes from audit_cms_page_blocks. The verb 'looks up' and the resource 'CMS block' are explicit, and the sibling differentiation is direct. This is a model example of purpose clarity.

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

Usage Guidelines5/5

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

The description provides clear usage context: when to look up a block directly (by identifier or ID) and when to use audit_cms_page_blocks instead ('For blocks embedded in a page'). It also implies the staging filter is automatically applied 'when present', alerting the agent to a contextual condition. No alternative is missed; the guidance is explicit and actionable.

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

get_cms_pageGet CMS PageA
Read-onlyIdempotent

Looks up a CMS page by identifier (e.g. 'home'). Returns title, content, is_active, store assignments, and embedded block_id references parsed from content. Applies Commerce staging filter (updated_in) when present.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
identifierYesCMS identifier (e.g. 'home', 'footer-links').
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive behavior. The description adds a non-obvious behavioral detail: the staging filter (updated_in) applied when present, which is valuable beyond what annotations provide. No contradictions.

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?

Two sentences with zero waste. The primary purpose is front-loaded, followed by return fields and a behavioral nuance (staging filter). Every clause earns its place.

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

Completeness5/5

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

Given the output schema exists, the description doesn't need to enumerate all return values, yet it highlights key fields and the staging behavior. The tool is simple (one required param) and the description covers all necessary operational aspects. Nothing critical is missing.

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?

Schema coverage is 100%, so parameters (profile, identifier, magentoRoot) are fully documented there. The description only reiterates the identifier example, adding no new semantics beyond the schema. Baseline 3 is appropriate given full schema coverage.

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 a specific verb ('looks up'), identifies the resource ('CMS page'), and specifies the key ('identifier'), with a clarifying example. It also distinguishes itself from sibling tools like get_cms_block and audit_cms_page_blocks by focusing on page lookup with parsed block references.

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?

The description provides clear context (lookup by identifier, staging filter) but does not explicitly name alternatives or state when NOT to use this tool. However, the purpose is so specific that an agent can infer when to choose it over related tools like get_cms_block or audit_cms_page_blocks.

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

get_configurable_childrenGet Configurable ChildrenA
Read-onlyIdempotent

Returns simple product children linked to a configurable parent SKU via catalog_product_super_link. Does NOT return super attributes — use execute_select_query on catalog_product_super_attribute.

ParametersJSON Schema
NameRequiredDescriptionDefault
skuYesProduct SKU. Use find_product_by_sku instead of guessing EAV table joins.
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the specific underlying table (catalog_product_super_link) and clarifies the scope of returned data (children only), which complements annotations without contradicting them. No side effects or auth details are needed given the read-only hint.

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?

Two concise sentences with zero fluff. The main purpose is front-loaded, and the important caveat (does not return super attributes) is stated immediately, followed by the routing instruction. Every word earns its place.

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

Completeness5/5

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

For a simple read-only lookup with a complete output schema, annotations covering safety, and full parameter documentation in the schema, the description succinctly explains what the tool does and what it excludes. Nothing an agent needs to call it correctly is missing.

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?

Schema description coverage is 100%, so the schema already documents all three parameters (sku, profile, magentoRoot) with helpful context (e.g., 'Use find_product_by_sku instead of guessing EAV table joins'). The tool description itself adds no additional parameter-level semantics beyond what the schema already provides, so the baseline of 3 is appropriate.

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?

States a specific verb (Returns), resource (simple product children), and mechanism (via catalog_product_super_link). Explicitly distinguishes from what it does not return (super attributes) and names the sibling tool to use instead, making it unambiguous.

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

Usage Guidelines5/5

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

Explicitly states the negative case ('Does NOT return super attributes') and directly recommends the alternative (`execute_select_query` on `catalog_product_super_attribute`). This gives clear when-to-use and when-not-to-use guidance beyond the generic purpose.

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

get_connection_statusGet Connection StatusA
Read-onlyIdempotent

Tests database connectivity for the active MAGENTO_SQL_PROFILE. Returns host, database, latency, and error details if unreachable. Use before running queries on an unfamiliar environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hostYes
portYes
userYes
errorNo
profileYes
databaseYes
connectedYes
latencyMsNo
magentoRootYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering safety. The description adds value by specifying what the tool returns (host, database, latency, error details if unreachable), which is behavioral detail beyond the annotations. It does not contradict the annotations, and the described behavior is consistent with read-only operation.

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?

The description is three concise sentences with zero fluff. It front-loads the primary purpose, then explains return details, and concludes with a usage recommendation. Every sentence earns its place, and the structure is clear and scannable.

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

Completeness5/5

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

For a read-only diagnostic tool with two optional params and an output schema, the description covers purpose, return behavior, and usage context. It does not need to detail the output schema since that exists separately. Nothing an agent needs to call this tool correctly is missing.

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?

Schema coverage is 100% — both parameters (profile and magentoRoot) are already described in the schema. The description does not add any parameter-specific meaning, but the baseline for high coverage is 3. No additional information is needed, so a 3 is appropriate.

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 states a specific verb ('Tests') and resource ('database connectivity') plus the exact outputs (host, database, latency, error details). This clearly distinguishes it from siblings like get_indexer_status or list_connection_profiles, which have different targets. The wording is precise and unambiguous.

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?

The description gives an explicit usage context: 'Use before running queries on an unfamiliar environment.' This tells an agent when to call the tool, but it does not explicitly mention alternatives or when not to use it. Still, the context is clear and non-misleading, so it earns a 4 rather than a 5.

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

get_cron_scheduleGet Cron ScheduleA
Read-onlyIdempotent

Returns recent cron_schedule entries ordered by newest first. Filter by job_code pattern optionally. Use to debug stuck, missed, or error cron jobs.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of recent cron_schedule rows to return (default 30, max 200).
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.
job_code_patternNoCron job_code LIKE pattern (e.g. 'indexer_%', 'catalog_%').

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the operation's safety profile is fully covered. The description adds behavioral context by stating the ordering ('newest first') and that it returns 'recent' entries, which implies a limit based on the default parameter. This is useful but modest beyond the annotations.

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?

The description is two concise sentences. The first sentence states the primary action and ordering, and the second sentence provides the use case and optional filter. No redundancy or extraneous details; the essential information is front-loaded.

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

Completeness5/5

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

The tool has an output schema, so return values are covered. The description explains what the tool returns (recent entries ordered), how to filter, and when to use it. Standard parameters like profile and magentoRoot are already documented in the schema. Nothing needed for correct invocation is missing.

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?

Schema description coverage is 100%, so every parameter (limit, profile, magentoRoot, job_code_pattern) is already documented in the schema. The description mentions the job_code_pattern filter but adds no new meaning beyond what the schema provides. Baseline 3 applies here.

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 explicitly states the verb ('Returns'), the specific resource ('recent cron_schedule entries'), and the ordering ('newest first'). It also mentions the optional filter by job_code pattern. This clearly differentiates it from siblings like get_failed_cron_jobs, which target specific failure states rather than general recent entries.

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?

The description provides clear guidance on when to use this tool: 'Use to debug stuck, missed, or error cron jobs.' It also notes the optional filter condition. However, it does not explicitly mention when not to use it or name alternatives like get_failed_cron_jobs, though the intended context is evident.

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

get_db_queue_backlogGet DB Queue BacklogA
Read-onlyIdempotent

Returns message counts grouped by queue name and status from internal DB queues (when not using RabbitMQ). Does NOT consume messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
queue_nameNoQueue name filter. Omit for all queues.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds a specific behavioral note: 'Does NOT consume messages', which is valuable context beyond the generic read-only hint. It also mentions the output grouping, though that is likely covered by the output schema. There is no contradiction, and the added non-consumption detail enhances transparency.

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?

The description is extremely concise: two sentences with no filler. The main purpose is front-loaded, followed by a critical caveat (non-consumption). Every word earns its place, and the structure is ideal for quick scanning by an agent.

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?

Given the output schema exists, the description need not explain return values. The tool has three optional parameters, all documented in the schema. The description covers the core purpose and the key condition (non-RabbitMQ). It does not mention error conditions or pagination, but those are likely covered by the output schema or are acceptable omissions. The description is complete enough for effective use.

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?

The schema covers all parameters with detailed descriptions (100% coverage). The tool description itself does not add any parameter semantics beyond what the schema provides. Since the schema already explains each parameter thoroughly, a baseline score of 3 is appropriate here. The description doesn't need to repeat parameter info, and it doesn't.

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 function: 'Returns message counts grouped by queue name and status from internal DB queues'. It specifies the verb (returns), the resource (message counts), and the scope (internal DB queues) with a condition ('when not using RabbitMQ'). It also distinguishes itself by noting 'Does NOT consume messages', which clarifies it's a read operation. This effectively differentiates it from any potential message-consuming tools, even though none are in the sibling list.

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?

The description provides context on when to use the tool by mentioning 'when not using RabbitMQ', implying that other tools are used for RabbitMQ-based queues. However, it does not explicitly name alternative tools or state when not to use it. The reference to 'list_connection_profiles' in the parameter schema also gives contextual guidance, but this is outside the main description. Overall, usage guidance is clear but not as explicit as it could be.

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

get_eav_attributeGet EAV AttributeA
Read-onlyIdempotent

Looks up an EAV attribute by entity_type_code (alias: entity_type) and attribute_code. Returns backend_type and query guidance. static backend_type → query base entity table, not EAV value tables.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
entity_typeNoAlias for entity_type_code (e.g. 'customer', 'catalog_product').
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.
attribute_codeYesEAV attribute code (e.g. 'name', 'status', 'price', 'visibility').
entity_type_codeNoEAV entity type code (e.g. 'catalog_product', 'customer', 'catalog_category').

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the description doesn't need to repeat that. It adds valuable guidance about interpreting the result: 'static backend_type → query base entity table, not EAV value tables,' which clarifies a behavioral nuance beyond what annotations and schema provide.

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?

The description is two concise sentences, front-loaded with the core lookup purpose and the key parameters. The query-guidance note is appended neatly without bloat, and every sentence earns its place.

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?

With a full output schema and complete parameter descriptions, the description doesn't need to repeat those. It adds the crucial query guidance for interpreting backend_type, which is essential for effective use. The only minor gap is that the description implies both parameters are needed while the schema marks entity_type_code optional, but that's a schema concern more than a description gap.

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?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds the alias relationship between entity_type_code and entity_type, and it highlights the two most important parameters (entity_type_code and attribute_code) in the purpose statement, giving the agent better focus.

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 states a specific verb ('looks up'), a clear resource ('EAV attribute'), and the two key discriminators (entity_type_code and attribute_code). It immediately distinguishes from siblings like get_product_attributes by focusing on a single attribute lookup with backend_type guidance.

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 description implies the primary use case—looking up a specific EAV attribute's metadata—but does not explicitly mention when to prefer this over alternative tools like get_product_attributes or when not to use it. There are no exclusions or alternative routing, so an agent must infer the appropriate context from the naming and description.

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

get_failed_cron_jobsGet Failed Cron JobsA
Read-onlyIdempotent

Returns failed or stuck cron_schedule jobs from the last 24 hours. Does NOT fix crons — use get_cron_schedule for broader history.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered. The description adds useful context about the returned scope (last 24 hours, failed/stuck status) and explicitly confirms it is not a fixer, aligning with the non-destructive annotations. No contradiction.

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?

Two sentences, front-loaded with the primary purpose, followed by a critical exclusion and alternative. Every word earns its place; no redundancy or fluff.

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

Completeness5/5

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

For a simple read-only query tool with two optional parameters and an output schema, the description covers purpose, scope, and alternatives. The output schema handles return values, and annotations handle safety. Nothing needed for an agent to call it correctly is missing.

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?

Schema description coverage is 100%, with detailed descriptions for both 'profile' and 'magentoRoot'. The description does not mention parameters, but the schema already documents them sufficiently. Baseline 3 is appropriate since the description adds no extra parameter semantics beyond what the schema provides.

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 action ('Returns'), the resource ('cron_schedule jobs'), and the specific filter (failed or stuck) with a time window (last 24 hours). It also distinguishes itself from the sibling get_cron_schedule by noting that tool covers broader history, eliminating ambiguity.

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

Usage Guidelines5/5

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

Explicitly states what the tool does NOT do ('Does NOT fix crons') and points to an alternative ('use get_cron_schedule for broader history'). This gives clear guidance on when to choose this tool versus the sibling, leaving no inference needed.

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

get_foreign_keysGet Foreign KeysA
Read-onlyIdempotent

Returns foreign key relationships for a table from INFORMATION_SCHEMA. Use before writing JOINs to understand referential links. Use describe_table for column details.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesMagento database table name (e.g. sales_order, catalog_product_entity).
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the source (INFORMATION_SCHEMA) and the purpose, which is useful behavioral context beyond the annotations. It does not mention performance or failure modes, but given the annotations' strength, this is acceptable.

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?

The description is two sentences with zero waste. The primary action is front-loaded, followed by usage guidance and an alternative. Every word earns its place.

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

Completeness5/5

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

The tool is simple, all parameters are documented in the schema, and an output schema exists (so return format is not the description's responsibility). The description provides sufficient context for an agent to call the tool correctly without missing information.

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?

Schema description coverage is 100%, so all three parameters (table, profile, magentoRoot) already have descriptions that explain their meaning and defaults. The description adds no extra parameter context, so with high coverage the baseline of 3 is appropriate.

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?

States a specific verb ('Returns') and resource ('foreign key relationships for a table') and names the source ('from INFORMATION_SCHEMA'). It clearly distinguishes from siblings like describe_table and get_table_indexes, so an agent knows exactly what this tool does.

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

Usage Guidelines5/5

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

Explicitly instructs when to use: 'Use before writing JOINs to understand referential links.' It also names the alternative for column details ('Use describe_table'), making the decision between tools unambiguous.

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

get_heavy_log_tablesGet Heavy Log TablesA
Read-onlyIdempotent

Returns sizes of common Magento log/visitor tables. Does NOT truncate tables — planning aid for DB maintenance.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description reinforces this by explicitly stating 'Does NOT truncate tables', which adds clarity about its non-destructive nature beyond the generic annotations. It also frames it as a planning aid, indicating no 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.

Conciseness5/5

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

A single sentence that conveys purpose, safety, and use context without any fluff. The information is front-loaded and complete.

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?

The tool has an output schema (not shown) so return values need not be described. The description covers what the tool does, its non-destructive nature, and its intended use. It doesn't list which specific tables are 'common', but that's not essential for calling it. Given the annotations and schema, the description is sufficiently complete.

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?

Schema description coverage is 100%, both 'profile' and 'magentoRoot' are well-documented in the schema. The description adds no additional parameter information, so baseline 3 applies.

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 explicitly states the tool 'returns sizes of common Magento log/visitor tables' and clarifies it is a 'planning aid for DB maintenance'. It is specific about the resource (log/visitor tables) and the action (returns sizes), distinguishing it from siblings like get_largest_tables which target all tables.

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?

The description frames the tool as a 'planning aid for DB maintenance', implying it is for read-only analysis before cleanup. It does not explicitly contrast with alternatives or state when not to use it, but the context is clear. Lacks exclusions but provides a clear use case.

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

get_indexer_statusGet Indexer StatusA
Read-onlyIdempotent

Returns indexer_state and mview_state rows. Use to diagnose stale indexers, 'reindex required', or stuck mview consumers. Does NOT trigger reindex — CLI: bin/magento indexer:reindex.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds a valuable behavioral note that the tool does NOT trigger reindex, which is more specific than the abstract read-only hint. This goes beyond the annotations to clarify side-effect behavior, so a 4 is appropriate.

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?

Two sentences with zero filler. The main purpose is front-loaded, the usage guidance is bundled, and the CLI alternative is provided without extra words. Every sentence earns its place.

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

Completeness5/5

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

The tool has an output schema (so return values are defined), annotations for safety, and full schema coverage for parameters. The description adds the diagnostic intent and the no-trigger caveat. Nothing an agent needs to decide when to call or what to expect is missing.

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?

Schema description coverage is 100% and both parameters ('profile' and 'magentoRoot') are fully described in the schema. The tool description adds no parameter-level detail beyond what the schema already provides, so it hits the baseline of 3 – the schema carries the burden and does so completely.

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 states a specific verb ('Returns') and specific resources ('indexer_state and mview_state rows'). It clearly defines the tool's diagnostic purpose (stale indexers, 'reindex required', stuck mview consumers) and is distinct from any sibling tool in the list. Even without naming a sibling, the specificity leaves no ambiguity about what this tool does.

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

Usage Guidelines5/5

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

It explicitly says when to use the tool ('Use to diagnose stale indexers, 'reindex required', or stuck mview consumers') and what it does NOT do ('Does NOT trigger reindex'). It also provides an alternative action (CLI: bin/magento indexer:reindex). This gives clear usage context and an exclusion, leaving no doubt about appropriate invocation.

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

get_largest_tablesGet Largest TablesA
Read-onlyIdempotent

Returns the biggest Magento tables by storage size (DATA + INDEX) from INFORMATION_SCHEMA. Use to find bloated tables before running broad SELECTs. Row counts are approximate for InnoDB.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of largest tables to return (default 20, max 100).
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds a useful behavioral detail beyond annotations: 'Row counts are approximate for InnoDB.' This warns about data precision and adds value without contradicting the annotations.

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?

Two sentences, no wasted words. The primary purpose is front-loaded, and the usage guidance follows immediately. Everything is relevant and to the point.

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 read-only listing tool with no required parameters and smooth schema coverage (100% param descriptions, output schema present), the description is complete enough. It covers storage metrics and the approximate-row-count caveat. It does not mention pagination or specific RETURN format, but the output schema likely covers that.

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?

Schema description coverage is 100%, and all three parameters have detailed descriptions (limit bounds, profile override, magentoRoot path). The description itself does not add additional meaning beyond what the schema already provides, so the baseline of 3 applies.

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 states a specific verb ('Returns'), a precise resource ('biggest Magento tables by storage size'), and the source ('INFORMATION_SCHEMA'). It also clarifies the metric (DATA + INDEX), which differentiates it from siblings like list_tables or get_heavy_log_tables that might focus on other criteria.

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?

The second sentence gives a clear when-to-use: 'Use to find bloated tables before running broad SELECTs.' This is actionable context. However, it does not mention any alternatives or explicitly state when not to use it, which would push to a 5.

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

get_magento_configGet Magento ConfigA
Read-onlyIdempotent

Reads store configuration from core_config_data using a path LIKE pattern (pathPattern, alias: path). Returns value_status (set/empty/null) and inherited default-scope value when scoped rows are empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoAlias for pathPattern.
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.
pathPatternNocore_config_data path pattern (SQL LIKE). Examples: 'catalog/%', 'web/unsecure/%'. Alias: path.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context on top: it returns value_status (set/empty/null) and an inherited default-scope value when scoped rows are empty. It does not contradict any annotation, and it gives the agent insight into edge-case output.

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?

The description is two sentences with no filler. The first sentence front-loads the action, resource, and pattern; the second efficiently communicates the output behavior. Every piece of prose earns its place, and the text is compact enough for quick parsing.

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?

With an output schema present, the description does not need to detail return fields, and it doesn't. It covers the core behavior, the matching semantics, and the important inherited-value behavior. Minor omissions (e.g., whether multiple matches are returned, or implications of the profile parameter) are acceptable given the output schema and parameters are already documented elsewhere.

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?

The schema description coverage is 100%, and each parameter is already documented in detail (e.g., pathPattern is described as 'core_config_data path pattern (SQL LIKE)' with examples, and the alias is noted). The description essentially repeats the LIKE pattern and alias without adding new parameter semantics. Since the schema carries the burden, a baseline of 3 is appropriate.

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 states a specific verb ('Reads'), a concrete resource ('store configuration from core_config_data'), and a distinct mechanism ('path LIKE pattern'), which sharply distinguishes it from sibling tools. It also previews the return semantics (value_status and inherited default-scope value), so an agent knows exactly what to expect. None of the sibling names overlap with this config-read niche.

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?

The description clearly implies when to use it (when a store configuration value is needed from core_config_data) but does not explicitly state when not to use it or point to an alternative, since there is no closely competing sibling. It also notes the LIKE pattern behavior, which helps an agent decide if this is the right tool versus an exact-match query. Lacks an explicit 'use X instead when...' clause, so a 4 is appropriate.

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

get_module_versionsGet Module VersionsA
Read-onlyIdempotent

Reads installed module schema/data versions from setup_module. Optionally filter by module name pattern (e.g. 'Magento_Catalog', 'Brainvire_%'). Use to verify module upgrades applied correctly.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.
module_patternNoModule name LIKE pattern (e.g. 'Magento_%', 'Brainvire_%'). Omit for all modules.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds that it reads from setup_module and filters by LIKE pattern, which is useful context beyond the annotations. It doesn't contradict any annotation and provides clear behavioral transparency about where data comes from.

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?

The description is two sentences with zero fluff. It front-loads the core action (reads from setup_module), then adds the optional filter, and ends with the intended use case. Every word earns its place, making it highly efficient and easy to parse.

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

Completeness5/5

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

The tool is simple, read-only, with an output schema present (so return values don't need to be explained). The description fully covers what it does and when to use it. There is no missing critical information for an agent to correctly invoke and interpret results.

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?

The input schema has 100% coverage with each parameter well-described (profile, magentoRoot, module_pattern). The description adds example values and clarifies that module_pattern is a LIKE pattern and optional. However, this adds minimal additional meaning beyond the schema descriptions, so a baseline 3 is appropriate.

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 reads module schema/data versions from the setup_module table, specifying the exact resource and action. It also distinguishes itself from other read-only tools by focusing on module version verification, which is a specific use case. The verb 'Reads' is concrete and the target table is named.

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?

The description provides a clear use case: 'Use to verify module upgrades applied correctly.' This tells the agent when to use the tool. However, it doesn't explicitly contrast with alternative tools (e.g., get_magento_config for configuration values), but the context is clear enough for a read-only version check. Minor gap since alternatives aren't named.

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

get_msi_stock_statusGet MSI Stock StatusA
Read-onlyIdempotent

Returns MSI physical qty, reservation offset, and salable qty per source for a SKU. Requires MSI tables. For legacy stock use find_product_by_sku.

ParametersJSON Schema
NameRequiredDescriptionDefault
skuYesProduct SKU. Use find_product_by_sku instead of guessing EAV table joins.
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
stock_idNoMSI stock_id (default 1 = Default Stock).
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds the prerequisite 'Requires MSI tables', which is useful context beyond the annotations. It does not discuss error behavior or return format, but given the annotations cover safety and the output schema exists, the added prerequisite is sufficient to raise it above the baseline.

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?

The description is two compact sentences. The first sentence states the result and scope, the second gives a prerequisite and an alternative. No wasted words, and the critical distinction is front-loaded.

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

Completeness5/5

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

Given the tool has an output schema and comprehensive annotations, the description covers the essential purpose, prerequisite, and routing information. An agent can confidently call it for MSI stock queries and know when to use the legacy alternative. Nothing needed for proper invocation appears missing.

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?

Schema description coverage is 100%, so the schema already documents all four parameters with helpful details (e.g., sku guidance, profile override, stock_id default). The tool description adds 'per source' which hints at response granularity, but this is not directly tied to any parameter. The description adds minimal parameter-specific semantics beyond the schema, so it meets the baseline.

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 verb 'Returns', specifies the resource ('MSI physical qty, reservation offset, and salable qty per source for a SKU'), and differentiates from the sibling find_product_by_sku by noting 'For legacy stock use find_product_by_sku'. This provides precise purpose and distinguishes it from alternatives.

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

Usage Guidelines5/5

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

It explicitly states 'Requires MSI tables' as a prerequisite and directs legacy-stock users to find_product_by_sku. The schema for the sku param reinforces this by advising to use find_product_by_sku instead of guessing EAV joins. Clear guidance on when to use this tool vs. alternatives.

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

get_order_shipment_tracksGet Order Shipment TracksA
Read-onlyIdempotent

Returns shipment tracking numbers and carriers for an order increment_id. Does NOT return shipment line items.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.
increment_idYesSales order increment_id (e.g. '000000123'). Use find_order_by_increment_id instead of raw SQL.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior, so the bar is lower. The description adds a valuable behavioral detail—that it does not return shipment line items—which is not captured in annotations. This extra clarity about the return scope goes beyond the structured fields.

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?

Two sentences with no filler: the first sentence states the core purpose, and the second adds a critical limitation. The key information is front-loaded, and every word earns its place.

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

Completeness5/5

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

Given that an output schema exists, the description sufficiently covers the tool's purpose and a key limitation. No critical information is missing for an agent to decide when to call this tool and what to expect from the return. The common parameters are also fully documented in the schema.

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?

Schema description coverage is 100%, and the description does not add any parameter-specific semantics beyond what the schema already documents. The schema fully describes 'increment_id', 'profile', and 'magentoRoot', so the description adds no extra value for parameters; baseline 3 is appropriate.

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 verb 'Returns' and the exact resource ('shipment tracking numbers and carriers') scoped to an order increment_id. It is specific and distinguishes itself from other unrelated sibling tools, leaving no ambiguity about what the tool does.

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?

The description provides a clear context (for an order increment_id) and a negative guideline ('Does NOT return shipment line items'), which implicitly tells an agent not to expect line items and to seek another tool if needed. However, it does not name an alternative, so it falls short of the explicit 'when-not/alternatives' criterion for a 5.

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

get_order_tax_breakdownGet Order Tax BreakdownA
Read-onlyIdempotent

Returns tax rates and amounts applied to an order by increment_id. Does NOT recalculate tax — reads persisted sales_order_tax rows.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.
increment_idYesSales order increment_id (e.g. '000000123'). Use find_order_by_increment_id instead of raw SQL.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable context that the data is persisted and not recalculated, which goes beyond annotations and clarifies the nature of the read.

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?

The description is a single sentence plus a brief note, with the primary action stated first and the clarifying constraint (no recalculation) immediately after. Every word earns its place; no filler or repetition.

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?

Given the rich annotations, a 100%-described schema, and an output schema handling return values, the description covers the essential behavior. It could mention preconditions like connection profile requirements, but those are handled by other tools and the schema. Minor gap only.

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?

The schema description coverage is 100% for all three parameters, so the schema already documents them thoroughly. The description only repeats that the lookup is by increment_id, adding no new meaning beyond what the schema provides. Baseline 3 is appropriate.

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 states a specific verb (Returns), a clear resource (tax rates and amounts on an order), and the identifier (increment_id). It also clarifies what it does NOT do (recalculate tax), which distinguishes it from calculation tools and it clearly differs from sibling find_order_by_increment_id.

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 description clarifies scope by stating it reads persisted sales_order_tax rows and does not recalculate, but it never explicitly names an alternative or says when to prefer this over other order-related tools. Usage timing is implied rather than directed.

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

get_product_attributesGet Product AttributesA
Read-onlyIdempotent

Returns common EAV attributes (name, price, status, visibility, url_key) for a SKU with store scope fallback. Does NOT return all attributes — use get_eav_attribute + execute_select_query for custom attributes.

ParametersJSON Schema
NameRequiredDescriptionDefault
skuYesProduct SKU. Use find_product_by_sku instead of guessing EAV table joins.
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
store_idNoStore ID for scoped EAV values (0 = admin default, use store view ID for frontend values).
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is fully covered. The description adds valuable behavior beyond annotations: the 'store scope fallback' mechanism and the limitation to a fixed attribute subset. This gives the agent a clearer picture of runtime behavior without contradicting annotations.

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?

Two sentences, front-loaded with the core purpose and attribute list, then the alternative tool reference. Every word earns its place; no filler or redundant detail. Excellent structure for an agent to quickly parse.

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

Completeness5/5

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

With an output schema present (returns are documented), annotations covering safety, and the description specifying scope and limitations, nothing essential is missing. An agent has all the information needed to decide when to call and what to expect.

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?

Schema description coverage is 100%, so every parameter (sku, profile, store_id, magentoRoot) is already documented. The description adds no param-level semantics beyond what the schema provides; the attribute list is output behavior, not parameter guidance. Per the baseline rule, a 3 is appropriate.

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?

States a specific verb ('Returns') and resource ('common EAV attributes') with an explicit list of attributes (name, price, status, visibility, url_key) and scope ('store scope fallback'). It also names the sibling get_eav_attribute to differentiate, making it clear this is not the catch-all attribute tool.

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

Usage Guidelines5/5

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

The description explicitly tells the agent when not to use this tool and what to use instead: 'Does NOT return all attributes — use get_eav_attribute + execute_select_query for custom attributes.' The schema further reinforces usage by advising find_product_by_sku for looking up SKUs. No ambiguity remains.

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

get_product_categoriesGet Product CategoriesA
Read-onlyIdempotent

Returns category assignments for a product SKU with category path and name. Does NOT return full category tree — use execute_select_query on catalog_category_entity for hierarchy.

ParametersJSON Schema
NameRequiredDescriptionDefault
skuYesProduct SKU. Use find_product_by_sku instead of guessing EAV table joins.
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety profile. The description adds behavioral nuance: it specifies the output scope (path and name) and explicitly negates the full tree behavior, which is beyond the annotation. This is valuable context that helps agents set expectations, so a 4 is justified.

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?

The description is two sentences with zero filler. It front-loads the core purpose, then delivers the key exclusion and alternative. Every word earns its place, and it is easy to scan.

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

Completeness5/5

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

For a simple read-only lookup tool, the description covers what is returned, what is not returned, and the alternative for the missing functionality. The output schema exists, so return structure is defined. Annotations cover safety, and parameters are documented in the schema. Nothing an agent needs to correctly invoke this tool is missing.

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?

Schema description coverage is 100%, meaning all three parameters (sku, profile, magentoRoot) are fully documented in the schema. The description itself does not add param-specific details, but because the schema already covers them, a baseline of 3 is appropriate. No additional semantic enrichment is necessary.

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 states a clear verb ('Returns') and specific resource ('category assignments for a product SKU') with details on what is included (path and name). It also explicitly differentiates from the full category tree by naming the alternative, so an agent can immediately distinguish this tool from sibling tools like execute_select_query.

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

Usage Guidelines5/5

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

The description directly states when not to use it ('Does NOT return full category tree') and points to the exact alternative ('use execute_select_query on catalog_category_entity for hierarchy'). Additionally, the sku parameter description provides further routing guidance ('Use find_product_by_sku instead of guessing EAV table joins'), making usage conditions explicit.

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

get_staging_upcoming_updatesGet Staging Upcoming UpdatesA
Read-onlyIdempotent

Returns future staging campaigns affecting a product SKU. Requires Adobe Commerce Content Staging. Does NOT apply staged values.

ParametersJSON Schema
NameRequiredDescriptionDefault
skuYesProduct SKU. Use find_product_by_sku instead of guessing EAV table joins.
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable context beyond annotations by specifying that it returns raw staging campaigns and does not apply staged values, and that it requires the Content Staging module. This informs the agent about the tool's behavioral limits.

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?

The description is three terse sentences that front-load the purpose ('Returns future staging campaigns affecting a product SKU') followed by the prerequisite and the key non-behavior. Every sentence earns its place, with no filler or repetition.

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

Completeness5/5

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

Given the tool's simplicity and the presence of a comprehensive output schema (which covers return format), the description fully covers what an agent needs to call it correctly: purpose, prerequisite, and a critical behavioral caveat. No essential information is missing.

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?

Schema description coverage is 100%, so all parameters (sku, profile, magentoRoot) are documented in the schema itself. The description adds no parameter-specific meaning beyond what the schema provides. However, the schema's sku description already includes a usage hint ('Use find_product_by_sku instead of guessing EAV table joins'), and the profile and magentoRoot descriptions are self-explanatory. Baseline 3 is appropriate since the schema does the heavy lifting.

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 states a specific verb ('Returns'), a specific resource ('future staging campaigns'), and a clear scope ('affecting a product SKU'). It also clarifies a key behavioral nuance ('Does NOT apply staged values'), which helps distinguish it from tools that apply staged changes. No sibling tool covers staging campaigns, so it is unambiguous.

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?

The description provides a clear prerequisite ('Requires Adobe Commerce Content Staging') and explicitly states what it does not do ('Does NOT apply staged values'). This gives the agent enough context to determine when the tool is appropriate, though it does not name explicit alternatives. The non-behavior effectively implies that if you need applied values, another tool is required.

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

get_store_hierarchyGet Store HierarchyA
Read-onlyIdempotent

Returns the Magento store hierarchy: websites, store groups, and store views with codes and names. Use to map store_id / website_id when querying scoped data.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, which covers the safety profile. The description adds the return content (codes and names) and a practical purpose, but does not elaborate on behavior like pagination, error handling, or performance. With strong annotations, this level of extra disclosure is acceptable; it's neither contradictory nor substantially richer.

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?

The description is two sentences with zero filler. The first sentence states the primary output, and the second gives a concrete use case. It is front-loaded and every word earns its place.

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

Completeness5/5

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

Given the rich annotations and the presence of an output schema, the description is fully adequate. It explains what the tool returns, why an agent would use it, and even hints at the mapping context. No critical information about calling this read-only informational tool is missing.

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?

The input schema provides 100% description coverage for both parameters (profile and magentoRoot), including their defaults and the override behavior. The tool description references the mapping purpose of the return, but does not add any extra semantics beyond what the schema already documents. Baseline 3 is appropriate given the complete schema coverage.

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 states a specific verb ('Returns') and a specific resource ('Magento store hierarchy'), enumerating its components (websites, store groups, store views) and their attributes (codes and names). This is distinct from any sibling tool, making the purpose unambiguous.

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?

The description explicitly states when to use this tool: 'Use to map store_id / website_id when querying scoped data.' This gives a clear use case, though it does not mention when not to use it or name alternative tools. The context is sufficient for an agent to judge applicability.

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

get_table_indexesGet Table IndexesA
Read-onlyIdempotent

Returns index definitions for a Magento table (SHOW INDEX). Useful for optimizing queries and understanding lookup paths. Use describe_table for column-level details.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesMagento database table name (e.g. sales_order, catalog_product_entity).
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the SHOW INDEX equivalence and use case context, but does not disclose further behavioral traits like error conditions or performance implications. With annotations present, this is a baseline level of added context.

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?

The description is three short sentences: it front-loads the core purpose, adds a use-case statement, and then provides a sibling alternative. Every sentence earns its place with no redundancy or filler.

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

Completeness5/5

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

For a read-only, idempotent tool with a defined output schema and complete parameter documentation, the description covers all necessary context. It states what it returns, when to use it, and points to a sibling for related needs, making it sufficient for correct invocation.

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?

Schema description coverage is 100% for all three parameters, each already having descriptive text in the schema. The description provides no additional parameter-specific semantics beyond the schema, so the baseline score of 3 applies.

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 states it returns index definitions for a Magento table (SHOW INDEX), using a specific verb and resource. It clearly distinguishes from siblings like describe_table, which covers column-level details, leaving no ambiguity about what this tool does.

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

Usage Guidelines5/5

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

It explicitly says the tool is useful for optimizing queries and understanding lookup paths, and it names an alternative (describe_table) for column-level details. This gives the agent a clear when-to-use and a specific case to delegate elsewhere.

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

get_url_rewriteGet URL RewriteA
Read-onlyIdempotent

Searches url_rewrite by request_path or target_path pattern. Returns entity_type, entity_id, store_id, redirect_type. Use to debug 404s, duplicate URLs, or redirect loops.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.
path_patternYesURL path pattern (SQL LIKE) for request_path or target_path (e.g. 'my-product.html', '%/checkout%').

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering safety behavior. The description adds the return fields and the pattern-matching semantics, which is useful but not extensive. It does not contradict the annotations and provides some extra context (e.g., that it searches by pattern).

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?

Two sentences, no unnecessary words. The first sentence states the verb, resource, and matching behavior; the second lists return fields and use cases. Information is front-loaded and every clause earns its place.

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?

Given the presence of an output schema, the description need not explain return structures. It covers the purpose, return fields, and typical scenarios. For a read-only search tool with strong annotations and full schema coverage, nothing critical is missing. It could have mentioned pattern breadth or pagination, but those are minor and likely covered by the output schema.

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?

Schema description coverage is 100%, with all parameters fully documented (path_pattern includes example and SQL LIKE semantics, profile and magentoRoot have clear explanations). The tool description adds the concept of matching both request_path and target_path, but this is already explicit in the schema. Thus the description adds little beyond the structured documentation, warranting the baseline 3.

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 states a specific verb ('Searches') and resource ('url_rewrite'), plus the fields returned. It clearly defines the tool's function and distinguishes it from the many get_* siblings by naming the target table and its purpose (debugging 404s, duplicate URLs, redirect loops).

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?

The description explicitly lists three concrete debugging scenarios ('404s, duplicate URLs, or redirect loops') where the tool should be used. It does not state when not to use it or name alternatives, but the context is clear enough for an agent to select it appropriately among the sibling tools.

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

list_available_toolsList Available ToolsA
Read-onlyIdempotent

Returns the categorized catalog of all MCP tools with tags (OSS/MSI/B2B/Commerce). Use when unsure which tool fits a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoFilter tools by edition tag. Omit for full catalog.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the behavioral detail that the output is categorized and includes tags (OSS/MSI/B2B/Commerce), which enriches understanding beyond the annotations. No contradiction exists.

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?

Two sentences with zero wasted words. The first sentence states the core function, and the second provides the usage trigger. Information is front-loaded and efficiently structured.

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

Completeness5/5

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

For a simple tool with one optional parameter, an output schema, and annotations covering side effects, the description is complete. It explains what the tool returns (categorized list with tags) and when to use it. Nothing an agent needs to invoke it correctly is missing.

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?

Schema description coverage is 100% because the single 'tag' parameter has a full description in the schema ('Filter tools by edition tag. Omit for full catalog.') and a complete enum. The description itself adds no parameter-level insight, so the baseline score of 3 applies.

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 a specific verb ('Returns') and resource ('categorized catalog of all MCP tools'), and explicitly lists the tag categories. It distinguishes itself from sibling tools by being a meta-tool that catalogs other tools, which none of the siblings do. The purpose is unambiguous.

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?

The description gives an explicit usage context: 'Use when unsure which tool fits a task.' While it doesn't explicitly state when not to use it, the guidance is clear and actionable. There are no alternative tools mentioned, but as a meta-tool, its use case is inherently distinct from the direct data-access siblings.

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

list_connection_profilesList Connection ProfilesA
Read-onlyIdempotent

Lists database connection profiles from .cursor/magento-sql-mcp.json and ~/.config/magento-sql-mcp/config.json. Shows the active profile from MAGENTO_SQL_PROFILE. Use get_connection_status to verify connectivity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
profilesYes
magentoRootYes
activeProfileYes
defaultProfileYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: it identifies the config file sources and explains that the active profile is derived from an environment variable. This enriches the agent's understanding of what the tool returns.

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?

Three concise sentences, each contributing value: what the tool lists, the specific config sources, the active profile info, and a pointer to a related sibling. No redundant content; information is front-loaded and clear.

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

Completeness5/5

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

Given the tool's simplicity (no parameters, read-only, output schema provided), the description fully covers what an agent needs: the purpose, data sources, and how to follow up with connectivity verification. The existence of an output schema means return values don't need to be explained in the description.

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 and the input schema is empty. Per the baseline for 0-parameter tools, a score of 4 is appropriate. The description doesn't add parameter information because there are none to document, which is consistent.

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 states a specific verb and resource: it lists database connection profiles from two explicit config file paths and shows the active profile from MAGENTO_SQL_PROFILE. This clearly distinguishes it from siblings like get_connection_status, which verifies connectivity rather than listing profiles.

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?

It explicitly recommends using get_connection_status to verify connectivity, giving clear context on when to use that alternative. While it doesn't state exclusions outright, the recommendation implies that this tool is for listing and inspecting profiles, not for checking live connection status.

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

list_tablesList Database TablesA
Read-onlyIdempotent

Lists Magento database tables, optionally filtered by SQL LIKE pattern (e.g. 'sales_%'). Use describe_table for column details. Use search_columns when you know a column name but not the table.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternNoSQL LIKE pattern for table names (e.g. 'sales_%', '%customer%'). Omit to list all tables.
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the core safety and variability are covered. The description adds value beyond annotations by explaining the filtering semantics (SQL LIKE pattern) and the fact that omitting the pattern lists all tables, which is useful behavioral context. It does not contradict annotations.

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?

The description is three sentences, each serving a distinct purpose: the main action (list tables with optional pattern), an example of the pattern, and the routing to two sibling tools. There is no fluff or redundant content, and the key information is front-loaded.

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

Completeness5/5

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

The tool has an output schema, so return values are documented elsewhere. The description covers the primary use case, the filter behavior, and explicitly directs to alternatives when a different intent is present. The remaining parameters are well-documented in the schema, and the annotation set provides the safety profile. Nothing an agent needs to call this tool correctly is missing.

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?

All three parameters (pattern, profile, magentoRoot) are fully described in the input schema (coverage 100%), so the description need not repeat them. The description's mention of the LIKE pattern matches the schema's description, adding no new meaning. A baseline of 3 is appropriate given the schema carries the parameter documentation.

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 states a specific verb ('Lists') and resource ('Magento database tables'), includes an optional filter example ('sales_%'), and explicitly differentiates from sibling tools by naming describe_table and search_columns as the right choices for column details or column-to-table lookup. An agent can immediately tell this tool apart from related list/search tools.

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

Usage Guidelines5/5

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

It gives explicit when-to-use guidance: 'Use describe_table for column details. Use search_columns when you know a column name but not the table.' This directly tells the agent when to select an alternative, and the optional filter clarifies a legitimate use case for this tool. No guesswork is required.

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

run_database_health_checkRun Database Health CheckA
Read-onlyIdempotent

Single-call health snapshot: connection, edition detection, indexer issues, failed crons (24h), queue backlog summary. Does NOT replace individual diagnostic tools for deep dives.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds valuable behavioral context beyond annotations: it aggregates multiple sources into a single call, includes a 24-hour window for cron failures, and signals that the result is a summary rather than a deep dive. This is exactly the supplementary context the description should provide.

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?

Two sentences, no filler. The purpose and scope are front-loaded, and the caveat about deep dives is placed at the end. Every clause earns its place; ideal conciseness.

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

Completeness5/5

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

The tool has an output schema (not shown, but indicated), so return-value details are redundant in the description. It has no required parameters, and the description fully covers what the health check inspects and its limitations. An agent can decide to invoke it correctly with no ambiguity.

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?

Both parameters (profile and magentoRoot) are fully described in the input schema (100% coverage), so the schema carries the semantic weight. The description does not add parameter-level detail, but it doesn't need to; the baseline of 3 is appropriate when the schema is complete.

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 a specific verb+resource ('run health check') and enumerates the concrete components: connection, edition detection, indexer issues, failed crons (24h), queue backlog summary. It also differentiates from siblings by framing itself as a 'single-call snapshot' and explicitly noting it does not replace individual diagnostic tools.

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?

The description explicitly provides a when-not instruction: 'Does NOT replace individual diagnostic tools for deep dives.' This implies the tool is for quick overviews and directs the agent toward sibling tools for detailed investigation. It does not name specific alternative tools, but the exclusion is clear and actionable.

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

search_columnsSearch ColumnsA
Read-onlyIdempotent

Finds tables containing columns matching a name pattern (e.g. 'increment_id', 'sku', 'email'). Returns table name, column name, and data type. Use describe_table next for full column details.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYesColumn name substring to search (e.g. 'increment_id', 'sku', 'email', 'status').
profileNoOverride the MAGENTO_SQL_PROFILE env var for this call only. Use list_connection_profiles to see available names.
magentoRootNoAbsolute path to the Magento root (must contain app/etc/env.php). Defaults to MAGENTO_ROOT env var or auto-discovery.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsYes
sampledNo
rowCountYes
truncatedNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds behavioral value by specifying the output structure (table name, column name, and data type) and the pattern-matching semantics. It does not contradict annotations and provides context beyond the structured fields, though it omits details like pagination or performance considerations.

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?

The description is composed of three concise sentences: purpose with examples, return fields, and a follow-up recommendation. Every sentence serves a clear function without redundancy or filler. The most important information (what it does) is front-loaded, making it efficient for agent comprehension.

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?

The tool is a straightforward search function, and the description covers its core purpose, output, and a logical next step. An output schema exists, which likely documents the return structure in more detail, so the description does not need to repeat that. It adequately equips an agent to decide when to call this tool and what to expect, though it could mention result size limits or case sensitivity for perfect completeness.

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?

The input schema already provides 100% description coverage, including examples and usage notes for all three parameters (pattern, profile, magentoRoot). The tool description adds no parameter-specific meaning beyond what the schema supplies, so it meets the baseline of 3 without exceeding it.

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 finds tables containing columns matching a name pattern, specifies the return fields (table name, column name, data type), and provides concrete examples. It explicitly differentiates itself from describe_table by recommending it as the next step for full column details, making its purpose unambiguous and distinct among siblings.

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?

The description gives a clear directive to use describe_table next for full column details, which provides actionable follow-up guidance. It implies this tool is for coarse-grained column searches but does not explicitly state when not to use it or mention alternatives like find_order_by_increment_id, though the sibling context makes this less critical. The guidance is helpful but not exhaustive.

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

validate_select_queryValidate SELECT QueryA
Read-onlyIdempotent

Validates SQL is read-only and safe to execute without running it. Returns normalized SQL with auto LIMIT preview for SELECT statements. Use before execute_select_query on large or unfamiliar tables.

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlNoRead-only SQL starting with SELECT, SHOW, DESCRIBE, or EXPLAIN. Alias: query.
limitNoMax rows to return for SELECT queries. Defaults to 100. Hard cap: 1000.
queryNoAlias for sql — same parameter, alternative name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
reasonNo
normalizedSqlNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to restate safety. It adds valuable behavioral context: that it runs without executing, and that it auto-appends a LIMIT preview to SELECT statements. This goes beyond the annotations and gives the agent a clear expectation of side-effect-free, non-mutating validation with a normalized output format. No contradictions to annotations.

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?

The description is two sentences, tightly written with no filler. It front-loads the primary purpose (validation without execution), immediately follows with the key output detail (normalized SQL with auto LIMIT), and ends with a specific usage directive. Every word earns its place; it is concise without sacrificing informative value.

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

Completeness5/5

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

For a validation tool with a rich output schema (present) and comprehensive safety annotations, the description covers the essential context: what it does, what it returns, and when to use it. The agent can correctly decide to invoke it before execute_select_query and can infer the input (SQL string). Given the output schema and annotations cover the remaining details, nothing critical is missing.

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?

Schema coverage is 100% — every parameter (sql, limit, query) has a descriptive schema entry that covers meaning and constraints. The description's mention of 'auto LIMIT preview' reinforces the limit parameter's role but does not add new details beyond what the schema already provides. Since the schema fully documents the parameters, the description need not compensate, and the baseline of 3 is appropriate.

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 states a specific action (validates SQL is read-only and safe to execute without running it), identifies the resource (SQL queries), and describes the primary output (normalized SQL with auto LIMIT preview). It distinguishes itself from execute_select_query by explicitly positioning itself as a pre-execution safety check, and from explain_select_query (which likely explains query plans) by focusing on validation. The verb-resource pairing is unique and clear.

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?

The description explicitly says to use this tool before execute_select_query on large or unfamiliar tables, providing a clear context and a specific sibling to pair with. It does not mention when not to use it or alternative tools like explain_select_query, but the primary use case is well articulated. The guidance is actionable and differentiated from execute_select_query, though it leaves some room for clarifying exclusions.

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. Dates show when Glama detected each change.

  1. 44 tool updatesv2.4.0
    • First observedaudit_cms_page_blocks
    • First observedaudit_plaintext_secrets
    • First observedcount_table_rows
    • First observeddescribe_table
    • First observeddetect_magento_environment
    • First observedexecute_select_query
    • First observedexplain_select_query
    • First observedfind_active_quote_by_email
    • First observedfind_customer_by_email
    • First observedfind_customers_by_name
    • First observedfind_order_by_increment_id
    • First observedfind_product_by_sku
    • First observedget_active_quote_items
    • First observedget_b2b_negotiable_quotes
    • First observedget_catalog_rule_price
    • First observedget_cms_block
    • First observedget_cms_page
    • First observedget_configurable_children
    • First observedget_connection_status
    • First observedget_cron_schedule
    • First observedget_db_queue_backlog
    • First observedget_eav_attribute
    • First observedget_failed_cron_jobs
    • First observedget_foreign_keys
    • First observedget_heavy_log_tables
    • First observedget_indexer_status
    • First observedget_largest_tables
    • First observedget_magento_config
    • First observedget_module_versions
    • First observedget_msi_stock_status
    • First observedget_order_shipment_tracks
    • First observedget_order_tax_breakdown
    • First observedget_product_attributes
    • First observedget_product_categories
    • First observedget_staging_upcoming_updates
    • First observedget_store_hierarchy
    • First observedget_table_indexes
    • First observedget_url_rewrite
    • First observedlist_available_tools
    • First observedlist_connection_profiles
    • First observedlist_tables
    • First observedrun_database_health_check
    • First observedsearch_columns
    • First observedvalidate_select_query

TDQS

A4.1/5.0
Disambiguation5/5

Every tool has a clearly defined, distinct purpose with explicit 'does NOT' notes to prevent overlap. For instance, get_indexer_status vs get_cron_schedule, get_active_quote_items vs find_active_quote_by_email, and get_largest_tables vs get_heavy_log_tables all address separate concerns. The descriptions effectively eliminate ambiguity.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern: get_ for retrieval, find_ for lookups, list_ for enumerations, describe_/search_/count_/explain_ for specific operations, and a few bespoke verbs like audit_/detect_/run_. The naming is uniform and predictable across all 44 tools, making it easy to anticipate tool behavior.

Tool Count2/5

With 44 tools, the surface is substantially overloaded. While Magento is a complex system, the sheer number forces agents to wade through many highly specific tools, increasing selection error risk. Typical well-scoped servers hold 3–15 tools; this exceeds the '25+' threshold for excessive count and feels heavy even for a comprehensive Magento diagnostics suite.

Completeness4/5

The server covers a broad range of Magento database operations: order/product/customer lookups, EAV, categories, CMS, cron, staging, B2B, MSI, queue monitoring, secrets audit, and health checks. The generic execute_select_query handles ad-hoc queries, filling most gaps. Minor missing areas like sales reports or customer group queries are not directly tooled but are reachable via raw SQL, so no dead ends exist.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with MySQL databases through natural language for schema introspection, safe SQL execution, and full CRUD operations. It provides built-in tools for managing users, products, and orders while ensuring security through parameterized queries and read-only SQL checks.
    -
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI assistants to manage Adobe Commerce and Magento 2 instances through business-level tools for catalog, promotions, CMS, and SEO. It features secure OAuth 1.0 authentication, safety guardrails for bulk operations, and built-in diagnostic reports for store health.
    38
    45
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to inspect and query a MySQL database through safe, structured tools, including schema discovery and read-only queries.
    9
    89
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to securely interact with MySQL databases, including listing tables, viewing schemas, and executing read-only SQL queries through natural language.
    6
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jigarkkarangiya/magento-sql-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server