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-ADT
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 deployed
Maintenance
Related MCP Connectors
Read and write KukGit repositories, files, issues and pull requests from an AI assistant.
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…
Plan Salesforce deploys, open pull requests and trigger pipelines from your AI client.
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.518MIT
- AlicenseCqualityDmaintenanceFacilitates interaction with SAP ABAP systems via ADT APIs, enabling object management, transport handling, and code analysis.100171 npmMIT
- AlicenseAqualityDmaintenanceEnables AI agents to read, write, activate, and transport ABAP code in SAP systems via ABAP ADT REST API, without needing SAP GUI.24541 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to perform ABAP Development Tools operations on SAP ERP (ECC and S/4HANA) systems, including source code editing, object activation, syntax checks, and ABAP unit tests.8 npmMIT