Enterprise9 Minuten Lesezeit10 MCP-Tools3 Sprachen

SAP S/4HANA über SAP HANA mit Claude verbinden (nur lesendes SQL)

Lass Claude SAP S/4HANA On-Premise oder Private Cloud direkt aus der HANA-Datenbank lesen, mit SAPs eigenen Tabellen- und Feldbezeichnungen als Tools. Nur lesend.

HCVom HelpCode-TeamAktualisiert 9 Min. Lesezeit Open Source auf GitHub

Keine Kreditkarte · 7 Tage Test · Self-Hosting-Alternative verfügbar

SAP S/4HANA (HANA SQL)

SAP S/4HANA (HANA SQL)

Read SAP S/4HANA straight from its HANA database with SQL, with SAP's own data dictionary turned into tools: table and field labels, code values, join paths, released CDS views and a guide to the finance, sales and inventory data model. Read-only.

Tools

10

Region

INTL

Kategorie

ERP

Authentifizierung

Connection string

Benötigte Env-Vars

SAP_HANA_HOSTSAP_HANA_PORTSAP_HANA_TENANTSAP_HANA_SCHEMASAP_CLIENTSAP_LANGUAGESAP_HANA_TLSSAP_HANA_USERSAP_HANA_PASSWORD
Mit einem Klick in der Cloud installieren

7 Tage kostenlos testen · Keine Kreditkarte

  • 7 Tage kostenlos
    Keine Kreditkarte nötig
  • DSGVO & SOC 2 ready
    EU-Datenhaltung, Audit-Logs
  • Open Source auf GitHub
    Open-Source · AGPL-3.0
  • Funktioniert mit ChatGPT, Claude, Gemini
    Jeder MCP-kompatible Client

Installation überspringen. In unter 2 Minuten einsatzbereit.

Starte eine kostenlose Testphase auf cloud.anythingmcp.com, füge SAP S/4HANA (HANA SQL) mit einem Klick hinzu und richte deinen KI-Client (Claude, ChatGPT, Copilot oder Cursor) auf den erzeugten MCP-Endpoint. Kein Docker, kein git clone, keinerlei Entwicklungserfahrung nötig.

Kostenlos testen

Zusammenfassung

Lass Claude SAP S/4HANA On-Premise oder Private Cloud direkt aus der HANA-Datenbank lesen, mit SAPs eigenen Tabellen- und Feldbezeichnungen als Tools. Nur lesend.

Frag einfach

Beispiel-Prompts für SAP S/4HANA (HANA SQL)

Klick auf einen Prompt, um ihn zu kopieren. In Claude, ChatGPT, Cursor, Gemini, Copilot oder OpenClaw einfügen — und gegen diesen Connector laufen lassen.

SAP S/4HANA (HANA SQL) · live via MCP
Teilen
Opus 4.7

Claude ist KI und kann Fehler machen. Bitte Antworten gegenprüfen.

Kurzfassung: Mit dem Connector SAP S/4HANA (HANA SQL) liest Claude ein S/4HANA-System direkt aus seiner HANA-Datenbank. Bevor es eine Abfrage schreibt, schlägt Claude in SAPs eigenem Data Dictionary nach, was BUKRS, HSL oder VBRK bedeuten, und wählt so die richtige Tabelle, das richtige Währungsfeld und den richtigen Mandanten. Die Session ist in HANA selbst schreibgeschützt, Ergebnisse sind auf 1.000 Zeilen begrenzt und jedes Statement hat ein Timeout. Du brauchst einen HANA-Datenbankbenutzer von der SAP-Basis und ein self-hosted AnythingMCP, das den HANA-SQL-Port erreicht.

Auf einen Blick
ConnectorSAP S/4HANA (HANA SQL), 10 Tools
SystemeS/4HANA On-Premise, Private Cloud (RISE), HANA Enterprise Cloud
ZugriffNur lesend: ein einzelnes SELECT pro Aufruf, SET TRANSACTION READ ONLY, höchstens 1.000 Zeilen, 60 s Timeout
Treiberhdb mitgeliefert; SAPs @sap/hana-client optional, von dir installiert
HostingSelf-hosted in dem Netzwerk, das HANA erreicht (AnythingMCP ist Open Source, AGPL-3.0)
GetestetJedes Tool gegen ein laufendes SAP S/4HANA 2025

