SAP RFC MCP Server
SAP RFC MCP-Server
Ein SAP RFC-Connector auf Unternehmensebene, basierend auf dem Model Context Protocol (MCP). Dieses Projekt zielt darauf ab, KI-Agenten (wie Claude Desktop, GPT-4, Cursor usw.) einen sicheren, effizienten und kontextbewussten Zugriff auf SAP-Systeme zu ermöglichen. Durch das standardisierte MCP-Protokoll können Agenten SAP RFCs ausführen und Geschäftsdaten abrufen, als würden sie lokale Funktionen aufrufen.
🌟 Projekt-Highlights
Unternehmenssicherheit: Unterstützt eine Master-Key-Verwaltungsarchitektur mit Funktionen zur Generierung dynamischer Tokens (Dynamic Tokens), Gültigkeitsmanagement und sofortigem Widerruf.
End-to-End-Tracing: Identitätsbewusstes Protokollierungssystem; jedes Log enthält die Client-IP und die Agenten-Identität, mit automatischer täglicher Rotation um Mitternacht.
Intelligentes Lesen von Tabellen: Integrierter Schutzmechanismus für Datenpuffer, der automatisch
DATA_BUFFER_EXCEEDED-Fehler behandelt und das sichere, iterative Lesen großer Datenmengen unterstützt.KI-optimierte Metadaten: Bietet detaillierte Funktionsschnittstellendefinitionen, Parameterbeschreibungen und unterstützt den Export von Wissensdatenbanken in einem RAG-freundlichen (Retrieval-Augmented Generation) Format.
Hochverfügbare Sitzungen: Unterstützt intelligentes Sitzungs-Reusing; Agenten müssen die Session-ID nicht manuell verwalten, da das System automatisch aktive Sitzungen basierend auf dem Token wiederherstellt.
🚀 Kernfunktionen (Tools)
Dieser Server stellt dem MCP-Client die folgenden Tool-Sets zur Verfügung, die den gesamten Prozess von der Systemerkennung bis zur Datenmanipulation abdecken:
1. Kern-RFC-Interaktion
call_rfc_function: Dynamischer Aufruf beliebiger SAP RFC-Funktionen, unterstützt die Parameterübergabe komplexer verschachtelter Strukturen.rfc_system_info: Abruf von Metadaten wie SAP-Systemversion, Protokoll, Kernel und Datenbanktyp.get_rfc_functions: Suche nach verfügbaren Remote-Aufruffunktionen im SAP-System mittels Fuzzy-Matching.
2. Sicheres Lesen von Daten
read_table: Tabellenlesetool mit automatischem Überlaufschutz, das Felder basierend auf dem RFC 512-Byte-Limit automatisch auswählt.read_table_complete: Iterativer Lesemodus, der das Anfordern einer großen Anzahl von Feldern unterstützt, die das Pufferlimit überschreiten, und die Verarbeitung automatisch in Batches durchführt.get_table_structure: Abruf der detaillierten Definition einer SAP-Tabelle, einschließlich technischer Feldeigenschaften und mehrsprachiger Beschreibungen.test_table_access: Schnelle Überprüfung der Leseberechtigungen des aktuellen Benutzers für eine bestimmte Tabelle sowie der Datenkonnektivität.
3. Metadatenverwaltung
get_function_metadata: Abruf des vollständigen "Handbuchs" einer Funktion, einschließlich Parameterrichtung, Typ, Länge und mehrsprachiger Kommentare.search_rfc_functions: Volltextsuche nach Funktionsnamen und Beschreibungen, um Agenten beim Auffinden geeigneter Schnittstellen zu unterstützen.export_metadata_for_rag: Export von SAP-Schnittstellenwissen als JSON zur Erstellung einer Offline-Wissensdatenbank für Agenten.
⚙️ Betriebsmodi
Das Projekt unterstützt drei Betriebsmodi, um den Integrationsanforderungen verschiedener Szenarien gerecht zu werden:
HTTP-Modus (Standard): Basiert auf dem von FastAPI bereitgestellten Streamable HTTP-Transport, unterstützt Streaming-Antworten (SSE) und ist für den Zugriff durch Remote-Agenten geeignet.
STDIO-Modus: Kommunikation über Standard-Input/Output, geeignet für lokal installierte MCP-Clients wie Claude Desktop.
Dual-Modus: Gleichzeitige Aktivierung von HTTP und STDIO, um sowohl lokales Debugging als auch Remote-Dienste zu ermöglichen.
📦 Schnelle Bereitstellung
1. Systemvoraussetzungen
Python: Version 3.9 oder höher.
SAP NW RFC SDK: Das offizielle SAP SDK muss installiert sein und die Umgebungsvariable
SAPNWRFC_HOMEmuss konfiguriert sein.
2. Installation
git clone <repo_url>
cd sap-rfc-mcp-server
python -m venv .venv
source .venv/bin/activate # Windows 使用 .venv\Scripts\activate
pip install -e .3. Konfiguration
Kopieren Sie .env.example nach .env und tragen Sie Ihre SAP-Verbindungsparameter sowie Sicherheitsschlüssel ein:
# SAP 连接
SAP_ASHOST=192.168.1.100
SAP_SYSNR=00
SAP_CLIENT=100
SAP_USER=YOUR_USER
SAP_PASSWD=YOUR_PASSWD
# 安全密钥
MCP_MASTER_KEY=admin-secret-key-2026🔐 Authentifizierungsleitfaden
Der Server verwendet eine zweistufige Authentifizierungsarchitektur:
Verwaltungsebene (Master): Verwendung des
MCP_MASTER_KEYfür den Zugriff auf/auth/*-Schnittstellen zur Durchführung der Token-Ausgabe.Geschäftsebene (Agent): Verwendung des generierten dynamischen Tokens für den Zugriff auf
/mcp/*-Schnittstellen zum Aufruf von SAP-Funktionen.
Beispiel für die Token-Generierung (mit Master Key):
POST /auth/token/generate
X-API-Key: admin-secret-key-2026
Body: {"agent_name": "Finance_Agent", "ttl_hours": 48}📂 Projektstruktur
sap_rfc_mcp_server/
├── auth.py # 动态 Token 管理与持久化
├── server.py # MCP 工具定义与处理核心逻辑
├── sap_client.py # 底层 pyrfc 连接管理与池化
├── rfc_table_reader.py # 增强型表数据安全读取逻辑
├── streamable_http_server.py # HTTP/SSE 传输层实现
├── logger.py # 身份感知的自动切分日志系统
└── metadata_manager.py # SAP 元数据分析与 RAG 优化📖 Weitere Dokumentation
QUICKSTART.md: 5-Minuten-Schnellstartanleitung.
MODES_GUIDE.md: Detaillierte Erläuterung der Betriebsmodi und Konfiguration.
DEPLOY.md: Bereitstellung in der Produktionsumgebung mit Systemd und Docker.
© 2026 SAP RFC MCP Server Team. Lizenziert unter MIT.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Cloud-hosted MCP server for secure AI access to enterprise data sources via CData Connect AI.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.