SAP RCA MCP Server
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가지 도구
도구 | 목적 |
| 등록된 테이블의 정확한 열 이름, 유형, 시간 열, SID 열 및 KQL 힌트를 반환합니다. 먼저 호출하세요. |
| 에이전트가 생성한 KQL 쿼리를 검증한 후(읽기 전용 가드) 실행합니다. |
| SAP 도메인 지식을 적용하여 원시 행을 분류합니다: 오류 범주, 심각도, 권장 사항. |
| 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.pySSE/HTTP 모드(Azure App Service 배포)
pip install uvicorn
uvicorn server:mcp --host 0.0.0.0 --port 8000SSE 엔드포인트는 다음과 같습니다: 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 소스 | 상태 |
| ST22 ABAP 단축 덤프 | ✅ 등록됨 |
| SM21 시스템 로그 | ⏳ 스키마 CSV 대기 중 |
| SM37 배치 작업 | ⏳ 스키마 CSV 대기 중 |
| 인스턴스 가용성 | ⏳ 스키마 CSV 대기 중 |
| 프로세스 가용성 | ⏳ 스키마 CSV 대기 중 |
| OS 메트릭 | ⏳ 스키마 CSV 대기 중 |
| HA 클러스터 | ⏳ 스키마 CSV 대기 중 |
새 테이블 스키마 추가
스키마 CSV(열 + 설명)를 제공하세요.
SchemaforMCP-Details.csv와 동일한 형식입니다.기존
SapNetweaver_ShortDumps_CL항목을 템플릿으로 삼아schema_registry.py에 새 항목을 추가하세요.테이블에 도메인별 분석 논리가 필요한 경우
tools/analyze_results.py에_analyze_<type>()함수를 추가하세요.tools/rca_orchestrator.py의_KQL_TEMPLATES에 KQL 템플릿을 추가하세요.서버를 다시 시작하세요. 다른 변경은 필요 없습니다.
보안 참고 사항
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 |
|
2 | Azure 테넌트 ID | Azure Portal → Microsoft Entra ID → 개요 → 테넌트 ID |
|
3 |
| 제공하신 CSV에는 |
|
4 | SID_s 열 존재 여부 | ShortDumps 테이블에 |
|
5 | 나머지 6개 테이블 스키마 | 전체 8단계 RCA를 활성화하려면 나머지 테이블에 대한 스키마 CSV( |
|
This server cannot be installed
Maintenance
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
- FlicenseNot gradedqualityDmaintenanceEnables querying and managing Azure Log Analytics workspaces using KQL (Kusto Query Language). Supports executing queries, managing saved queries, and exploring workspace tables and schemas with Service Principal authentication.
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to autonomously query AWS CloudWatch Logs and perform structured root-cause analysis via natural language prompts, using MCP tools for log group listing and Insights queries.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to investigate backend incidents by executing runbooks that gather evidence from observability and storage systems.59MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered analysis of exceptions using vector similarity search and Azure OpenAI for operations teams.
Related MCP Connectors
AI agent run monitoring with incident replay and SLA receipts.
Find relevant security data from Sentinel data lake for building effective agents. More:aka.ms/s/de
Debug, build, and manage Power Automate cloud flows with AI agents
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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