Warum ein einfacher SQL-Connector für SAP nicht reicht

SAPs Tabellen und Felder sind kurze, meist deutsche Abkürzungen: ACDOCA ist das Universal Journal, RBUKRS der Buchungskreis, HSL der Betrag in Hauswährung, VBRK der Fakturakopf. Ein Modell, das nur Spaltennamen sieht, rät, und SAP bestraft Raten: Beträge gehören zu einem Währungsfeld in einer anderen Spalte, jede Tabelle ist nach Mandant (MANDT) getrennt, Datumswerte sind YYYYMMDD-Strings und Belegnummern haben führende Nullen.

Der Connector gibt Claude SAPs eigenes Dictionary als Tools. Er liest die Tabellen, mit denen SAP sich selbst beschreibt (DD02L, DD03L, DD04T, DD07T, DD08L und die CDS-Annotationen). So sieht Claude die fachliche Bezeichnung jedes Felds, welches Währungs- oder Mengeneinheitenfeld zu welchem Betrag gehört, was die Codes eines Felds bedeuten, wie Tabellen verknüpft sind und welche CDS-Views SAP freigegeben hat und analytisch sind. Erst dann schreibt es die Abfrage.

HANA SQL oder OData?

AnythingMCP verbindet S/4HANA On-Premise und Private Cloud auf zwei Wegen. Nimm einen davon, oder beide nebeneinander.

HANA SQL (diese Anleitung)OData
LiestJede Tabelle und CDS-View, die der Datenbankbenutzer lesen darfDie OData-Services, die der SAP-Benutzer aufrufen darf
SAP-BerechtigungenGreifen nicht: die Datenbank-Grants sind die GrenzePrüft SAP bei jedem Aufruf
Stark beiSummen über Millionen Zeilen, Finanz- und modulübergreifenden AnalysenVeröffentlichten APIs, Business-Objekten, SAPs eigenen Prüfungen
Du brauchstEinen HANA-Datenbankbenutzer, Netzwerkzugang zum SQL-Port, eine Lizenz, die es erlaubtEinen technischen SAP-Benutzer, aktive Gateway-Services

Was du brauchst

  • Eine SAP-Basis-Administration, die im Tenant mit dem ABAP-Schema (meist SAPHANADB oder SAPABAP1) einen Benutzer anlegen kann.
  • Die Verbindungsdaten: Host, der SQL-Port des Tenants (3<instance>15 für den ersten Tenant, 3<instance>41 und höher für weitere), Tenant-Name, Schema, der dreistellige SAP-Mandant und die SAP-Sprache für Texte (E Englisch, D Deutsch).
  • Ein self-hosted AnythingMCP, das diesen Port erreicht. Der HANA-SQL-Port ist normalerweise nur im Firmennetz oder in der Landing Zone von SAPs Private Cloud erreichbar.
  • Einen Lizenz-Check. Direkter SQL-Zugriff einer Drittanwendung auf das ABAP-Schema richtet sich nach deiner SAP-HANA-Lizenz. Eine mit S/4HANA gebündelte Runtime-Lizenz deckt ihn meist nicht ab, eine Full-Use-Lizenz schon. Frag dein SAP-Account-Team, bevor du ein Produktivsystem anbindest. In SAPs Private-Cloud-Angeboten beantragst du den Datenbankbenutzer und den Netzwerkweg bei SAP.

So richtest du es ein

Schritt 1: Einen lesenden Datenbankbenutzer anlegen

Im Tenant mit dem ABAP-Schema:

CREATE USER AMCP_READER PASSWORD "<strong password>" NO FORCE_FIRST_PASSWORD_CHANGE;
ALTER USER AMCP_READER DISABLE PASSWORD LIFETIME;

