ARC-1
ARC-1 — SAP ADT MCP-Server
ARC-1 (ausgesprochen arc one [ɑːrk wʌn]) — Ein für Unternehmen geeigneter MCP-Server für SAP ABAP-Systeme. Standardmäßig sicher, bereitstellbar auf BTP oder On-Premise und gehärtet durch eine umfassende Abdeckung mit Unit-, Integrations- und E2E-Tests.
ARC-1 verbindet KI-Assistenten (Claude, GitHub Copilot, Copilot Studio und jeden beliebigen MCP-Client) über die ADT REST API mit SAP-Systemen. Er wird als npm-Paket und Docker-Image bereitgestellt.
Vollständige Dokumentation | Einrichtungsanleitung | Tool-Referenz
Warum ARC-1?
Entwickelt für Unternehmen, die KI-gestützte SAP-Entwicklung mit Leitplanken benötigen. Inspiriert durch die Pionierarbeit von abap-adt-api, mcp-abap-adt und vibing-steampunk — ARC-1 ergänzt das, was für den produktiven Einsatz erforderlich ist:
Sicherheits- und Admin-Kontrollen
Standardmäßig sicher — schreibgeschützt, kein freies SQL, keine Tabellenvorschau, keine Transporte ab Werk. Verwenden Sie
--profile developeroder explizite Flags, um Funktionen zu aktivieren.Operation-Allowlists/Denylists — steuern Sie genau, welche Operationstypen (Lesen, Schreiben, Suchen, Abfragen, Aktivieren, Transportieren) erlaubt sind.
Paketbeschränkungen — begrenzen Sie KI-Schreiboperationen (Erstellen, Aktualisieren, Löschen) auf bestimmte Pakete mit Platzhaltern (
--allowed-packages "Z*,$TMP"). Leseoperationen sind nicht paketbeschränkt — nutzen Sie die native SAP-Autorisierung für die Zugriffskontrolle auf Leseebene.Datenzugriffskontrolle — aktivieren Sie die Tabellendatenvorschau (
--block-data=false) oder freies SQL (--block-free-sql=false).Transportsicherheit — erfordern Sie Transportzuweisungen, beschränken Sie auf bestimmte Transporte oder machen Sie Transporte schreibgeschützt. Update-/Löschoperationen verwenden automatisch die Korrekturnummer, wenn kein expliziter Transport angegeben ist.
Sicherheitsprofile — vorkonfigurierte Rollen:
viewer,viewer-data,viewer-sql,developer,developer-data,developer-sql.Schreibzugriffe auf
$TMPbeschränkt, wenn aktiviert — nur lokale/temporäre Objekte; das Schreiben in transportierbare Pakete erfordert explizite--allowed-packages.
Authentifizierung
API-Schlüssel — einfaches Bearer-Token für interne Bereitstellungen.
OIDC / JWT — Entra ID, Keycloak oder jeder OpenID Connect-Anbieter.
OAuth 2.0 — browserbasierter Login für BTP ABAP Environment.
XSUAA — native SAP BTP-Authentifizierung mit automatischem Token-Proxy für MCP-Clients.
Principal Propagation — Benutzeridentität wird über den Cloud Connector weitergeleitet (jede SAP-Aktion wird als der tatsächliche Benutzer ausgeführt, nicht als technisches Konto).
BTP Cloud Foundry-Bereitstellung
Stellen Sie ARC-1 als Cloud Foundry-App auf SAP BTP mit vollständiger Plattformintegration bereit:
Destination Service — Verbindung zu SAP-Systemen über verwaltete Destinations.
Cloud Connector — Erreichen von On-Premise-Systemen über den Connectivity-Proxy.
Principal Propagation — Benutzeridentität wird Ende-zu-Ende über X.509-Zertifikate weitergeleitet.
XSUAA OAuth-Proxy — MCP-Clients authentifizieren sich über Standard-OAuth, ARC-1 übernimmt den BTP-Token-Austausch.
Audit-Logging — strukturierte Ereignisse an stderr, Datei oder BTP Audit Log Service.
Token-Effizienz
11 intent-basierte Tools (~5K Schema-Token) statt 200+ individueller Tools — hält das Kontextfenster des LLM klein.
Lesen/Bearbeiten auf Methodenebene — Lesen oder Aktualisieren einer einzelnen Klassenmethode, nicht der gesamten Quelle (bis zu 20x weniger Token).
Kontextkomprimierung —
SAPContextgibt öffentliche API-Verträge aller Abhängigkeiten in einem Aufruf zurück (7-30x Komprimierung).
Integriertes Objekt-Caching
Automatisches Quell-Caching — jedes gelesene SAP-Objekt wird im Speicher (stdio) oder in SQLite (http-streamable) zwischengespeichert. Wiederholte Lesezugriffe erfolgen sofort, ohne SAP aufzurufen.
Abhängigkeitsgraph-Caching —
SAPContextAbhängigkeitsauflösung basierend auf Quell-Hash; unveränderte Objekte überspringen bei nachfolgenden Durchläufen alle ADT-Aufrufe.Pre-warmer — starten Sie mit
ARC1_CACHE_WARMUP=true, um alle benutzerdefinierten Objekte beim Start vorab zu indizieren, was die umgekehrte Abhängigkeitssuche ermöglicht (SAPContext(action="usages")).Schreib-Invalidierung — wenn
SAPWriteein Objekt ändert, wird dessen Cache-Eintrag automatisch gelöscht; der nächste Lesezugriff holt die frische Quelle.
Siehe docs/caching.md für die vollständige Dokumentation.
Tests
1.367+ Unit-Tests (
53Unit-Test-Dateien, gemocktes HTTP).~160 Integrationstests gegen Live-SAP-Systeme, mit expliziten Gründen für das Überspringen, wenn Anmeldeinformationen oder Fixtures fehlen.
~70 E2E-Tests, die echte MCP-Tool-Aufrufe gegen einen laufenden ARC-1-Server und ein Live-SAP-System ausführen.
CRUD-Lebenszyklus und BTP-Smoke-Lanes enthalten (
test:integration:crud,test:integration:btp:smoke).CI-Matrix auf Node
22und24; Integration + E2E laufen beipushaufmainund internen PRs.Zuverlässigkeits-Telemetrie + Abdeckung veröffentlicht als informative CI-Signale (nicht blockierend).
Tools, verfeinert für den realen Einsatz
Die 11 Tools wurden basierend auf echtem LLM-Interaktionsfeedback entwickelt:
Tool | Was es tut |
SAPRead | Liest ABAP-Quellcode, Tabellendaten, CDS-Views, Metadaten-Erweiterungen (DDLX), Service-Bindings (SRVB), Nachrichtenklassen, BOR-Objekte, bereitgestellte UI5/Fiori-Apps (BSP, BSP_DEPLOY). Strukturiertes Format für Klassen gibt Metadaten + zerlegte Includes als JSON zurück |
SAPSearch | Objektsuche + Volltext-Quellcodesuche im gesamten System |
SAPWrite | Erstellen/Aktualisieren/Löschen von ABAP-Quellcode und DDIC-Metadaten mit automatischem Sperren/Entsperren (PROG, CLAS, INTF, FUNC, INCL, DDLS, DDLX, BDEF, SRVD, DOMA, DTEL). Stapelerstellung für Multi-Objekt-Workflows (z. B. RAP-Stack oder Domäne+Datenelement in einem Aufruf) |
SAPActivate | Aktiviert ABAP-Objekte — einzeln oder im Stapel (wesentlich für RAP-Stacks). Veröffentlichen/Aufheben der Veröffentlichung von OData-Service-Bindings (SRVB) |
SAPNavigate | Gehe-zu-Definition, Referenzen finden, Code-Vervollständigung |
SAPQuery | Führt ABAP SQL mit Vorschlägen bei nicht gefundenen Tabellen aus |
SAPTransport | CTS-Transportmanagement (auflisten, erstellen, freigeben) |
SAPContext | Komprimierter Abhängigkeitskontext — ein Aufruf ersetzt N SAPRead-Aufrufe |
SAPLint | Lokaler ABAP-Lint (systembewusste Presets, automatische Korrektur, Validierung vor dem Schreiben) |
SAPDiagnose | Syntaxprüfung, ABAP Unit-Tests, ATC-Codequalität, Short Dumps, Profiler-Traces |
SAPManage | Funktionsprüfung — erkennt, was das System unterstützt, bevor gehandelt wird |
Tool-Definitionen passen sich automatisch an das Zielsystem an (BTP vs. On-Premise), entfernen nicht verfügbare Typen und passen Beschreibungen an, sodass das LLM niemals nicht unterstützte Operationen versucht.
Funktionserkennung
ARC-1 prüft das SAP-System beim Start und passt sein Verhalten an:
Erkennt HANA, abapGit, RAP/CDS, AMDP, UI5 und Transportverfügbarkeit.
Erkennt automatisch BTP- vs. On-Premise-Systeme.
Ordnet das SAP_BASIS-Release der korrekten ABAP-Sprachversion zu.
Jede Funktion kann erzwungen ein-/ausgeschaltet oder auf automatischer Erkennung belassen werden.
Related MCP server: SAP ERP MCP Server by CData
Schnellstart
npx arc-1@latest --url https://your-sap-host:44300 --user YOUR_USERFür Docker, BTP-Bereitstellung, Client-Konfiguration (Claude Desktop, Claude Code, VS Code, Copilot Studio) und alle Authentifizierungsmethoden siehe die Einrichtungsanleitung.
Dokumentation
Die vollständige Dokumentation finden Sie unter marianfoo.github.io/arc-1.
Anleitung | Beschreibung |
Bereitstellungsoptionen, Authentifizierungsmethoden, Client-Konfiguration | |
Vollständige Referenz für alle 11 Tools | |
Systemarchitektur mit Diagrammen | |
Referenz zur Docker-Bereitstellung | |
Alle Authentifizierungsmethoden | |
Cloud Foundry-Bereitstellung auf SAP BTP | |
Agent-Workflow-Muster und Best Practices |
Entwicklung
npm ci && npm run build && npm testSiehe CLAUDE.md für die Codebasis-Struktur, Testbefehle und Richtlinien für Beiträge.
Credits
Projekt | Autor | Beitrag |
oisee | Ursprünglicher Go MCP-Server — ARC-1s Ausgangspunkt | |
Marcello Urbani | TypeScript ADT-Bibliothek, definitive API-Referenz | |
Mario Andreschak | Erster MCP-Server für ABAP ADT | |
Lars Hvam | ABAP-Parser/Linter (verwendet via @abaplint/core) |
Lizenz
MIT
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 gradedqualityFmaintenanceMCP Server for Nutanix Prism Central14MIT
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to SAP ERP data from Claude Desktop through CData JDBC Drivers. For full CRUD support, check out our MCP Server for SAP ERP (https://www.cdata.com/drivers/sap/download/mcp).6MIT
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to SAP Business One data from Claude Desktop through CData JDBC Drivers. For full CRUD support, check out the first managed MCP platform: CData Connect AI (https://www.cdata.com/ai/).14MIT
- AlicenseAqualityAmaintenanceABAP Development Tools MCP server with comprehensive tooling and documentation for SAP systems1001,08577MIT
Related MCP Connectors
MEOK MCP Hardening MCP — automated security red-team for any MCP server. Maps OWASP LLM Top 10
MCP Server for agents to onboard, pay, and provision services autonomously with InFlow
MCP server for fcc-ecfs
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/arc-mcp/arc-1'
If you have feedback or need assistance with the MCP directory API, please join our Discord server