CPG Knowledge Graph

The MCP for the beauty, cosmetics and personal care sector

Sollte ich dies verwenden

Qualität und Sicherheit

B
Qualität der Beschreibung
89%
Vollständigkeit des Schemas
79%
Qualität der Benennung
93%
Risiko der Vergiftung
80%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (5)

  • HIGHTool poisoning patterns detected
  • LOWTool 'get_signal_chain' description lacks action verbin get_signal_chain
  • LOWTool 'count_gtin_coverage' description lacks action verbin count_gtin_coverage
  • LOWTool 'list_brands_by_node' description lacks action verbin list_brands_by_node
  • INFOTool description contains placeholder or incomplete textin resolve_sparks

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~2,490Tokens (Tool-Definitionen)
~1.0 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (1.95% von 128k Kontext)

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-http

Was es kann

Tool-Inventar

Tools (14)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet14 Tools
verifiziertVersion nicht aufgezeichnet14 Tools