-- dictionary tools
GRANT SELECT ON SAPHANADB.DD02L TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD02T TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD03L TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD03T TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD03ND TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD04T TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD07T TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD08L TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD05S TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DDHEADANNO TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DDFIELDANNO TO AMCP_READER;
GRANT SELECT ON SAPHANADB.ARS_W_API_STATE TO AMCP_READER;
-- organization structure
GRANT SELECT ON SAPHANADB.T001 TO AMCP_READER;
GRANT SELECT ON SAPHANADB.T001K TO AMCP_READER;
GRANT SELECT ON SAPHANADB.T001W TO AMCP_READER;
GRANT SELECT ON SAPHANADB.TKA01 TO AMCP_READER;
GRANT SELECT ON SAPHANADB.TVKO TO AMCP_READER;
GRANT SELECT ON SAPHANADB.TVKOT TO AMCP_READER;
GRANT SELECT ON SAPHANADB.T024E TO AMCP_READER;
-- then the business tables and CDS views your use cases need, e.g.
GRANT SELECT ON SAPHANADB.ACDOCA TO AMCP_READER;

GRANT SELECT ON SCHEMA SAPHANADB ist für breite Analysen einfacher, macht aber alles im Schema lesbar, HR-Daten eingeschlossen. SQL wendet SAPs Anwendungsberechtigungen (Buchungskreis, Verkaufsorganisation, HR-Prüfungen) nicht an: Was der Datenbankbenutzer lesen darf, darf Claude lesen.

Optional begrenzt du die Statements des Benutzers auch serverseitig:

CREATE WORKLOAD CLASS "AMCP_READER_WC" SET 'STATEMENT TIMEOUT' = '60', 'STATEMENT MEMORY LIMIT' = '20';
CREATE WORKLOAD MAPPING "AMCP_READER_WM" WORKLOAD CLASS "AMCP_READER_WC" SET 'USER NAME' = 'AMCP_READER';

Schritt 2: AnythingMCP im Netzwerk starten

Auf einem Host, der den HANA-SQL-Port erreicht:

mkdir anythingmcp && cd anythingmcp
curl -fsSLo docker-compose.yml \
  https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d   # → http://localhost:3000

Trag den HANA-Host in SSRF_ALLOWED_HOSTS in der .env ein: Private Adressen lehnt AnythingMCP standardmäßig ab.

Schritt 3: Den Connector installieren

Öffne Connectors → Store, wähle SAP S/4HANA (HANA SQL) und fülle die Variablen aus:

VariableBeispiel
SAP_HANA_HOSThana.internal
SAP_HANA_PORT30015
SAP_HANA_TENANTS4P
SAP_HANA_SCHEMASAPHANADB
SAP_CLIENT100
SAP_LANGUAGED
SAP_HANA_TLSverify, no-verify bei einem selbstsignierten Zertifikat, oder off
SAP_HANA_USER / SAP_HANA_PASSWORDAMCP_READER und sein Passwort

Die Installation macht einen Testaufruf (sap_org_structure) und zeigt dir, ob Zugangsdaten und Grants funktionieren. Das Passwort wird verschlüsselt gespeichert und Claude nie gezeigt.

Schritt 4: Den MCP-Server zu Claude hinzufügen

Auf claude.ai oder in Claude Desktop: Anpassen → Connectors → + → Eigenen Connector hinzufügen, die URL deines MCP-Servers einfügen (steht unter MCP Servers in AnythingMCP) und anmelden. Für claude.ai muss die URL öffentlich per HTTPS erreichbar sein, weil Claude sich von Anthropics Servern aus verbindet; veröffentlicht wird nur der MCP-Endpunkt, nie der HANA-Port. In Claude Code geht auch eine lokale Instanz:

claude mcp add --transport http sap-hana <your MCP server URL> --header "X-API-Key: <key>"

Schritt 5: Fragen

Fang mit etwas an, das die Daten eingrenzt, zum Beispiel „Welche Buchungskreise gibt es in diesem System, und in welcher Währung?“. Der Connector sagt Claude, zuerst sap_guide zu lesen; von dort arbeitet es sich selbstständig durch die Dictionary-Tools.

Die Tools

