Skip to main content
Glama
vchinnu

SAP RCA MCP Server

by vchinnu

SAP RCA MCP Server

Python MCP 服务器,使 AI 代理能够通过查询 Azure Log Analytics 数据对 SAP 系统执行根因分析。

架构

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

4 个工具

工具

用途

get_schema

返回已注册表的精确列名、类型、时间列、SID 列和 KQL 提示。请先调用此工具。

execute_query

验证代理生成的 KQL 查询(只读保护),然后执行该查询。

analyze_results

应用 SAP 领域知识对原始行进行分类:错误类别、严重级别、建议。

run_full_rca

自动执行全部 8 个 RCA 步骤,并返回合并后的 JSON 报告。

先决条件

  • Python 3.11+

  • 已安装 Azure CLI(az

  • 可访问 Azure Log Analytics 工作区(需要工作区 ID)

  • 已为您的账户分配 Log Analytics Reader 角色(或使用托管标识)

设置

# 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

配置(.env)

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

在 Azure 上使用托管标识时,只需工作区 ID——将所有 AZURE_CLIENT_* 字段留空。

运行

stdio 模式(Claude Desktop、MCP Inspector、Azure AI Foundry 本地)

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

SSE/HTTP 模式(Azure App Service 部署)

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

SSE 端点将为:http://localhost:8000/sse

连接到 Claude Desktop

添加到 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>"
      }
    }
  }
}

连接到 Azure AI Foundry

在 Azure AI Foundry 中,添加一个指向以下地址的 MCP 连接: https://<your-app-service>.azurewebsites.net/sse

示例代理对话

聚焦查询工作流:

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:

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

已注册的表

当前已注册(7 个中的 1 个):

SAP 源

状态

SapNetweaver_ShortDumps_CL

ST22 ABAP 短转储

✅ 已注册

SapNetweaver_SysLogs_CL

SM21 系统日志

⏳ 等待 schema CSV

SapNetweaver_BatchJobs_CL

SM37 批处理作业

⏳ 等待 schema CSV

SapNetweaver_GetSystemInstanceList_CL

实例可用性

⏳ 等待 schema CSV

SapNetweaver_GetProcessList_CL

进程可用性

⏳ 等待 schema CSV

Prometheus_OSExporter_CL

操作系统指标

⏳ 等待 schema CSV

Prometheus_HaClusterExporter_CL

HA 集群

⏳ 等待 schema CSV

添加新表 Schema

  1. 提供 schema CSV(列 + 描述)——格式与 SchemaforMCP-Details.csv 相同。

  2. 按照现有的 SapNetweaver_ShortDumps_CL 条目作为模板,向 schema_registry.py 添加新条目。

  3. 如果该表需要特定领域的分析逻辑,请向 tools/analyze_results.py 添加 _analyze_<type>() 函数。

  4. tools/rca_orchestrator.py 中的 _KQL_TEMPLATES 添加 KQL 模板。

  5. 重启服务器——无需其他更改。

安全说明

  • execute_query 会阻止所有 KQL 管理命令(.ingest.drop.set 等)

  • run_full_rca 使用参数化的 KQL 模板——SID 值在替换前会经过验证

  • 所有凭据均从环境变量加载——代码中不包含任何机密

  • 在 Azure 上,请使用托管标识;不要在 App Service 配置中存储 AZURE_CLIENT_SECRET


⚠ 待解决问题(需要操作)

在服务器能够连接到您的工作区之前,您需要提供以下信息:

#

内容

查找位置

需更新的文件

1

Log Analytics 工作区 ID

Azure 门户 → Log Analytics 工作区 → 概览 → 工作区 ID

.env

2

Azure 租户 ID

Azure 门户 → Microsoft Entra ID → 概览 → 租户 ID

.env

3

SapNetweaver_ShortDumps_CL 的时间列

您提供的 CSV 显示为 serverTimestamp_t。代理文档显示为 timestamp_t。请确认您的工作区中哪个列名是正确的(检查 Log Analytics → 表 → ShortDumps)。

schema_registry.py 中带有 "time_column" 的行

4

SID_s 列是否存在

您的 ShortDumps 表中是否存在 SID_s?(某些工作区使用 sapsid_s。)

schema_registry.py"sid_column" 字段

5

其余 6 个表的 schema

为其余表提供 schema CSV(格式与 SchemaforMCP-Details.csv 相同),以启用完整的 8 步 RCA

schema_registry.py 条目

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