Skip to main content
Glama
vchinnu

SAP RCA MCP Server

by vchinnu

SAP RCA MCP Server

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>

관리 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 시스템 로그

⏳ 스키마 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 확인).

"time_column"이 있는 schema_registry.py

4

SID_s 열 존재 여부

ShortDumps 테이블에 SID_s가 있습니까? (일부 작업 영역에서는 sapsid_s를 사용합니다.)

schema_registry.py"sid_column" 필드

5

나머지 6개 테이블 스키마

전체 8단계 RCA를 활성화하려면 나머지 테이블에 대한 스키마 CSV(SchemaforMCP-Details.csv와 동일한 형식)를 제공하세요.

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