Skip to main content
Glama

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 developer oder 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 $TMP beschrä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).

  • KontextkomprimierungSAPContext gibt ö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-CachingSAPContext Abhä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 SAPWrite ein 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 (53 Unit-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 22 und 24; Integration + E2E laufen bei push auf main und 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.

Schnellstart

npx arc-1@latest --url https://your-sap-host:44300 --user YOUR_USER

Fü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

Einrichtungsanleitung

Bereitstellungsoptionen, Authentifizierungsmethoden, Client-Konfiguration

Tool-Referenz

Vollständige Referenz für alle 11 Tools

Architektur

Systemarchitektur mit Diagrammen

Docker-Anleitung

Referenz zur Docker-Bereitstellung

Unternehmens-Authentifizierung

Alle Authentifizierungsmethoden

BTP-Bereitstellung

Cloud Foundry-Bereitstellung auf SAP BTP

KI-Nutzungsmuster

Agent-Workflow-Muster und Best Practices

Entwicklung

npm ci && npm run build && npm test

Siehe CLAUDE.md für die Codebasis-Struktur, Testbefehle und Richtlinien für Beiträge.

Credits

Projekt

Autor

Beitrag

vibing-steampunk

oisee

Ursprünglicher Go MCP-Server — ARC-1s Ausgangspunkt

abap-adt-api

Marcello Urbani

TypeScript ADT-Bibliothek, definitive API-Referenz

mcp-abap-adt

Mario Andreschak

Erster MCP-Server für ABAP ADT

abaplint

Lars Hvam

ABAP-Parser/Linter (verwendet via @abaplint/core)

Lizenz

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

Latest Blog Posts

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/marianfoo/arc-1'

If you have feedback or need assistance with the MCP directory API, please join our Discord server