# Catalog Attribute Normalizer

Turns messy product attributes from several sources into one canonical form and maps categories against real Google and Shopify taxonomies.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 2
- Author: ACJLabs
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/ACJLabs/catalog-normalizer
- Updated: 2026-08-08
- HTML: https://affpapa.org/en/nevibecode/mcp/catalog-attribute-normalizer

## What it does

The server takes a batch of products with `title`, `description` and `raw_attributes`, then hands back cleaned-up values: sizes, colors, units. Category paths come from retrieval, not recall. Candidates are pulled out of the live Google Product Taxonomy and Shopify files and shown to the model as options, so a returned `leaf_id` usually points at a node that exists. Amazon gets no such backing, since there is no public reference file to retrieve from, and stays best-effort.

Attribute values are safe by construction: they come from what you sent and only get canonicalized. When the model infers a value from the title or description, `provenance` reads `"extracted"` — treat that as a hint. The vocabulary is fixed (`size`, `color`, `material`, `gender`, `sleeve_length`); anything else is dropped rather than renamed.

It runs as an MCP server exposing the `normalize_catalog` tool, or as a plain HTTPS API. You issue your own key with `POST /v1/signup` and an email in the body; the key comes back in the response and is shown once, so losing it means signing up again. The free tier covers 500 products a month. Billing counts products, not calls — a batch of 40 spends 40. A batch is all-or-nothing: if it exceeds what is left on your plan, the request is rejected with `402` and nothing gets classified.

## Requirements
- Remote server: `https://catalog-normalizer.acjlabs.com/mcp`

## Install

### Claude Code (native platform)

**Platform CLI: remote server**
```bash
claude mcp add --transport http catalog-normalizer https://catalog-normalizer.acjlabs.com/mcp
```

### Codex

**Platform CLI: remote server**
```bash
codex mcp add catalog-attribute-normalizer --url https://catalog-normalizer.acjlabs.com/mcp
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "catalog-attribute-normalizer": {
            "url": "https://catalog-normalizer.acjlabs.com/mcp"
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "catalog-attribute-normalizer": {
            "type": "http",
            "url": "https://catalog-normalizer.acjlabs.com/mcp"
        }
    }
}
```

### Gemini CLI

**Platform CLI: remote server**
```bash
gemini mcp add -t http catalog-attribute-normalizer https://catalog-normalizer.acjlabs.com/mcp
```

## When to use it
- reconcile size and color spellings across a Shopify export, a supplier CSV and a marketplace scrape
- get a category with a verified `leaf_id` instead of one the model made up
- canonicalize units before pushing products into a feed
- tell a value taken from your input apart from one the model inferred
- tag a batch of products for both Google and Shopify taxonomies at once

## Example prompts
- Normalize the attributes in this product batch and map categories for google and shopify
- Run these `raw_attributes` through `normalize_catalog` and flag every value with `provenance` set to `extracted`
- List the results where `leaf_id` came back null and explain why

## Similar
- [marketplace-catalog-sync](https://affpapa.org/en/nevibecode/skills/marketplace-catalog-sync.md) — skill · 1000 installs
- [catalog-cli-pro](https://affpapa.org/en/nevibecode/mcp/catalog-cli-pro.md) — MCP server · ★ 17
- [clean-data-xls](https://affpapa.org/en/nevibecode/skills/clean-data-xls.md) — skill · 2100 installs
- [omnistudio-epc-catalog-generate](https://affpapa.org/en/nevibecode/skills/omnistudio-epc-catalog-generate.md) — skill · 4800 installs
- [database-schema-design](https://affpapa.org/en/nevibecode/skills/database-schema-design.md) — skill · 591 installs
- [google-cloud-solution-agentic-analytics-spark-knowledge-catalog](https://affpapa.org/en/nevibecode/skills/google-cloud-solution-agentic-analytics-spark-knowledge-catalog.md) — skill · 5000 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