ToolWas Claude davon bekommt
sap_guideDas SAP-Datenmodell für SQL erklärt, nach Themen: Grundlagen (Mandant, Datumswerte, führende Nullen, Währungen), Finanzen (das Universal Journal ACDOCA), Vertrieb, Bestand, Einkauf, Operations, Stolperfallen und Abfrage-Rezepte. Kostet nichts und berührt keine Daten.
sap_org_structureBuchungskreise mit Währung, Kontenplan und Geschäftsjahresvariante; Kostenrechnungskreise, Werke, Verkaufs- und Einkaufsorganisationen.
sap_search_tablesTabellen nach Name oder Beschreibung mit ihrer Zeilenzahl, mit Hinweis auf S/4HANA-Kompatibilitäts-Views, die einfaches SQL falsch lesen würde.
sap_describe_tableJedes Feld mit Bezeichnung, Schlüsselkennzeichen, Typ, dem Währungs- oder Mengeneinheitenfeld jedes Betrags und der Prüftabelle.
sap_find_fieldsWelche Tabellen ein fachliches Feld enthalten, z. B. „Nettofälligkeit“.
sap_field_valuesWas die Codes eines Felds bedeuten, z. B. die Vertriebsbelegtypen der Fakturen.
sap_table_relationsFremdschlüssel mit ihren Join-Bedingungen, und die Texttabelle.
sap_search_cds_viewsSAPs CDS-Views nach Name oder Bezeichnung, mit Kennzeichen für freigegebene und analytische Views.
sap_describe_cds_viewSpalten einer CDS-View mit Bezeichnungen, Kennzahlen, Währungs- und Einheitenfeldern und Assoziationen.
sap_queryEin einzelnes lesendes SELECT, auf 1.000 Zeilen begrenzt und mit Timeout.

