Skip to main content
Glama

GxP MDM MCP Server - Herramientas Cypher para Claude / ChatGPT / Cursor

Este servidor MCP expone tu inventario de sistemas computerizados como un grafo de conocimiento mediante consultas Cypher. Cualquier agente de Claude/ChatGPT puede consultar los datos maestros GxP sin alucinar.

Arquitectura

Claude / ChatGPT / Cursor
        |
        | MCP (stdio)
        v
  mcp_server.py (14 tools)
        |
        | Cypher queries
        v
  Neo4j (or MOCK mode: NetworkX + JSON) <- your MDM golden record

¿Por qué Cypher?

  • Radio de impacto es un recorrido de grafo: MATCH (start)-[:SENDS_VIA*1..3]->(downstream) — imposible en SQL.

  • Linaje de datos para investigaciones ALCOA+

  • Verdad regulatoria de referencia — el agente solo puede citar cláusulas devueltas por Cypher, lo que evitaalucinaciones.

Related MCP server: NOMIK

14 herramientas expuestas

Herramienta

Cypher

Qué hace

cypher_query

A medida

Cypher seguro de solo lectura para exploración

list_all_systems

MATCH (s:ComputerizedSystem) RETURN

Inventario completo: los auditores preguntan esto primero

get_system_details

Subgrafo completo

Sistema + funciones + registros electrónicos + proveedor + interfaces

get_blast_radius

MATCH (start)-[:SENDS_VIA*1..$depth]->(downstream)

La app estrella: ¿qué sistemas GxP aguas abajo se ven afectados por un cambio?

get_upstream_lineage

Recorrido inverso

¿De dónde vienen los datos?

get_applicable_regulations

(s)-[:HAS_FUNCTION]->(f)-[:REGULATED_BY]->(reg)

Anti-alucinación: solo se pueden citar estas cláusulas

get_system_interfaces

(s)-[flow:SENDS_VIA]->(target)

Interfaces API/archivo/manuales con indicador de GxP

find_validation_gaps

WHERE validation_status <> 'Validated'

Sistemas GxP directos Sin Validar

find_high_risk_functions

WHERE is_gxp_critical AND risk='Major'

Firma electrónica, liberación de lotes, potencia

get_supplier_risk

WHERE validation_status

Estado de auditoría del proveedor, SOC2

get_data_lineage

MATCH (s)-[:GENERATES]->(e:ElectronicRecord)

Linaje de datos para un tipo de registro

get_gxp_inventory

WHERE gxp_impact='Directo'

Inventario GxP directo

assess_change_impact

Compuesta

Orquesta 3 consultas Cypher y genera una evaluación de impacto según GAMP 5 / CSA

Inicio rápido (no se requiere Neo4j - modo mock)

cd gxp_mdm_mcp_server
pip install -r requirements.txt

# Mock mode: uses JSON + NetworkX, no Neo4j required
python scripts/test_tools.py

# Should show:
# - List 4 systems
# - Veeva QMS details with downstream SAP
# - Blast radius: Veeva -> SAP
# - REJECT for audit trail purge
# - Minor for version upgrade

El modo mock es perfecto para pruebas de concepto y para probar con Claude Desktop.

Modo producción con Neo4j

# .env - set Neo4j creds
cp .env.example .env
# Edit .env with your Neo4j URI

# Start Neo4j
docker-compose up -d neo4j

# Load sample data + schema
python scripts/load_sample_data.py

# Test with Neo4j
python scripts/test_tools.py

# Start API harness (optional)
uvicorn src.api_server:app --reload --port 8000
# http://localhost:8000/cypher/list_all_systems
# http://localhost:8000/cypher/blast_radius?system_id=SYS-VEEVA-QMS-001

Configuración de Claude Desktop

  1. Busca tu configuración de Claude: ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) o %APPDATA%/Claude/claude_desktop_config.json (Windows)

  2. Añádela (usa la ruta absoluta):

