CPG Knowledge Graph
The MCP for the beauty, cosmetics and personal care sector
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (5)
- HIGH
- LOWin get_signal_chain
- LOWin count_gtin_coverage
- LOWin list_brands_by_node
- INFOin resolve_sparks
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"cpg-knowledge-graph": {
"url": "https://mcp.cpgknowledgegraph.ai/mcp"
}
}
}Remote-Endpunkte
https://mcp.cpgknowledgegraph.ai/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (14)
🟢resolve_gtin(gtin)
Resolve a GTIN to its procurement readiness signal. Zero-pads input to 14 digits.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}🟢check_eligibility(gtin, banner, country_iso)
Check whether a GTIN can ship to a specific retailer banner in a country.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}🟢get_signal_chain(gtin)
Return the full ACM-68000 signal chain for a GTIN (zero-pads to 14).
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}🟢count_gtin_coverage
Global coverage statistics: GTINs, nodes, makers (supply), retailers (demand).
Eingabe-Schema
{
"type": "object",
"properties": {}
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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."
}
}
}Ausgabe-Schema
{
"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).
Eingabe-Schema
{
"type": "object",
"properties": {}
}Ausgabe-Schema
{
"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'.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
}
}
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}🟢find_retailers(region, node, parent_banner, limit)
Global cross-node retailer (demand) search. Filter by region / node / parent_banner.
Eingabe-Schema
{
"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"
}
}
}Ausgabe-Schema
{
"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'.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.)
Eingabe-Schema
{
"type": "object",
"properties": {}
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}Community
Nachweis