CPG Knowledge Graph

The MCP for the beauty, cosmetics and personal care sector

¿Debería usar esto?

Calidad y seguridad

B
Calidad de la descripción
89%
Integridad del esquema
79%
Calidad de los nombres
93%
Riesgo de envenenamiento
80%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (5)

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

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,490Tokens (definiciones de herramientas)
~1.0 KBTamaño de respuesta típico
Impacto moderado en la atención (1.95% del contexto de 128k)

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

Qué puede hacer

Inventario de herramientas

Herramientas (14)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada14 herramientas
verificadoversión no registrada14 herramientas