{
  "mcpServers": {
    "gxp-mdm-cypher": {
      "command": "python",
      "args": ["/absolute/path/to/gxp_mdm_mcp_server/src/mcp_server.py"],
      "env": {
        "NEO4J_URI": "",
        "NEO4J_USERNAME": "neo4j",
        "NEO4J_PASSWORD": "password"
      }
    }
  }
}

Para el modo mock, deja NEO4J_URI vacío. Para Neo4j, establece bolt://localhost:7687.

  1. Reinicia Claude Desktop. Deberías ver las 14 herramientas en 🔌.

  2. Prueba con estos prompts:

List all GxP Direct systems in my inventory
> calls list_all_systems(gxp_impact="Direct")

What happens if I change Veeva QMS? Show blast radius
> calls get_blast_radius(system_id="SYS-VEEVA-QMS-001")

Assess this change: Enable audit trail purge after 7 years for Veeva QMS
> calls assess_change_impact -> should REJECT per 21CFR11.10(e)

Assess Veeva upgrade from 24R1 to 24R2 with no e-sig change
> calls assess_change_impact -> should be Minor per CSA low risk

Configuración de Cursor

Mira la configuración config/cursor_config.json.example - añádela a .cursor/mcp.json

ChatGPT (con compatibilidad con MCP)

Si usas un GPT personalizado de ChatGPT con MCP, usa config/chatgpt_mcp_config.json como referencia. ChatGPT llamará a las herramientas vía stdio.

Consultas Cypher - Verdad de referencia

Todas las consultas están en src/cypher_tools.py. Las principales:

Radio de impacto (el foso):

MATCH (start:ComputerizedSystem {system_id: $system_id})
MATCH path = (start)-[:SENDS_VIA*1..$depth]->(downstream:ComputerizedSystem)
WHERE downstream.gxp_impact IN ['Direct', 'GxP Relevant']
RETURN downstream.system_id, length(path) as distance

Regulación anti-alucinación:

MATCH (s:ComputerizedSystem {system_id: $system_id})
OPTIONAL MATCH (s)-[:HAS_FUNCTION]->(f)-[:REGULATED_BY]->(reg)
RETURN collect(DISTINCT reg) as regulations

Claude tradicional debe citar solo los clause_ids devueltos aquí.

Del POC a producción

  1. Reemplaza data/*.json por la API real de Veeva Vault + ServiceNow CMDB + Okta

  2. Añade herramientas de escritura (con flujo de trabajo de aprobación) para actualizar validation_status

  3. Añade una herramienta de búsqueda vectorial para el RAG de regulación (integra GAMP 5 2.ª ed.)

  4. Añade un agente de revisión periódica que llame find_periodic_review_overdue según una agenda

Ya tienes la capa que todos los agentes CSV deben consultar.

Solución de problemas

  • No module named mcp: ejecuta pip install mcp

  • Claude no ve las herramientas: comprueba la ruta absoluta en la configuración, reinicia Claude y revisa los logs ~/Library/Logs/Claude/mcp*.log

  • La conexión con Neo4j falla: retrocede automáticamente al modo mock, comprueba NEO4J_URI

Buena suerte dominando el mercado.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Transforms code repositories and development documentation into a queryable Neo4j knowledge graph, enabling AI assistants to perform intelligent code analysis, dependency mapping, impact assessment, and automated documentation generation across 15+ programming languages.
    7
  • F
    license
    Not graded
    quality
    D
    maintenance
    AI-native code intelligence graph that builds a persistent knowledge graph of your codebase in Neo4j and exposes it to AI assistants via MCP, enabling contextual code analysis, impact analysis, and dependency tracking.
    21
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to query architecture context, data contracts, and blast radius to prevent cross-repo architectural breakage before merging.
    30
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to query and analyze code across multiple repositories through a unified knowledge graph, with tools for symbol search, impact analysis, and graph algorithms.
    48
    MIT

View all related MCP servers

Related MCP Connectors

  • Shared, permission-aware company context for AI agents, with provenance, approvals and audit.

  • Architecture-grounded query for AI agents. Governance constraints, system dependencies, evidence.

  • AI Agent with Architectural Memory. Impact analysis (free), tests and code from the graph (pro).

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/saram-io/gxp_mdm_mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server