Audits Amazon catalog files and Seller Central listings for attribute, title, and bullet quality issues, with JSON output for agents.
Also known as BWB03/amazon-catalog-cli, amazon-catalog-cli, @bwb03/catalog-cli-pro
- Stars
- 17
- Tools
- —
- Downloads, 30 days
- 119
- Latest version
- 1.0.0
- Last commit
- Sep 3, 2026
- License
- MIT
What is Catalog CLI MCP?
Catalog CLI audits Amazon catalog files and Seller Central listings for attribute, title, and bullet quality issues, with JSON output for agents.
Summary generated from the project's README
About Catalog CLI MCP server
Auditing Amazon product listings for attribute errors and content quality is what catalog-cli-pro enables for e-commerce developers and catalog managers. This tool provides a structured way to scan Category Listing Reports (CLRs) for missing mandatory attributes, prohibited characters, and formatting issues. It is designed specifically for AI agents, offering JSON and NDJSON output formats that allow LLMs to process large amounts of catalog data efficiently.
Users can run the server locally via a stdio MCP connection or use a hosted API for persistent storage and unlimited scans. To access live data from Seller Central, the tool requires a local session cookie provided through environment variables or command line flags. The server includes specialized tools such as catalog_seller_listing_fetch to retrieve live JSON data and catalog_seller_listing_diff to compare live listings against existing reports. It also features mobile-title-readiness checks to identify titles exceeding 75 characters, helping maintain visibility on mobile devices.
What you can do with it
- 1Audit mobile title readinessIdentify product titles that are too long for mobile displays and receive suggested rewrite segments.
- 2Compare live listings with reportsCheck if the current live data on Amazon matches the information stored in your Category Listing Report.
- 3Optimize bullet point contentScore product bullet points based on how well they cover shopper intent and specific use cases.
- 4Detect missing product attributesScan large catalogs to find mandatory fields that are missing from your listings.
Written from the project's README. Every use case is checked against a quote from it.
How to install Catalog CLI MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall Catalog CLI MCP in Claude Code
$ claude mcp add --env 'CATALOG_API_KEY=<YOUR_CATALOG_API_KEY>' amazon-catalog-cli -- npx -y @bwb03/catalog-cli-proInstall Catalog CLI MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"amazon-catalog-cli": {
"command": "npx",
"args": [
"-y",
"@bwb03/catalog-cli-pro"
],
"env": {
"CATALOG_API_KEY": "<YOUR_CATALOG_API_KEY>"
}
}
}
}Install Catalog CLI MCP in VS Code
.vscode/mcp.json
{
"servers": {
"amazon-catalog-cli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@bwb03/catalog-cli-pro"
],
"env": {
"CATALOG_API_KEY": "<YOUR_CATALOG_API_KEY>"
}
}
}
}Install Catalog CLI MCP in VS Code CLI
$ code --add-mcp '{"name":"amazon-catalog-cli","type":"stdio","command":"npx","args":["-y","@bwb03/catalog-cli-pro"],"env":{"CATALOG_API_KEY":"<YOUR_CATALOG_API_KEY>"}}'Install Catalog CLI MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"amazon-catalog-cli": {
"command": "npx",
"args": [
"-y",
"@bwb03/catalog-cli-pro"
],
"env": {
"CATALOG_API_KEY": "<YOUR_CATALOG_API_KEY>"
}
}
}
}Install Catalog CLI MCP in Codex
$ codex mcp add amazon-catalog-cli --env 'CATALOG_API_KEY=<YOUR_CATALOG_API_KEY>' -- npx -y @bwb03/catalog-cli-proInstall Catalog CLI MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.amazon-catalog-cli] command = "npx" args = ["-y", "@bwb03/catalog-cli-pro"] [mcp_servers.amazon-catalog-cli.env] CATALOG_API_KEY = "<YOUR_CATALOG_API_KEY>"
Install Catalog CLI MCP in Gemini CLI
$ gemini mcp add -s user -e 'CATALOG_API_KEY=<YOUR_CATALOG_API_KEY>' amazon-catalog-cli npx -- -y @bwb03/catalog-cli-proInstall Catalog CLI MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"amazon-catalog-cli": {
"command": "npx",
"args": [
"-y",
"@bwb03/catalog-cli-pro"
],
"env": {
"CATALOG_API_KEY": "<YOUR_CATALOG_API_KEY>"
}
}
}
}Configuration
CATALOG_API_KEYRequiredSecretYour Catalog CLI Pro API key. Get one free at catalogcli.com/signup
CATALOG_SELLER_CENTRAL_COOKIE
| Name | Description | |
|---|---|---|
| CATALOG_API_KEY | Your Catalog CLI Pro API key. Get one free at catalogcli.com/signup | RequiredSecret |
| CATALOG_SELLER_CENTRAL_COOKIE | — |
Automated checks
Ran Nov 13, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablebwb03/amazon-catalog-cli is public and reachablegithub.com/bwb03/amazon-catalog-cli ↗Pass
- Package names this repository as its source@bwb03/catalog-cli-pro names bwb03/amazon-catalog-cli as sourcenpmjs.com/package/@bwb03/catalog-cli-pro ↗Pass
- Build provenance (Sigstore attestation)No build attestation published for this releaseNot checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-09-03github.com/bwb03/amazon-catalog-cli ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from @bwb03/catalog-cli-proPass
- No critical advisory in the package or its dependencies85 resolved dependencies checked; no critical advisoryosv.dev ↗Pass
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubCatalog CLI
Agent-native Amazon catalog auditing tool
The first AI-agent-friendly Amazon catalog analysis tool. Query your CLRs with structured input, integrate via MCP server, and automate catalog audits.
Hosted API available at api.catalogcli.com — persistent storage, unlimited scans, and API access for $9.99/mo. Learn more
What's New in v2.3
- Seller Central AJAX lookup - Fetch Amazon's live Seller Central listing JSON with
catalog listing fetch <asin> - Live listing vs CLR diff - Compare Amazon's current listing fields against your Category Listing Report with
catalog listing diff <asin> <clr-file> - Agent-ready Seller Central tools - New MCP tools
catalog_seller_listing_fetchandcatalog_seller_listing_diff - Local cookie auth - Use
--cookie,--cookie-file, orCATALOG_SELLER_CENTRAL_COOKIE; Seller Central cookies stay local
v2.2 Title Readiness
- Amazon title readiness -
mobile-title-readinessflags titles over 75 characters for Amazon's mobile title update - Rewrite-ready output - Returns first-75-character title segments, overflow text, significant terms, item highlight status, and recommended next actions
- Agent workflow friendly - Aliases
title-75andamazon-title-75make it easy to call from Claude, MCP clients, and automation workflows - 14 built-in checks - Adds a title triage workflow while keeping the classic 200-character
long-titlescheck unchanged
v2.0 Agent Foundations
- Shared core architecture - Business logic separated into
catalog/core/, powering both CLI and MCP - MCP server -
catalog mcplaunches a stdio MCP server with 4 tools, ready for Claude Desktop and any MCP client - JSON input -
--jsonand--stdinflags for structured agent input - Schema introspection -
catalog schema --format jsonreturns full request/response schemas - Field masks -
--fields sku,severity,detailsto reduce output size - Pagination -
--limitand--offsetfor controlling result size - NDJSON streaming -
--format ndjsonfor line-by-line streaming of large results - Input hardening - Pydantic validation rejects path traversal, injection, and malformed input
- Environment variables -
CATALOG_CLI_DEFAULT_FORMAT=jsonfor headless/CI use - Backward compatible - All v1.x commands work unchanged
Features
- Agent-Native - CLI + MCP server as equal citizens, JSON/NDJSON output, schema introspection
- Fast - Query 1000+ SKU catalogs in seconds
- Extensible - Plugin system for custom queries
- Comprehensive - 14 built-in catalog health checks
- Intent Optimized - COSMO-inspired shopper intent coverage for bullets
Installation
pip install amazon-catalog-cli
Or install from source:
git clone https://github.com/BWB03/amazon-catalog-cli.git
cd amazon-catalog-cli
pip install -e .
Quick Start
For Humans
# Run all catalog checks
catalog scan my-catalog.xlsx
# Detailed results
catalog scan my-catalog.xlsx --show-details
# Run specific check
catalog check intent-bullets my-catalog.xlsx
# Audit titles for Amazon's 75-character mobile title update
catalog check mobile-title-readiness my-catalog.xlsx
# List available queries
catalog list-queries
For AI Agents
# JSON output with field mask and limit
catalog scan my-catalog.xlsx --format json --fields sku,severity,details --limit 20
# Title rewrite triage for agents
catalog check mobile-title-readiness my-catalog.xlsx --format json \
--fields sku,details,title_char_count,mobile_visible_title,overflow_title,all_significant_terms
# Structured JSON input
catalog scan --json '{"file": "my-catalog.xlsx", "queries": ["missing-attributes"], "limit": 10}'
# Piped input
echo '{"file": "my-catalog.xlsx"}' | catalog scan --stdin --format json
# NDJSON streaming for large results
catalog scan my-catalog.xlsx --format ndjson
# Schema introspection (discover queries, params, response shapes)
catalog schema --format json
# Fetch live Seller Central listing JSON for an ASIN
CATALOG_SELLER_CENTRAL_COOKIE='session-id=...' catalog listing fetch B000TEST01 --format json
# Compare live Seller Central JSON with a CLR row
catalog listing diff B000TEST01 my-catalog.xlsx --sku SKU-123 --format json
MCP Server (for Claude Desktop, CLR Pro, etc.)
# Start MCP server
catalog mcp
Add to Claude Desktop config:
{
"mcpServers": {
"catalog": {
"command": "catalog",
"args": ["mcp"]
}
}
}
MCP tools: catalog_scan, catalog_scan_summary, catalog_check, catalog_seller_listing_fetch, catalog_seller_listing_diff, catalog_list_queries, catalog_schema
Available Queries
Attribute Audits
- missing-attributes - Find mandatory attributes missing from listings
- missing-any-attributes - Find all missing attributes (required + conditional)
- new-attributes - Find unused template fields that might add value
Content Quality
- intent-bullets - Score bullet points against shopper intent coverage
- bullet-prohibited-content - Find bullet points with prohibited chars, emojis, claims, or placeholders
- bullet-formatting - Check bullet formatting (capitalization, length, punctuation)
- bullet-awareness - Soft violations in bullets (excessive caps, problematic chars)
- mobile-title-readiness - Find titles over 75 characters and prepare rewrite inputs
- long-titles - Find titles exceeding 200 characters
- title-prohibited-chars - Find titles with prohibited characters
- prohibited-chars - Find prohibited characters in title/brand
Catalog Structure
- product-type-mismatch - Find mismatched product types and item keywords
- missing-variations - Find products that should be variations but aren't
CLI Commands
catalog scan
Run all queries on a CLR file.
catalog scan <clr-file> [OPTIONS]
Options:
--format [terminal|json|csv|ndjson] Output format (default: terminal)
--output PATH Output file path
--show-details / --no-details Show detailed results
--include-fbm-duplicates Legacy: include repeated exact-SKU rows
--json TEXT JSON request body
--stdin Read JSON request from stdin
--queries TEXT Comma-separated query names
--fields TEXT Comma-separated field mask
--limit INTEGER Max issues to return
--offset INTEGER Skip first N issues
catalog check
Run a specific query.
catalog check <query-name> <clr-file> [OPTIONS]
Options:
--format [terminal|json|csv|ndjson] Output format (default: terminal)
--output PATH Output file path
--show-details / --no-details Show detailed results
--json TEXT JSON request body
--stdin Read JSON request from stdin
--fields TEXT Comma-separated field mask
--limit INTEGER Max issues to return
--offset INTEGER Skip first N issues
catalog listing fetch
Fetch Amazon's live Seller Central listing JSON for an ASIN.
Requires a logged-in Seller Central cookie from your own browser session. Pass it with --cookie, --cookie-file, or the CATALOG_SELLER_CENTRAL_COOKIE environment variable.
catalog listing fetch <asin> [OPTIONS]
Options:
--format [terminal|json] Output format (default: terminal)
--output PATH Output file path
--cookie TEXT Seller Central Cookie header value
--cookie-file PATH File containing the Cookie header value
--timeout FLOAT HTTP timeout in seconds
--json TEXT JSON request body
--stdin Read JSON request from stdin
catalog listing diff
Compare Amazon's live Seller Central listing JSON with a matching CLR row.
Rows match by --sku when provided. Otherwise Catalog CLI looks for Product Id Type = ASIN and Product Id = <asin> in the CLR.
catalog listing diff <asin> <clr-file> [OPTIONS]
Options:
--sku TEXT Optional SKU to match in the CLR
--format [terminal|json] Output format (default: terminal)
--output PATH Output file path
--cookie TEXT Seller Central Cookie header value
--cookie-file PATH File containing the Cookie header value
--timeout FLOAT HTTP timeout in seconds
--json TEXT JSON request body
--stdin Read JSON request from stdin
catalog schema
Show schema for queries, params, and response shapes.
catalog schema [query-name] [OPTIONS]
Options:
--format [terminal|json] Output format
catalog list-queries
List available queries.
catalog list-queries [OPTIONS]
Options:
--format [terminal|json] Output format
catalog mcp
Start the MCP server (stdio transport).
catalog mcp
catalog setup-claude
Configure Claude Code to use Catalog CLI as an MCP tool server.
# Free (local) — data stays on your machine
catalog setup-claude
# Pro (hosted API) — persistent storage, unlimited scans
catalog setup-claude --pro --api-key YOUR_KEY
# Per-project instead of global
catalog setup-claude --project
After setup, restart Claude Code and try: "Scan my-catalog.xlsx and tell me the biggest issues"
Example JSON Output
{
"timestamp": "2026-03-05T10:30:00Z",
"marketplace": "US",
"is_us_marketplace": true,
"total_queries": 14,
"total_issues": 47,
"total_affected_skus": 23,
"results": [
{
"query_name": "missing-attributes",
"description": "Find mandatory attributes missing from listings",
"total_issues": 12,
"affected_skus": 8,
"issues": [
{
"row": 7,
"sku": "ABC-123",
"field": "brand",
"severity": "required",
"details": "Missing required field: brand",
"product_type": "HAIR_STYLING_AGENT",
"extra": {}
}
]
}
]
}
Agent Integration
Via CLI (subprocess)
import subprocess, json
result = subprocess.run(
['catalog', 'scan', 'my-catalog.xlsx', '--format', 'json',
'--fields', 'sku,severity,details', '--limit', '20'],
capture_output=True, text=True
)
data = json.loads(result.stdout)
Via Python (direct import)
from catalog.core import execute_scan, ScanRequest
request = ScanRequest(
file="my-catalog.xlsx",
queries=["missing-attributes", "intent-bullets"],
fields=["sku", "severity", "details"],
limit=20,
)
response = execute_scan(request)
Via MCP
Add the MCP server to any MCP client (Claude Desktop, CLR Pro, etc.) and call catalog_scan, catalog_check, catalog_seller_listing_fetch, catalog_seller_listing_diff, catalog_list_queries, or catalog_schema.
Intent-Based Bullet Optimization
The intent-bullets query evaluates bullet points against COSMO-inspired shopper intent coverage:
- Audience / need fit: Who it is for, preferences, or problem state
- Function / use case: The job, activity, event, or use flow
- Context / compatibility: Where, when, or what it works with
- Decision evidence: Specs, attributes, trust signals, or differentiators
- All bullets: Checked for intent coverage, length, vague marketing, ALL CAPS
Scores 1-5 with actionable suggestions. The old rufus-bullets query name still works as a deprecated compatibility alias.
Extending with Custom Queries
from catalog.query_engine import QueryPlugin
class MyCustomQuery(QueryPlugin):
name = "my-custom-check"
description = "My custom catalog check"
def execute(self, listings, clr_parser):
issues = []
for listing in listings:
if some_condition:
issues.append({
'row': listing.row_number,
'sku': listing.sku,
'field': 'FieldName',
'severity': 'warning',
'details': 'Issue description',
'product_type': listing.product_type
})
return issues
Requirements
- Python 3.10+
- openpyxl
- click
- rich
- pydantic
- mcp
How to Get Your CLR
- Go to Amazon Seller Central > Catalog > Category Listing Report
- Click Generate Report
- Download the
.xlsmor.xlsxfile - Run catalog CLI on it
Free vs Pro
| Open Source CLI | Free API | Pro API ($9.99/mo) | |
|---|---|---|---|
| 14 quality audits | Yes | Yes | Yes |
| Scans | Unlimited (local) | 2 lifetime | Unlimited |
| Catalogs stored | — | 1 | Unlimited |
| Results persistence | — | 7 days | Permanent |
| API access | — | Yes | Yes |
| Rate limit | — | 10 req/min | 100 req/min |
| Claude Code integration | Local MCP | — | Hosted MCP |
| Variation Creator | — | — | Coming soon |
Get started at catalogcli.com | API Docs
Contributing
This is an open-source project. Contributions welcome!
- Add new query plugins
- Improve parsing logic
- Enhance output formats
- Build integrations
License
MIT License - Free to use, modify, and distribute.
Author
Built by Brett Bohannon (@BWB03)
Related Projects
- amazon-catalog-auditor-skill - OpenClaw skill for agent workflows
- clr-auditor - Original CLR auditing tool
- amazon-tool - Amazon variation creator
Agent-native Amazon catalog tool. Built for the future of catalog management.
Catalog CLI MCP questions
How do I add Catalog CLI MCP to Claude Code?
Run claude mcp add --env 'CATALOG_API_KEY=<YOUR_CATALOG_API_KEY>' amazon-catalog-cli -- npx -y @bwb03/catalog-cli-pro in your terminal. Add --scope user to make it available in every project.
How do I add Catalog CLI MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
How do I run a catalog audit from an AI agent?
Start the stdio MCP server with catalog mcp and call tools like catalog_scan or catalog_check from an MCP client such as Claude Desktop.
What checks does Catalog CLI include?
It ships 14 built-in catalog health checks covering missing attributes, prohibited characters, bullet formatting and intent coverage, title length and mobile readiness, product type mismatches, and missing variations.
Can it compare my live Amazon listing against my Category Listing Report?
Yes. Run catalog listing diff <asin> <clr-file> to compare Amazon's current listing fields against the matching CLR row.
How does it authenticate with Seller Central?
You supply a logged-in Seller Central cookie via --cookie, --cookie-file, or the CATALOG_SELLER_CENTRAL_COOKIE environment variable, and the cookie stays on your machine.
Can I get structured output for automation or CI?
Yes, use --format json or --format ndjson with optional field masks, limits, offsets, and JSON or stdin input.