Was der Connector durchsetzt

  • Schreibgeschützt in HANA selbst. Die Session führt vor dem Statement SET TRANSACTION READ ONLY aus, zusätzlich zu einer Prüfung, die nur ein einzelnes SELECT oder WITH … SELECT durchlässt und SELECT … INTO sowie sperrende Lesezugriffe ablehnt. Die eigentliche Grenze bleiben die Datenbank-Grants.
  • Höchstens 1.000 Zeilen, gestreamt, sodass ein SELECT * auf eine große Tabelle nie im Speicher landet.
  • 60 Sekunden Timeout pro Statement als Standard (bis 600 s mit statementTimeout im Connection-String); die Session wird geschlossen und HANA bricht das Statement ab.
  • Gesperrte Tabellen. SAPs HR-Tabellen (PA####, PB####, PCL#, HRP####) und die Benutzer- und Passworttabellen (USR##, USH##, RFCDES, SSF_PSE_D) werden standardmäßig abgelehnt, auch wenn die Grants sie erlauben. Die Liste bearbeitest du in den Connector-Einstellungen.
  • Exakte Werte. Dezimalzahlen kommen als Strings zurück, Beträge werden also nicht gerundet; SAP-GUIDs kommen als Hex in Großbuchstaben.
  • Der SAP-Mandant. Der Connector setzt die Session-Variable CDS_CLIENT, ohne die SAPs CDS-Views keine Zeilen liefern. Normale Tabellen brauchen weiterhin einen Filter auf MANDT (oder RCLNT), und sap_guide sagt Claude das.

SAPs nativen Treiber verwenden

AnythingMCP liefert hdb mit, SAPs HANA-Treiber in reinem JavaScript (Apache-2.0). Er deckt Benutzer und Passwort, TLS, Multi-Tenant-Systeme und alles ab, was der Connector tut. SAPs nativer Treiber @sap/hana-client bringt zusätzlich Kerberos, den Secure User Store (hdbuserstore) und Connection-Pooling. Er steht unter der SAP Developer License, die uns die Weitergabe nicht erlaubt, deshalb ist er nie Teil des Images: Du installierst ihn in deine eigene Installation, entweder indem du das Image erweiterst oder ihn als Volume einbindest, und wählst ihn mit driver=hana-client im Connection-String oder mit HANA_DRIVER=hana-client für alle HANA-Connectors. Prüf, ob dein SAP-Vertrag den produktiven Einsatz abdeckt. Auf arm64-Hosts bleibst du beim mitgelieferten hdb oder baust ein eigenes Debian-basiertes Image. Schritt für Schritt: SAP HANA in der AnythingMCP-Doku.

Prompts zum Ausprobieren

  • „Zeig mir den Umsatz pro Buchungsperiode für Buchungskreis 1000 im Jahr 2026.“
  • „Welche Kunden haben offene Forderungen, die älter als 30 Tage sind, und wie viel pro Kunde?“
  • „Die 10 umsatzstärksten Kunden dieses Jahres nach Nettoumsatz, aus den Fakturen.“
  • „Welche freigegebenen analytischen CDS-Views decken Journalbuchungen ab? Beschreib die Kennzahlen der ersten.“
  • „Was bedeuten die Werte des Vertriebsbelegtyps in den Fakturen?“
  • „Warenbewegungen pro Bewegungsart in Werk 1000 im letzten Monat.“

Fehlerbehebung

  • Eine CDS-View liefert keine Zeilen. SAP_CLIENT fehlt oder ist falsch; der Connector braucht ihn, um CDS_CLIENT zu setzen.
  • Verbindung abgelehnt oder Weiterleitung auf einen unbekannten Host. Nimm den eigenen SQL-Port des Tenants statt des Ports der Systemdatenbank, die auf einen internen Hostnamen weiterleiten kann, den der Connector nicht auflöst.
  • „Insufficient privilege“. Die Tabelle ist dem Datenbankbenutzer nicht freigegeben. Gib sie frei, oder bitte Claude, eine Tabelle oder CDS-View zu nehmen, die es lesen darf.
  • Zertifikatsfehler. Setz SAP_HANA_TLS=no-verify bei einem selbstsignierten Zertifikat, oder installiere die CA.
  • Eine Abfrage läuft ins Timeout. Bitte Claude, nach Buchungskreis, Periode oder Werk zu filtern und in SQL zu aggregieren; erhöhe statementTimeout nur, wenn die Abfrage wirklich groß ist.

FAQ

Kann Claude über diesen Connector Daten in SAP ändern? Nein. Die HANA-Session ist schreibgeschützt, es läuft nur ein einzelnes SELECT, Schreibzugriffe und sperrende Lesezugriffe werden abgelehnt. Leg den Datenbankbenutzer nur mit SELECT-Grants an, dann setzt HANA dieselbe Regel durch.

Werden SAP-Berechtigungen beachtet? Nein. SQL umgeht SAPs Anwendungsberechtigungen, die Datenbank-Grants entscheiden also, was Claude lesen kann. Wenn SAPs Berechtigungsprüfungen greifen sollen, nimm den OData-Weg, oder gib nur Tabellen und Views frei, die gelesen werden dürfen.

Erlaubt meine SAP-Lizenz direkten SQL-Zugriff auf S/4HANA? Das hängt von deiner HANA-Lizenz ab. Eine mit S/4HANA gebündelte Runtime-Lizenz deckt SQL-Zugriff von Drittanwendungen auf das ABAP-Schema meist nicht ab, eine Full-Use-Lizenz schon. Prüf deinen Vertrag, bevor du ein Produktivsystem anbindest.

Funktioniert es mit S/4HANA Private Cloud (RISE)? Ja, wenn SAP einen Datenbankbenutzer und einen Netzwerkweg zum HANA-SQL-Port bereitstellt und AnythingMCP dort läuft, wo es diesen Port erreicht. Beides beantragst du bei SAP.

Kann ich statt self-hosted die AnythingMCP Cloud nutzen? Nur wenn der HANA-SQL-Port aus dem Internet erreichbar ist, was selten der Fall und selten ratsam ist. Betreibe AnythingMCP self-hosted neben SAP.

Funktioniert es auch mit ChatGPT und Copilot? Ja. Derselbe MCP-Server funktioniert in ChatGPT, GitHub Copilot, Cursor und Claude Code.

Siehe auch

War dieser Guide hilfreich?

Dein SAP S/4HANA-Agent ist nur einen Klick entfernt.

Connector installieren, Schlüssel einfügen, Claude fragen. 7 Tage kostenlos, keine Kreditkarte.

Verwandte Anleitungen