GxP MDM MCP Server
GxP MDM MCP Server - Herramientas Cypher para Claude / ChatGPT / Cursor
Este servidor MCP expone su inventario de sistemas informatizados como un grafo de conocimiento mediante consultas Cypher. Cualquier agente de Claude/ChatGPT ya 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?
Blast radius es un recorrido de grafo:
MATCH (start)-[:SENDS_VIA*1..]->(downstream)— imposible en SQLData lineage para investigaciones ALCOA+
Fuente de verdad regulatoria — el agente solo puede citar las cláusulas devueltas por Cypher, evitando la alucinación
Related MCP server: Fianu Compliance Intelligence MCP Server
14 herramientas expuestas
Herramienta | Cypher | Qué hace |
| Personalizada | Exploración segura de solo lectura |
|
| Inventario completo: los auditores preguntan esto primero |
| Subgrafo completo | Sistema + funciones + e-records + proveedor + interfaces |
|
| Aplicación estrella: ¿Qué sistemas GxP aguas abajo se ven afectados por un cambio? |
| Recorrido inverso | ¿De dónde proceden los datos? |
|
| Anti-alucinación: solo pueden citarse estas cláusulas |
|
| Interfaces API/archivo/manual con indicador GxP |
|
| Sistemas GxP Direct no validados |
|
| Revisiones periódicas vencidas(I checked) |
|
| Firma electrónica, liberación de lotes, potencia |
|
| Estado de auditoría del proveedor, SOC2 |
|
| Linaje de datos de un tipo de registro |
|
| Inventario GxP Direct |
| Compuesta | Orquesta 3 consultas Cypher + genera uneavaluación seGGAMP 5 / CSA |
Guía rápida (no necesitas Neo4j - Modo simulado)
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 upgradeEl modo simulado (mock) es perfecto para una prueba 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-001Configuración de Claude Desktop
Busca la configuración de Claude:
~/Library/Application Support/Claude/claude_preferences.json(Mac) o%APPDATA%/Claude/claude_preferences.json(Win)Añade (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 simulado, deja NEO4J_URI vacío. Para Neo4j, défínalo como bolt://localhost:7687.
Reinicia Claude Desktop. Deberías ver 14 herramientas en 🔌.
Prueba estos comandos:
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 riskConfiguración de Cursor
Consulta config/cursor_config.json.example y añádelo a .cursor/mcp.json
ChatGPT (con soporte MCP)
Si usas un ChatGPT custom con soporte MCP, usa config/chatgpt_mcp_config.json como referencia. ChatGPT llamará a las herramientas a través de stdio.
Consultas Cypher — Base de confianza (ground truth)
Todas las consultas están en src/cypher_tools.py. Las más importantes:
Blast radius (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 distanceAnti-alucinación regulatoria:
MATCH (s:ComputerizedSystem {system_id: $system_id})
OPTIONAL MATCH (s)-[:HAS_FUNCTION]->(f)-[:REGULATED_BY]->(reg)
RETURN collect(DISTINCT reg) as regulationsEl agente SOLO debe citar los clause_ids devueltos aquí.
De la POC a la producción
Reemplaza
data/*.jsonpor la API real de Veeva Vault + ServiceNow CMDB + OktaAñade herramientas de escritura (con flujo de aprobación) para actualizar
validation_statusAñade una herramienta de búsqueda vectorial para regulación RAG (incrusta GAMP 5 2nd Ed)
Añade un agente de revisión periódica que ejecute
find_periodic_review_overdueen un horario
Ahora eres dueño de la capa que todo agente de CSV debe consultar.
Solución de problemas
No module named 'mcp': ejecutapip install mcpClaude no ve las herramientas: comprueba la ruta absoluta en la configuración, reinicia Claude, revisa los registros
~/Library/Logs/Claude/mcp*.logLa conexión con Neo4j falla: vuelve automáticamente al modo simulado — comprueba
NEO4J_URI
Buena suerte dominando el mercado.
NUEVO: Herramientas de escritura con flujo de aprobación (cumplimiento GxP)
¿Por qué un flujo de aprobación?
21 CFR Part 11.50 y el Anexo 11 requieren:
Regla de las dos personas (quien solicita ≠ quien aprueba)
Motivo del cambio (total ALCOA+)
Manifestación de firma electrónica (quién, cuándo, significado)
Trazabilidad de auditoría inmutable (quién, cuándo, antiguo/nuevo, motivo)
Todas las herramientas de escritura hacen cumplir esto y lo garantizan.
Herramientas de escritura añadidas
Herramienta | Qué hace | Control GxP |
| Crea una solicitud de cambio pendiente | Registra auditoría REQUEST; requiere motivo >= 10 caracteres |
| Aprueba y aplica el cambio | Aplica la regla solicitante ≠ aprobador, registra e-firma, actualiza el sistema y la próxima fecha de revisión |
| Rechaza con motivo | Registra auditoría REJECT |
| Lista las aprobaciones QA pendientes | |
| Registro de auditoría completo, con firmas electrónicas | 21CFR11.10(e), Anexo 11.7 |
Ejemplo de flujo de trabajo con Claude
You: Change Veeva QMS status to Validated - Change Implemented, reason: IQ/OQ passed for 24R2 upgrade, requested by qa.john
Claude calls:
request_validation_status_change_tool(system_id="SYS-VEEVA-QMS-001", new_status="Validated - Change Implemented", reason="IQ/OQ passed for 24R2 upgrade, evidence in Veeva Vault VP-2024-089", requested_by="qa.john@company.com")
-> Returns request_id CHG-VAL-A1B2C3, status Pending Approval
You: Approve CHG-VAL-A1B2C3 by qa.sarah, comment: Reviewed IQ/OQ, approved
Claude calls:
approve_validation_status_change_tool(request_id="CHG-VAL-A1B2C3", approver="qa.sarah@company.com", approval_comment="Reviewed IQ/OQ")
-> Applies change, updates sample_systems.json, creates audit trail with e-signature
You: Show audit trail for Veeva QMS
Claude calls:
get_audit_trail_tool(system_id="SYS-VEEVA-QMS-001")
-> Returns who, when, old/new, reason, electronic signature manifestationPrueba vía API:
curl -X POST http://localhost:8000/request-status-change -H "Content-Type: application/json" -d '{"system_id":"SYS-VEEVA-QMS-001","new_status":"Validated - Change Implemented","reason":"IQ/OQ passed for 24R2 upgrade","requested_by":"qa.john@company.com"}'
curl -X POST http://localhost:8000/approve-status-change -d '{"request_id":"CHG-VAL-A1B2C3","approver":"qa.sarah@company.com","approval_comment":"Reviewed"}'
curl http://localhost:8000/audit-trail?system_id=SYS-VEEVA-QMS-001NUEVO: Agente de revisión periódica programada
Qué hace
Automáticamente:
Ejecuta diariamente a las 8 a.m. la consulta Cypher
find_periodic_review_overdue(mediante APScheduler)Para cada sistema GxP Direct con estado vencido, genera un borrador de informe de revisión periódica según la sección 6.5 de GAMP 5 y el Anexo 11.11
Guarda el borrador en JSON y registra en el log de auditoría
CREATED_DRAFT
Cada borrador incluye las 10 secciones que esperan los auditores:
Descripción del sistema (desde el sistema MDM)
Cambios desde la última revisión (desde Jira de simulación)
Desviaciones/incidentes
Revisión de la trazabilidad de auditoría (muestreo, verificación de inmutabilidad)
Revisión de accesos de usuario (cuentas inactivas)
Prueba de copia de seguridad/restauración
Revisión del proveedor (SOC 2)
Integridad de datos (ALCOA+)
Interfaces — blast radius en el grafo del MDM
Conclusión y acciones requeridas
Herramientas
Herramienta | Propósito |
| Escanear estados vencidos (Cypher) |
| Escanear y generar borradores para todos los vencidos |
| Generar uno para un único sistema |
| Listar borradores |
Ejecutar el programador
# Run once manually
python -c "from src.periodic_review_agent.agent import agent; print(agent.scan_overdue())"
# Generate drafts
python -c "from src.periodic_review_agent.agent import agent; print(agent.generate_drafts_for_overdue())"
# Run as daemon (daily 8am + every 6h demo)
python src/periodic_review_agent/scheduler.pyEn producción, sustituye el APADE (APScheduler) por un DAG de Airflow o un flujo de trabajo de Temporal que llame a la herramienta MCP run_periodic_review_scan.
Con Claude
You: Run periodic review scan
Claude calls run_periodic_review_scan() -> finds 2 overdue systems
You: Generate drafts for overdue
Claude calls generate_periodic_review_drafts() -> creates PR-SYS-VEEVA-QMS-001-2025-XXXX reports
You: Show me draft for Veeva QMS
> Returns full 10-section reportLos borradores se guardan en data/periodic_reviews/PR-13*.json, listos para subirlos a Veeva Vault como ValidationArtifact.
Esta versión 2 te hace estar listo para la auditoría: las escrituras están controladas, el registro de auditoría cumple ALCOA+ y las revisiones periódicas está automatizadas, y lo hace exactamente como esperan los controles de calidad: que los consultares paguen 200 dólares/hora.
This server cannot be installed
Maintenance
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
- AlicenseAqualityDmaintenanceEnables creating, managing, analyzing, and visualizing knowledge graphs with support for multiple graph types (topology, timelines, changelogs, requirements, knowledge bases, ontologies) including node/edge management and resource association.15191MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to query software supply chain compliance data, including asset status, security vulnerabilities, and evidence lineage. It allows for natural language analysis of compliance posture, policy violations, and deployment blockers across an organization.
- AlicenseAqualityDmaintenanceConnects AI assistants to ServiceNow CMDB via natural language, enabling querying, dependency analysis, health auditing, CI lifecycle management, and configurable inspection.40MIT
- AlicenseAqualityDmaintenanceEnables AI to analyze, query, and manage a graph-based representation of software architecture for impact analysis, dependency tracking, and design.20121AGPL 3.0
Related MCP Connectors
AI knowledge graph for architecture, portfolio, and digital strategy management.
Shared, permission-aware company context for AI agents, with provenance, approvals and audit.
Runtime AI governance: decision gates, human approval, hash-chained audit, compliance mapping.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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_v2'
If you have feedback or need assistance with the MCP directory API, please join our Discord server