sap-adt-mcp
sap-adt-mcp
MCP-Server und Python-Client für die REST-API von SAP ADT (ABAP Development Tools). Er bietet Ihrem KI-Assistenten dieselben Operationen, die Eclipse ADT verwendet — Repository durchsuchen, Quellcode lesen und schreiben, aktivieren, Syntax prüfen und mit Transport Requests arbeiten — und spricht dabei mit denselben Endpunkten /sap/bc/adt/*.
Die vollständige technische Dokumentation gibt es auch auf Englisch: docs/PROJECT_DOCUMENTATION.md.
Was sich damit machen lässt
Suchen und Navigieren — Objekte per Platzhalter (
Z*,ZCL_*), Paketinhalt (auch mit Namespace/ACME/PKG) und MetadatenQuellcode lesen und schreiben — mit Sperre, Transportzuordnung und Aktivierung in einem einzigen Aufruf; optional Speichern/Lesen lokaler Dateien
Aktivieren und Syntax prüfen — mit Fehlermeldungen mit Zeile und Spalte
Transport Requests — auflisten, anlegen, freigeben und prüfen, ob ein Objekt einen benötigt
Objekte anlegen — Programme, Klassen, Schnittstellen und Pakete (lokal oder transportierbar)
DDIC als Markdown exportieren — Tabellen, Datenelemente, Domänen und Views werden zu lesbarem Kontext für die KI
Mit älteren Releases funktionieren — die Media Types werden pro Endpunkt ausgehandelt, und
sap_system_infosagt, was das jeweilige System unterstützt
Die Anmeldedaten liegen im Credential Manager des Betriebssystems; es wird kein Passwort in einer Projektdatei gespeichert.
Related MCP server: mcp-abap-abap-adt-api
Voraussetzungen
Anforderung | Minimum | Prüfung |
Python | 3.10+ |
|
SAP-System | NetWeaver 7.31 SP04+ mit aktivem ICF-Knoten |
|
MCP-Client | Cursor, Claude Code, Claude Desktop, VS Code oder anderer mit MCP-Unterstützung | — |
Netzwerk | Zugriff auf Host und Port des SAP-Systems | — |
Die SAP-seitigen Voraussetzungen (ICF-Dienste, Rollen und Berechtigungsobjekte) sind in Abschnitt 6 der Befehlsreferenz beschrieben.
Installation
Direkt von GitHub (empfohlen)
pip install git+https://github.com/engoetz/sap-adt-mcpDas registriert zwei Befehle im PATH:
Befehl | Wofür |
| Terminalverbindungen verwalten (Passwort über verdeckte Eingabeaufforderung) |
| MCP-Server ausführen (stdio) |
Ohne dauerhafte Installation, mit uv:
uvx --from git+https://github.com/engoetz/sap-adt-mcp sap-adt-mcpAus dem Quellcode (für die Entwicklung)
git clone https://github.com/engoetz/sap-adt-mcp
cd sap-adt-mcp
python -m venv .venv && .venv/Scripts/activate # Linux/macOS: source .venv/bin/activate
pip install -e ".[dev]"
python -m pytest tests -qKonfiguration im MCP-Client
Nach der Installation ist der Befehl sap-adt-mcp bereits im PATH — ein absoluter Pfad ist nicht nötig:
{
"mcpServers": {
"sap-adt": {
"command": "sap-adt-mcp",
"args": []
}
}
}Wo dieser Block platziert wird:
Client | Datei |
Cursor (global) |
|
Cursor (pro Projekt) |
|
Claude Code |
|
Claude Desktop |
|
Wenn Sie das Programm lieber direkt aus dem Quellcode ausführen möchten, ohne das Paket zu installieren, ersetzen Sie den Befehl durch "command": "python", "args": ["/caminho/para/sap-adt-mcp/scripts/run_mcp.py"].
Überprüfen
Im Cursor erscheint der Server als user-sap-adt unter Settings > MCP. Um in einem beliebigen Client zu testen, rufen Sie sap_list_environments() auf — es sollte die Liste der gespeicherten Verbindungen zurückgeben.
Problem | Lösung |
Server erscheint nicht | Prüfen Sie den Pfad der Konfigurationsdatei und öffnen Sie den Client erneut |
Server wird rot angezeigt | Führen Sie |
| Das Paket wurde in einer anderen virtuellen Umgebung installiert |
| Führen Sie |
| Führen Sie |
Anmeldedaten
Über das Terminal (empfohlen)
sap-adt add DEVDer Befehl fragt Host, Port, Mandant, Benutzer, Sprache und HTTPS ab (Enter akzeptiert den vorgeschlagenen Wert) und zuletzt das Passwort — zweimal einzugeben, ohne Echo auf dem Bildschirm. So gelangt es weder in den Shell-Verlauf noch in den Verlauf des KI-Chats.
sap-adt list # conexões salvas e se têm senha
sap-adt edit DEV --port 8020 # alterar campos sem tocar na senha
sap-adt password DEV # trocar apenas a senha
sap-adt test DEV # conectar e sondar os endpoints ADT
sap-adt delete DEV # remover conexão e senhaEs gibt keinen Parameter
--password: Das Passwort wird grundsätzlich nur über eine Eingabeaufforderung erfasst. Für die Automatisierung wird die VariableSAP_PASSWORDakzeptiert.
Das Passwort wird im Schlüsselbund des Betriebssystems gespeichert (Windows Credential Manager, macOS Keychain, Linux Secret Service). Die übrigen Parameter liegen in ~/.sap-adt/environments.json, außerhalb des Projekts.
Über den Chat
sap_save_password(system_id="DEV", host="...", port=8000, client="100", user="username", password="...") macht dasselbe — aber das Passwort bleibt im Chatverlauf gespeichert. Bevorzugen Sie das Terminal.
Erste Schritte
sap_connect(system_id="DEV")
sap_system_info() # o que este sistema suporta (rode em release antiga)
sap_search(query="Z*", object_type="CLAS")
sap_read_source(object_name="ZCL_MINHA_CLASSE", object_type="CLAS")
sap_write_source(
object_name="ZCL_MINHA_CLASSE",
object_type="CLAS",
source_code="...",
transport_request="DEVK900123"
)Außerhalb des MCP-Clients führt sap-adt test DEV dieselbe Diagnose über das Terminal aus.
Kompatibilität zwischen Releases
Ältere Systeme (ECC, NetWeaver 7.3x) bieten eine Teilmenge von ADT an und verstehen nicht immer dieselben Media-Type-Versionen. Der Client kümmert sich automatisch darum:
Pro Endpunkt ausgehandelte Media Types — vom neuesten zum ältesten, wobei gemerkt wird, was funktioniert hat
Discovery mit Alternativen, wenn
/sap/bc/adt/discoveryim SICF nicht aktiv istTransport in beiden Formen gesendet (
corrNrin der Query und als Headersap-transportrequest)sap_system_infoprüft die Endpunkte und sagt, welche Werkzeuge dort nicht funktionieren
Details in Abschnitt 6.7 der Referenz.
MCP-Tools (25)
Verbindung und Anmeldedaten
Tool | Beschreibung |
| Am SAP-System anmelden (unterstützt gespeicherte Umgebungen) |
| Aktuelle Verbindung beenden (ermöglicht Systemwechsel) |
| Diagnose: welche ADT-Endpunkte das System unterstützt |
| Verfügbare ADT-Dienste auflisten |
| Anmeldedaten im Credential Manager des Betriebssystems speichern |
| Gespeicherte Anmeldedaten entfernen |
| Gespeicherte SAP-Umgebungen auflisten |
Repository
Tool | Beschreibung |
| ABAP-Objekte durchsuchen (CLAS, PROG, INTF, FUGR, TABL) |
| Paketinhalt auflisten (unterstützt Namespaces) |
| Details zu einem Objekt abrufen (Name, Typ, Paket, Verantwortlicher) |
| DDIC-Metadaten als Markdown exportieren |
Quellcode
Tool | Beschreibung |
| ABAP-Quellcode lesen (optional: in lokale Datei speichern) |
| Quellcode mit automatischer Sperre, Transport und Aktivierung schreiben |
| Objekte kompilieren/aktivieren |
| Syntaxprüfung ohne Aktivierung |
Transport Requests
Tool | Beschreibung |
| Sperrstatus des Objekts prüfen |
| Offene Transport Requests auflisten |
| Neuen Transport Request anlegen |
| Einen Transport Request freigeben |
| Prüfen, ob ein Objekt einen Transport benötigt |
Anlegen und Löschen
Tool | Beschreibung |
| Neues ABAP-Programm anlegen |
| Neue ABAP-Klasse anlegen |
| Neue ABAP-Schnittstelle anlegen |
| Neues ABAP-Paket (DEVC) anlegen, lokal oder transportierbar |
| ABAP-Objekt löschen (erfordert |
Parameter, Beispiele und Rückgabewerte für jedes Tool: docs/MCP_COMMAND_REFERENCE.md
Architektur
Cliente MCP → servidor MCP (stdio/JSON-RPC) → cliente REST ADT → SAP /sap/bc/adt/*src/sap_adt/
├── client.py # HTTP: autenticação, CSRF, sessões stateful, negociação de media type
├── credential_store.py # ~/.sap-adt/environments.json + keyring do SO
├── repository.py # pesquisa, navegação de pacotes, metadados
├── source.py # leitura/escrita de fonte com bloqueio
├── activation.py # ativação e verificação de sintaxe
├── transport.py # transport requests (CTS)
├── ddic_export.py # DDIC → Markdown
├── cli.py # comando `sap-adt`
├── models.py # dataclasses
├── exceptions.py # hierarquia de exceções
└── mcp_server.py # servidor MCP com as 25 ferramentasAbhängigkeit | Zweck |
| HTTP-Client der ADT-REST-API |
| SDK des Model Context Protocol (FastMCP) |
| XML-Parsing |
| Anmeldedaten im Betriebssystem-Schlüsselbund |
Entwicklung
pip install -e ".[dev]"
python -m pytest tests -qDie Tests sind offline: Es wird weder ein SAP-System noch ein Netzwerk benötigt. Sie decken die URI-Auflösung, die XML-Parser, die mit statischen Antworten gespeist werden (einschließlich des Formats älterer Releases), und die CLI ab. Die CI führt die Suite unter Linux und Windows, Python 3.10 und 3.13 aus und prüft, dass das Paket gebaut werden kann.
Beiträge und Problemberichte sind über die issues willkommen. Wenn Sie eine Issue eröffnen, fügen Sie weder Hostname, Benutzer, Mandant noch proprietäre Codeausschnitte ein — beschreiben Sie das Verhalten und fügen Sie, wenn möglich, die Ausgabe von sap_system_info hinzu.
Dokumentation
Dokument | Inhalt |
Befehlsreferenz: Parameter, Beispiele, SAP-Voraussetzungen und das CLI-Handbuch | |
Vollständige technische Dokumentation (Englisch) | |
Vollständige technische Dokumentation (Portugiesisch) | |
Arbeitsregeln für den Assistenten, der die Werkzeuge nutzt |
Lizenz
Unabhängiges Projekt, ohne Zugehörigkeit, Sponsoring oder Billigung durch SAP SE. SAP, ABAP und SAP NetWeaver sind Marken der SAP SE. Das Werkzeug nutzt ausschließlich die öffentlich dokumentierte ADT-API mit den Anmeldedaten des jeweiligen Benutzers.
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
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to access SAP ADT APIs for reading, writing, debugging, deploying, and testing ABAP code through natural language or DSL automation.448MIT
- AlicenseCqualityCmaintenanceEnables interaction with SAP ABAP systems through ADT APIs, allowing management of ABAP objects, transport requests, and code analysis via natural language.100148MIT
- AlicenseCqualityCmaintenanceFacilitates interaction with SAP ABAP systems via ADT APIs, enabling object management, transport handling, and code analysis.100148MIT
- FlicenseAqualityCmaintenanceEnables AI agents to read, write, activate, and transport ABAP code in SAP systems via ABAP ADT REST API, without needing SAP GUI.424
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
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/engoetz/sap-adt-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server