Server data from the Official MCP Registry
Normalizes messy catalog attributes, maps categories to Google/Shopify/Amazon. MCP + HTTPS API.
Normalizes messy catalog attributes, maps categories to Google/Shopify/Amazon. MCP + HTTPS API.
Remote endpoints: streamable-http: https://acjlabs-catalog-normalizer.acjlabs.workers.dev/mcp
Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.
Endpoint verified · Requires authentication · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"com-acjlabs-catalog-normalizer": {
"url": "https://acjlabs-catalog-normalizer.acjlabs.workers.dev/mcp"
}
}
}From the project's GitHub README.
Clean, normalized product attributes and taxonomy mappings from messy multi-source catalogs — titles, descriptions, images in; consistent attributes, units, and category mappings out. For merchant-ops teams and feed-tool developers wrangling a Shopify export, a supplier CSV, and a marketplace scrape that each spell "size" or "material" differently.
title, description, raw_attributes), returns normalized
attributes (canonicalized sizes/colors/units) plus category mappings for whichever taxonomies you
request (Google Product Taxonomy, Shopify, Amazon).normalize_catalog tool) or a plain HTTPS API.{
"tool": "normalize_catalog",
"input": {
"products": [{ "title": "...", "description": "...", "raw_attributes": { "size": "Lrg", "Color": "Navy Blue" } }],
"target_taxonomies": ["google", "shopify"]
}
}
{
"results": [
{
"schema_version": "2.0",
"source_title": "...",
"category_paths": {
"google": { "path": ["Apparel & Accessories", "Clothing", "Shirts & Tops"], "leaf_id": null, "confidence": 0.9 },
"shopify": { "path": ["Apparel & Accessories", "Clothing", "Tops"], "leaf_id": "aa-3-1", "confidence": 0.85 }
},
"attributes": {
"size": { "value": "L", "provenance": "canonicalized" },
"color": { "value": "navy", "provenance": "canonicalized" }
}
}
]
}
attributes is keyed by a controlled vocabulary (size, color, material, gender, sleeve_length —
unrecognized keys are dropped, not passed through under a model-chosen name). Each value's provenance
is "canonicalized" when it came from your own raw_attributes input for that product (deterministic
cleanup only, no recall) or "extracted" when the model inferred it from the title/description and it
wasn't in your input — treat "extracted" values as a suggestion, the same way you'd treat a
low-confidence category_paths entry.
Attributes are reliable by construction — canonicalizing values already in your input, not recall.
Category classification is retrieval-grounded, not recalled from memory: candidates are retrieved
from the real, current Google and Shopify taxonomy files and offered to the model as suggestions, so a
leaf_id almost always names a node that actually exists — measured against a 12-product evaluation set,
22/24 (91.7%) exact path + leaf-ID matches. Still treat confidence and a null leaf_id as
"worth a quick check," not a guarantee — a leaf_id is only ever returned when the path independently
verifies against the real taxonomy file, so a null there is an honest "check this" signal, never a
fabricated ID. Amazon has no comprehensive public taxonomy reference file to retrieve candidates from,
so it stays best-effort (recall from memory) rather than retrieval-grounded.
The MCP server is live at https://acjlabs-catalog-normalizer.acjlabs.workers.dev/mcp. Free-tier keys
self-serve — POST /v1/signup with { "email": "you@example.com" } returns your key directly in the
response, good for 500 products/month, no card required. Store it immediately — it is shown once and
cannot be recovered if lost (re-signup for a new one). Paid keys provision the same way via a
one-time claim link once Pro/pay-as-you-go billing is live.
Prefer a typed function over hand-rolling MCP JSON-RPC calls? @acjlabs/catalog-attribute-normalizer-client
(client/, not published yet — npm publish is a gated founder action) wraps the normalize_catalog
tool call:
import { createCatalogNormalizerClient } from "@acjlabs/catalog-attribute-normalizer-client";
const client = createCatalogNormalizerClient({
baseUrl: "https://acjlabs-catalog-normalizer.acjlabs.workers.dev",
apiKey: "...",
});
const results = await client.normalizeCatalog(products, ["google", "shopify"]);
Category classifiers (ProductCategorization.com, ProductClassifier.com) tell you what a product is. They don't touch the messier problem: standardizing attributes across sources that each spell them differently. The one vendor doing the broader job, DataWeave, is enterprise sales-led — no self-serve, no public price. See the full comparison, or read why "clean product data" is actually two different problems (canonicalization vs. classification, and why they fail differently).
This repository hosts the documentation for the hosted service. The service implementation is not open source. Bug reports and feature requests are welcome in this repo's Issues; you can also reach us at contact@acjlabs.com.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.