Skip to main content
Glama
vchinnu

SAP RCA MCP Server

by vchinnu

SAP RCA MCP サーバー

Azure Log Analytics のデータを照会することで、AI エージェントが SAP システムの根本原因分析(Root Cause Analysis)を実行できるようにする Python MCP サーバー。

アーキテクチャ

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 ロールが割り当てられていること(またはマネージド ID)

セットアップ

# 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 を使用する場合、必要なのはワークスペース 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 システムログ

⏳ スキーマ CSV 待ち

SapNetweaver_BatchJobs_CL

SM37 バッチジョブ

⏳ スキーマ CSV 待ち

SapNetweaver_GetSystemInstanceList_CL

インスタンス可用性

⏳ スキーマ CSV 待ち

SapNetweaver_GetProcessList_CL

プロセス可用性

⏳ スキーマ CSV 待ち

Prometheus_OSExporter_CL

OS メトリクス

⏳ スキーマ CSV 待ち

Prometheus_HaClusterExporter_CL

HA クラスター

⏳ スキーマ CSV 待ち

新しいテーブルスキーマの追加

  1. スキーマ 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 ではマネージド ID を使用してください。App Service 設定に AZURE_CLIENT_SECRET を保存しないでください。


⚠ 未解決の質問(対応が必要)

サーバーがワークスペースに接続できるようになる前に、以下を提供する必要があります:

#

内容

確認場所

更新するファイル

1

Log Analytics ワークスペース ID

Azure Portal → Log Analytics ワークスペース → 概要 → ワークスペース ID

.env

2

Azure テナント ID

Azure Portal → 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 つのテーブルスキーマ

残りのテーブルについてスキーマ 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