SAP RCA MCP Server
SAP RCA MCP Server
Servidor MCP en Python que permite a los agentes de IA realizar análisis de causa raíz en sistemas SAP consultando datos de Azure Log Analytics.
Arquitectura
AI Agent (Azure AI Foundry / Claude / Copilot Studio)
│ MCP Tool Calls
▼
FastMCP Server (server.py)
├── get_schema → schema_registry.py (table/column metadata)
├── execute_query → la_client.py (validated KQL execution)
├── analyze_results → domain_knowledge.py (SAP error classification)
└── run_full_rca → rca_orchestrator.py (8-step automated workflow)
│
▼
Azure Log Analytics (read-only KQL queries via Managed Identity)Related MCP server: exception-mcp-server
Las 4 herramientas
Herramienta | Propósito |
| Devuelve los nombres de columna exactos, tipos, columna de tiempo, columna SID y sugerencias KQL para las tablas registradas. Llama a esto primero. |
| Valida una consulta KQL generada por el agente (protección de solo lectura) y luego la ejecuta. |
| Aplica conocimiento de dominio de SAP para clasificar filas sin procesar: categorías de error, severidad, recomendaciones. |
| Ejecuta los 8 pasos de RCA automáticamente y devuelve un informe JSON consolidado. |
Requisitos previos
Python 3.11+
Azure CLI (
az) instaladoAcceso al área de trabajo de Azure Log Analytics (se necesita el ID del área de trabajo)
Rol
Log Analytics Readerasignado a tu cuenta (o identidad administrada)
Configuración
# 1. Clone / navigate to this folder
cd C:\Users\padmajat\Documents\AMS-Agentic-RCA\MCP
# 2. Create virtual environment
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # Linux/macOS
# 3. Install dependencies
pip install -r requirements.txt
# 4. Configure
copy .env.example .env
# Edit .env and fill in AZURE_LOG_ANALYTICS_WORKSPACE_ID and AZURE_TENANT_ID
# 5. Authenticate (local development)
az loginConfiguración (.env)
AZURE_LOG_ANALYTICS_WORKSPACE_ID=<your-workspace-guid>
AZURE_TENANT_ID=<your-tenant-id>En Azure con identidad administrada, solo se necesita el ID del área de trabajo: deja todos los campos AZURE_CLIENT_* en blanco.
Ejecución
Modo stdio (Claude Desktop, MCP Inspector, Azure AI Foundry local)
python server.py
# or:
mcp dev server.pyModo SSE/HTTP (despliegue en Azure App Service)
pip install uvicorn
uvicorn server:mcp --host 0.0.0.0 --port 8000El endpoint SSE será: http://localhost:8000/sse
Conectar a Claude Desktop
Añade a claude_desktop_config.json:
{
"mcpServers": {
"sap-rca": {
"command": "python",
"args": ["C:/Users/padmajat/Documents/AMS-Agentic-RCA/MCP/server.py"],
"env": {
"AZURE_LOG_ANALYTICS_WORKSPACE_ID": "<your-workspace-id>",
"AZURE_TENANT_ID": "<your-tenant-id>"
}
}
}
}Conectar a Azure AI Foundry
En Azure AI Foundry, añade una conexión MCP que apunte a:
https://<your-app-service>.azurewebsites.net/sse
Ejemplo de conversación con el agente
Flujo de trabajo de consulta enfocada:
Agent → get_schema(["SapNetweaver_ShortDumps_CL"])
Agent → execute_query("SapNetweaver_ShortDumps_CL | where serverTimestamp_t > ago(4h) | where SID_s == 'CHA' | take 100")
Agent → analyze_results(results, "short_dumps", context="SID=CHA, last 4h")RCA automatizado completo:
Agent → run_full_rca(sid="CHA", time_range_hours=4, issue_description="Multiple batch job failures")
← Returns complete 8-step RCA reportTablas registradas
Actualmente registradas (1 de 7):
Tabla | Origen SAP | Estado |
| ST22 ABAP Short Dumps | ✅ Registrada |
| SM21 System Log | ⏳ Esperando CSV de esquema |
| SM37 Batch Jobs | ⏳ Esperando CSV de esquema |
| Instance Availability | ⏳ Esperando CSV de esquema |
| Process Availability | ⏳ Esperando CSV de esquema |
| OS Metrics | ⏳ Esperando CSV de esquema |
| HA Cluster | ⏳ Esperando CSV de esquema |
Añadir un nuevo esquema de tabla
Proporciona el CSV de esquema (columnas + descripción) — mismo formato que
SchemaforMCP-Details.csv.Añade una nueva entrada a
schema_registry.pysiguiendo la entrada existente deSapNetweaver_ShortDumps_CLcomo plantilla.Si la tabla necesita lógica de análisis específica del dominio, añade una función
_analyze_<type>()atools/analyze_results.py.Añade una plantilla KQL a
_KQL_TEMPLATESentools/rca_orchestrator.py.Reinicia el servidor — no se necesitan otros cambios.
Notas de seguridad
execute_querybloquea todos los comandos de gestión de KQL (.ingest,.drop,.set, etc.)run_full_rcautiliza plantillas KQL parametrizadas — los valores de SID se validan antes de la sustituciónTodas las credenciales se cargan desde variables de entorno — sin secretos en el código
En Azure, usa identidad administrada; no almacenes
AZURE_CLIENT_SECRETen la configuración de App Service
⚠ Preguntas pendientes (Acción requerida)
Antes de que el servidor pueda conectarse a tu área de trabajo, debes proporcionar:
# | Qué | Dónde encontrarlo | Archivo a actualizar |
1 | ID del área de trabajo de Log Analytics | Azure Portal → Área de trabajo de Log Analytics → Información general → ID del área de trabajo |
|
2 | ID de inquilino de Azure | Azure Portal → Microsoft Entra ID → Información general → ID de inquilino |
|
3 | Columna de tiempo para | El CSV que proporcionaste muestra |
|
4 | Presencia de la columna SID_s | ¿Está presente |
|
5 | Esquemas de las 6 tablas restantes | Proporciona los CSV de esquema (mismo formato que | entradas de |
This server cannot be deployed
Maintenance
Related MCP Connectors
AI agent run monitoring with incident replay and SLA receipts.
Read-only finance and operations controls for AI agents with evidence and safe next actions.
AI agent observability for production traces, natural-language insights, and improvement loops.
- causelyOAuthapp.causely
Causal reasoning for reliability: root cause, blast radius, and service health for agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to investigate backend incidents by executing runbooks that gather evidence from observability and storage systems.7 npm9MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered analysis of exceptions using vector similarity search and Azure OpenAI for operations teams.-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query and analyze data in Azure Data Explorer, Log Analytics, and Microsoft Sentinel using Kusto Query Language (KQL) through tools, resources, and prompts.6MIT
- AlicenseAqualityAmaintenanceEnables AI agents to discover, inspect, and call SAP RFC-enabled function modules (BAPIs/RFCs) with configurable read/write policies, transaction support, audit logging, and ABAP source retrieval.61MIT