Skip to main content
Glama
vchinnu

SAP RCA MCP Server

by vchinnu

SAP RCA MCP Server

Python-MCP-Server, der KI-Agenten die Durchführung von Root Cause Analysis auf SAP-Systemen ermöglicht, indem er Azure Log Analytics-Daten abfragt.

Architektur

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: CloudWatch Log Analyst MCP

Die 4 Tools

Tool

Zweck

get_schema

Gibt exakte Spaltennamen, Typen, Zeitspalte, SID-Spalte und KQL-Hinweise für registrierte Tabellen zurück. Rufen Sie dies zuerst auf.

execute_query

Validiert eine agentengenerierte KQL-Abfrage (Read-only-Schutz) und führt sie dann aus.

analyze_results

Wendet SAP-Domänenwissen an, um Rohzeilen zu klassifizieren: Fehlerkategorien, Schweregrad, Empfehlungen.

run_full_rca

Führt automatisch alle 8 RCA-Schritte aus und gibt einen konsolidierten JSON-Bericht zurück.

Voraussetzungen

  • Python 3.11+

  • Azure CLI (az) installiert

  • Zugriff auf den Azure Log Analytics-Arbeitsbereich (Workspace-ID erforderlich)

  • Rolle Log Analytics Reader Ihrem Konto zugewiesen (oder Managed Identity)

Einrichtung

# 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 login

Konfiguration (.env)

AZURE_LOG_ANALYTICS_WORKSPACE_ID=<your-workspace-guid>
AZURE_TENANT_ID=<your-tenant-id>

Bei Azure mit Managed Identity wird nur die Workspace-ID benötigt – lassen Sie alle AZURE_CLIENT_*-Felder leer.

Ausführung

stdio-Modus (Claude Desktop, MCP Inspector, Azure AI Foundry lokal)

python server.py
# or:
mcp dev server.py

SSE/HTTP-Modus (Azure App Service-Bereitstellung)

pip install uvicorn
uvicorn server:mcp --host 0.0.0.0 --port 8000

Der SSE-Endpunkt lautet: http://localhost:8000/sse

Verbindung zu Claude Desktop

Fügen Sie zu claude_desktop_config.json hinzu:

{
  "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>"
      }
    }
  }
}

Verbindung zu Azure AI Foundry

Fügen Sie in Azure AI Foundry eine MCP-Verbindung hinzu, die auf https://<your-app-service>.azurewebsites.net/sse zeigt.

Beispiel für eine Agenten-Konversation

Fokussierter Abfrage-Workflow:

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")

Vollständig automatisierte RCA:

Agent → run_full_rca(sid="CHA", time_range_hours=4, issue_description="Multiple batch job failures")
← Returns complete 8-step RCA report

Registrierte Tabellen

Derzeit registriert (1 von 7):

Tabelle

SAP-Quelle

Status

SapNetweaver_ShortDumps_CL

ST22 ABAP Short Dumps

✅ Registriert

SapNetweaver_SysLogs_CL

SM21 Systemprotokoll

⏳ Wartet auf Schema-CSV

SapNetweaver_BatchJobs_CL

SM37 Batch-Jobs

⏳ Wartet auf Schema-CSV

SapNetweaver_GetSystemInstanceList_CL

Instanzverfügbarkeit

⏳ Wartet auf Schema-CSV

SapNetweaver_GetProcessList_CL

Prozessverfügbarkeit

⏳ Wartet auf Schema-CSV

Prometheus_OSExporter_CL

OS-Metriken

⏳ Wartet auf Schema-CSV

Prometheus_HaClusterExporter_CL

HA-Cluster

⏳ Wartet auf Schema-CSV

Hinzufügen eines neuen Tabellenschemas

  1. Stellen Sie die Schema-CSV (Spalten + Beschreibung) bereit – gleiches Format wie SchemaforMCP-Details.csv.

  2. Fügen Sie einen neuen Eintrag in schema_registry.py hinzu, wobei Sie den vorhandenen Eintrag SapNetweaver_ShortDumps_CL als Vorlage verwenden.

  3. Wenn die Tabelle domänenspezifische Analyselogik benötigt, fügen Sie eine _analyze_<type>()-Funktion zu tools/analyze_results.py hinzu.

  4. Fügen Sie eine KQL-Vorlage zu _KQL_TEMPLATES in tools/rca_orchestrator.py hinzu.

  5. Starten Sie den Server neu – keine weiteren Änderungen erforderlich.

Sicherheitshinweise

  • execute_query blockiert alle KQL-Verwaltungsbefehle (.ingest, .drop, .set usw.)

  • run_full_rca verwendet parametrisierte KQL-Vorlagen – SID-Werte werden vor der Substitution validiert

  • Alle Anmeldeinformationen werden aus Umgebungsvariablen geladen – keine Geheimnisse im Code

  • Verwenden Sie auf Azure Managed Identity; speichern Sie AZURE_CLIENT_SECRET nicht in der App Service-Konfiguration


⚠ Offene Fragen (Aktion erforderlich)

Bevor der Server eine Verbindung zu Ihrem Arbeitsbereich herstellen kann, müssen Sie Folgendes bereitstellen:

#

Was

Wo zu finden

Zu aktualisierende Datei

1

Log Analytics Workspace ID

Azure-Portal → Log Analytics-Arbeitsbereich → Übersicht → Workspace-ID

.env

2

Azure Tenant ID

Azure-Portal → Microsoft Entra ID → Übersicht → Tenant ID

.env

3

Zeitspalte für SapNetweaver_ShortDumps_CL

Die von Ihnen bereitgestellte CSV zeigt serverTimestamp_t. Die Agent-Dokumentation zeigt timestamp_t. Bitte bestätigen Sie, welcher Spaltenname in Ihrem Arbeitsbereich korrekt ist (prüfen Sie Log Analytics → Tabellen → ShortDumps).

schema_registry.py Zeile mit "time_column"

4

Vorhandensein der Spalte SID_s

Ist SID_s in Ihrer ShortDumps-Tabelle vorhanden? (Einige Arbeitsbereiche verwenden stattdessen sapsid_s.)

schema_registry.py Feld "sid_column"

5

Verbleibende 6 Tabellenschemata

Stellen Sie Schema-CSVs (gleiches Format wie SchemaforMCP-Details.csv) für die verbleibenden Tabellen bereit, um die vollständige 8-Schritte-RCA zu ermöglichen

schema_registry.py Einträge

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

View all related MCP servers

Related MCP Connectors

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/vchinnu/AMS-MCPV2'

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