CPG Knowledge Graph
The MCP for the beauty, cosmetics and personal care sector
¿Debería usar esto?
Calidad y seguridad
Hallazgos (5)
- HIGH
- LOWen get_signal_chain
- LOWen count_gtin_coverage
- LOWen list_brands_by_node
- INFOen resolve_sparks
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"cpg-knowledge-graph": {
"url": "https://mcp.cpgknowledgegraph.ai/mcp"
}
}
}Puntos de conexión remotos
https://mcp.cpgknowledgegraph.ai/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (14)
🟢resolve_gtin(gtin)
Resolve a GTIN to its procurement readiness signal. Zero-pads input to 14 digits.
Esquema de entrada
{
"type": "object",
"properties": {
"gtin": {
"description": "GS1 GTIN of the product, 8 to 14 digits; zero-padded to the canonical 14-digit GTIN-14 before lookup (e.g. 00990832300624).",
"type": "string"
}
},
"required": [
"gtin"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢check_eligibility(gtin, banner, country_iso)
Check whether a GTIN can ship to a specific retailer banner in a country.
Esquema de entrada
{
"type": "object",
"properties": {
"gtin": {
"description": "GS1 GTIN of the product, 8 to 14 digits; zero-padded to the canonical 14-digit GTIN-14 before lookup (e.g. 00990832300624).",
"type": "string"
},
"banner": {
"description": "Retail banner name exactly as registered in the graph (the retailer_name returned by find_retailers).",
"type": "string"
},
"country_iso": {
"description": "ISO 3166-1 alpha-2 code of the selling market (e.g. FR), case-insensitive.",
"type": "string"
}
},
"required": [
"gtin",
"banner",
"country_iso"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢get_signal_chain(gtin)
Return the full ACM-68000 signal chain for a GTIN (zero-pads to 14).
Esquema de entrada
{
"type": "object",
"properties": {
"gtin": {
"description": "GS1 GTIN of the product, 8 to 14 digits; zero-padded to the canonical 14-digit GTIN-14 before lookup (e.g. 00990832300624).",
"type": "string"
}
},
"required": [
"gtin"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢count_gtin_coverage
Global coverage statistics: GTINs, nodes, makers (supply), retailers (demand).
Esquema de entrada
{
"type": "object",
"properties": {}
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢resolve_scope(scope_id)
GSC Scoped Agents Registry — Era 1 founding registry (1,000,000 standing) plus Era 2 station-keyed registry (1,000,000 capacity, mint-on-activation) under SM-ECO-10060.
Esquema de entrada
{
"type": "object",
"properties": {
"scope_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Scoped agent id to resolve: Era 1 sa-{parent}-{jurisdiction}-m{mcp}-{seq} or Era 2 sa2-{namespace}-m{mcp}-d{station}-w{seq}. Omit for the registry summary."
}
}
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢list_nodes
The 49 sovereign nodes (the spine) — each with its GS1 GTIN and CLEAN per-node maker (supply) and retailer (demand) counts (separate subqueries, never summed).
Esquema de entrada
{
"type": "object",
"properties": {}
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢resolve_node(code)
Resolve one node: its GS1 license + its makers (supply) + its retailers (demand). The market-picture call for a jurisdiction; use this first for 'what does the market look like in X'.
Esquema de entrada
{
"type": "object",
"properties": {
"code": {
"description": "Sovereign node code: the ISO 3166-1 alpha-2 code of the jurisdiction (e.g. FR, KR, AE), case-insensitive; list_nodes returns the 49 codes.",
"type": "string"
}
},
"required": [
"code"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢find_makers(segment, region, node, has_website, limit)
Global cross-node maker (supply) search. Filter by segment / region / node / has_website.
Esquema de entrada
{
"type": "object",
"properties": {
"segment": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Maker segment label as stored on the registry row (e.g. Haircare, Skincare); exact match. Omit for all segments."
},
"region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Region label as stored on the registry row (e.g. EU, ASIA), case-insensitive. Omit for all regions."
},
"node": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Sovereign node code: the ISO 3166-1 alpha-2 code of the jurisdiction (e.g. FR, KR, AE), case-insensitive; list_nodes returns the 49 codes. Omit for all nodes."
},
"has_website": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "true = only makers with a website on record; false = only makers without one; omit for both."
},
"limit": {
"default": 25,
"description": "Maximum rows to return, 1 to 500 (default 25).",
"type": "integer"
}
}
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢find_retailers(region, node, parent_banner, limit)
Global cross-node retailer (demand) search. Filter by region / node / parent_banner.
Esquema de entrada
{
"type": "object",
"properties": {
"region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Region label as stored on the registry row (e.g. EU, ASIA), case-insensitive. Omit for all regions."
},
"node": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Sovereign node code: the ISO 3166-1 alpha-2 code of the jurisdiction (e.g. FR, KR, AE), case-insensitive; list_nodes returns the 49 codes. Omit for all nodes."
},
"parent_banner": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Parent banner name, case-insensitive substring match (e.g. Carrefour). Omit for all banners."
},
"limit": {
"default": 25,
"description": "Maximum rows to return, 1 to 500 (default 25).",
"type": "integer"
}
}
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢node_market(code)
Supply↔demand bridge for ONE jurisdiction: makers (supply) and retailers (demand) as two separate counts (never summed), plus the same-node potential bridge pairs. The market-picture call for a jurisdiction; use this first for 'what does the market look like in X'.
Esquema de entrada
{
"type": "object",
"properties": {
"code": {
"description": "Sovereign node code: the ISO 3166-1 alpha-2 code of the jurisdiction (e.g. FR, KR, AE), case-insensitive; list_nodes returns the 49 codes.",
"type": "string"
}
},
"required": [
"code"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢list_sku_types
SPARKS taxonomy: the 84 standing BPC product-type codes the graph is structured on. Validate a type against this before a typed query. (BRAND is a tier, not a type.)
Esquema de entrada
{
"type": "object",
"properties": {}
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢list_brands_by_node(node)
SPARKS depth surface: the distinct brands SPARKS covers in a sovereign market. Answers 'what brands do you know in [node]'. Coverage only — no pack/size values.
Esquema de entrada
{
"type": "object",
"properties": {
"node": {
"description": "Sovereign node code: the ISO 3166-1 alpha-2 code of the jurisdiction (e.g. FR, KR, AE), case-insensitive; list_nodes returns the 49 codes.",
"type": "string"
}
},
"required": [
"node"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢get_kernel(brand, node)
SPARKS completeness tier for a brand in a market: 100 = resolvable (a real pack/size record is held) . 8 = registered (brand known, pack/size pending) . 'floor' = STANDARD default (no brand-specific record). Returns the stored tier flag — do NOT compute a score. Never returns a pack/size.
Esquema de entrada
{
"type": "object",
"properties": {
"brand": {
"description": "Brand name as marketed (e.g. Nivea); normalized exact match, fail-closed.",
"type": "string"
},
"node": {
"description": "Sovereign node code: the ISO 3166-1 alpha-2 code of the jurisdiction (e.g. FR, KR, AE), case-insensitive; list_nodes returns the 49 codes.",
"type": "string"
}
},
"required": [
"brand",
"node"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢resolve_sparks(gtin)
Two-branch SPARKS resolver (zero-pads GTIN to 14). Branch A GSC Territory/License GTIN (990832300xxx) -> FULL license record (public). Branch B any third-party BPC GTIN -> GATED proof {recognized, region_node, kernel_available}; the pack/size VALUE is NEVER returned. Route to Navigator. Brand match is fail-closed (normalized exact match); uncertainty -> recognized:false.
Esquema de entrada
{
"type": "object",
"properties": {
"gtin": {
"description": "GS1 GTIN of the product, 8 to 14 digits; zero-padded to the canonical 14-digit GTIN-14 before lookup (e.g. 00990832300624).",
"type": "string"
}
},
"required": [
"gtin"
]
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}Comunidad
Evidencia