Skip to main content
Glama
ethanhan2014

SAP ADT MCP Server

by ethanhan2014

SAP ADT MCP Server

MCP-Server für die SAP ABAP Development Tools (ADT) REST-API. Ermöglicht KI-Assistenten das Lesen, Erstellen und Ändern von ABAP-Quellcode, das Inspizieren von DDIC-Objekten, das Ausführen von SQL-Abfragen, das Verwalten von Transporten, das Analysieren von Traces, das Abrufen von Short Dumps, das Steuern des Debuggers und mehr – über mehrere SAP-Systeme hinweg von einer einzigen Serverinstanz aus.

Tools (66)

Quellcode & DDIC (11)

Tool

Beschreibung

Eingabe

get_abap_program

ABAP-Programm/Report-Quellcode abrufen

name

get_class

ABAP-Klassen-Quellcode abrufen

name

get_function_module

Funktionsbaustein-Quellcode abrufen

function_group, function_name

get_function_group

Funktionsgruppen-Quellcode abrufen

name

get_include

ABAP-Include-Quellcode abrufen

name

get_interface

ABAP-Interface-Quellcode abrufen

name

get_cds_view

CDS-View-DDL-Quelle abrufen

name

get_structure

DDIC-Strukturdefinition abrufen

name

get_table

ABAP-Datenbanktabellendefinition abrufen

name

get_data_element

DDIC-Datenelementdefinition abrufen

name

get_domain

DDIC-Domänendefinition abrufen

name

Repository & Suche (3)

Tool

Beschreibung

Eingabe

search_object

ABAP-Objekte nach Namensmuster suchen (Platzhalter unterstützt)

query, max_results?

get_transaction

Transaktionsdetails abrufen (Paket, App-Komponente)

name

get_package

Paketinhalt abrufen (Objekte mit Typen/Beschreibungen)

name

Erstellen, Ändern & Ausführen (12)

Tool

Beschreibung

Eingabe

create_abap_program

Programm erstellen, Quellcode schreiben und aktivieren

name, description, source, package?

change_abap_program

Bestehendes Programm ändern (sperren, schreiben, aktivieren, entsperren)

name, source

create_abap_class

Klasse erstellen, Quellcode schreiben und aktivieren

name, description, source, package?

change_abap_class

Bestehende Klasse ändern (sperren, schreiben, aktivieren, entsperren)

name, source

create_interface

Interface erstellen, Quellcode schreiben und aktivieren

name, description, source, package?

change_interface

Bestehendes Interface ändern (sperren, schreiben, aktivieren, entsperren)

name, source

create_cds_view

CDS-View erstellen, Quellcode schreiben und aktivieren

name, description, source, package?

change_cds_view

Bestehende CDS-View ändern (sperren, schreiben, aktivieren, entsperren)

name, source

execute_program

Programm ausführen und WRITE-Ausgabe zurückgeben

name

execute_sql

ABAP-SQL-Abfrage ausführen und Ergebnisse als Tabelle zurückgeben

query

fetch_st22_dumps

ST22-Short-Dumps für ein Datum abrufen

date, user?, max_results?

get_csrf_token

CSRF-Token und Session-Cookie abrufen

(keine)

Transportverwaltung (7)

Tool

Beschreibung

Eingabe

list_user_transports

Alle änderbaren Transporte für den aktuellen Benutzer auflisten

(keine)

get_transport

Vollständige Transportdetails abrufen (Aufgaben, Objekte, Status)

transport_number

get_transport_info

Transportanforderungen für ein Objekt prüfen

uri, devclass, operation?

create_transport

Neuen Transportauftrag erstellen

devclass, description, ref?, operation?

release_transport

Transport für Import freigeben

transport_number

delete_transport

Transportauftrag löschen

transport_number

list_system_users

SAP-Systembenutzer auflisten

(keine)

SAT-Trace (7)

Tool

Beschreibung

Eingabe

list_traces

ABAP-Laufzeittraces (SAT/SE30) auflisten

user?

get_trace_hitlist

Performance-Hitlist für einen Trace abrufen

trace_id

get_trace_db_access

Datenbankzugriffsstatistiken für einen Trace abrufen

trace_id

get_trace_statements

Aufrufbaum auf Statement-Ebene für einen Trace abrufen

trace_id

delete_trace

Laufzeittrace löschen

trace_id

create_trace_config

Trace-Sammlungskonfiguration erstellen

object_name, process_type?, description?

delete_trace_config

Trace-Konfiguration löschen

config_id

ST05 Performance-Trace (3)

Tool

Beschreibung

Eingabe

enable_st05_trace

SQL/Buffer/RFC/Auth-Trace für einen Benutzer aktivieren

user?, sql?, buffer?, rfc?, auth?, enqueue?, http?

disable_st05_trace

Alle aktiven Performance-Traces deaktivieren

(keine)

get_st05_trace_state

Aktive Trace-Typen, Benutzerfilter und Serverinformationen abrufen

(keine)

Cross-Trace (5)

Tool

Beschreibung

Eingabe

enable_cross_trace

Cross-Trace für RAP, OData, SADL, BAdI, Gateway aktivieren

user?, components?, max_traces?, trace_level?

disable_cross_trace

Cross-Trace-Aktivierung deaktivieren

activation_id

get_cross_trace_activations

Aktive Cross-Trace-Aktivierungen auflisten

(keine)

list_cross_traces

Erfasste Cross-Trace-Ergebnisse auflisten

user?

get_cross_trace_records

Detaillierte Datensätze für einen Cross-Trace abrufen

trace_id

Service-Binding (3)

Tool

Beschreibung

Eingabe

get_binding_details

OData-Service-Binding-Details abrufen

binding_name

publish_service_binding

OData-Service-Binding veröffentlichen

binding_name, binding_version

unpublish_service_binding

OData-Service-Binding zurückziehen

binding_name, binding_version

Debugger (14)

Tool

Beschreibung

Eingabe

start_debugger_listener

Debugger-Listener starten (öffnet zustandsbehaftete Sitzung)

terminal_id?, ide_id?, user?

stop_debugger_listener

Listener stoppen und Debug-Sitzung schließen

terminal_id?, ide_id?, user?

get_debugger_session

Prüfen, ob eine Debugger-Sitzung angehängt ist

terminal_id?, ide_id?, user?

set_debugger_breakpoint

Breakpoint an einer Quellcode-Position setzen

uri, line, user?

delete_debugger_breakpoint

Breakpoint entfernen

breakpoint_id

attach_debugger

An eine laufende ABAP-Debug-Sitzung anhängen

debug_mode?

get_debugger_stack

Aktuellen Aufrufstapel abrufen

(keine)

get_debugger_variables

Variablenwerte abrufen

variable_names[]

get_debugger_child_variables

Untergeordnete/verschachtelte Variablenwerte abrufen

variable_name

set_debugger_variable_value

Variablenwert während des Debuggens setzen

variable_name, value

debugger_step

Einzelschritt/Überspringen/Rückkehr/Fortsetzen/Beenden

step_type, uri?

debugger_goto_stack

Zu einem Stack-Frame navigieren

stack_type, position

insert_watchpoint

Watchpoint auf eine Variable setzen (Pause bei Wertänderung)

variable_name, condition?

get_watchpoints

Alle aktiven Watchpoints auflisten

(keine)

Multi-System (1)

Tool

Beschreibung

Eingabe

list_systems

Alle konfigurierten SAP-Systeme mit IDs, Hostnamen und Mandanten auflisten

(keine)

Alle Tools akzeptieren einen optionalen system_id-Parameter, um ein spezifisches SAP-System anzusprechen. Wenn weggelassen, wird das Standard-System (das erste konfigurierte) verwendet.

Voraussetzungen

  • Node.js v18 oder höher

  • SAP-Benutzer mit S_ADT_RES-Berechtigung für den Zugriff auf ADT-Ressourcen

  • ICF-Services unter /sap/bc/adt/ aktiviert (über Transaktion SICF)

  • Rolle SAP_BC_DWB_ABAPDEVELOPER oder gleichwertig

Installation

git clone https://github.com/ethanhan2014/sap-adt-mcp.git
cd sap-adt-mcp
npm install
npm run build

Konfiguration

Option 1: Einzelnes System über .env

cp .env.example .env

Bearbeiten Sie .env mit Ihren SAP-Systemverbindungsdetails:

SAP_HOSTNAME=your-sap-host.example.com
SAP_SYSNR=50
SAP_USERNAME=YOUR_USER
SAP_PASSWORD=YOUR_PASSWORD
SAP_CLIENT=001
SAP_LANGUAGE=EN

Variable

Beschreibung

Beispiel

SAP_HOSTNAME

SAP-System-Hostname

your-sap-host.example.com

SAP_SYSNR

Systemnummer (Port = 443 + sysnr)

50 → Port 44350

SAP_USERNAME

SAP-Benutzer

DEVELOPER

SAP_PASSWORD

SAP-Passwort

secret

SAP_CLIENT

SAP-Mandant

001

SAP_LANGUAGE

Anmeldesprache (Standard: EN)

EN

Option 2: Mehrere Systeme über systems.json

Erstellen Sie systems.json im Projektstammverzeichnis (siehe systems.json.example):

[
  {
    "id": "DEV",
    "hostname": "dev-system.sap.com",
    "sysnr": "50",
    "client": "001",
    "username": "YOUR_USER",
    "password": "YOUR_PASSWORD",
    "language": "EN"
  },
  {
    "id": "QA",
    "hostname": "qa-system.sap.com",
    "sysnr": "00",
    "client": "001",
    "authType": "certificate",
    "certThumbprint": "YOUR_CERT_THUMBPRINT",
    "language": "EN"
  }
]

Wenn systems.json vorhanden ist, wird .env für die Systemkonfiguration ignoriert. Das erste System ist das Standard-System. Verwenden Sie system_id bei jedem Tool-Aufruf, um ein spezifisches System anzusprechen.

Unterstützte Authentifizierungstypen:

  • basic (Standard) — Benutzername/Passwort

  • certificate — X.509-Client-Zertifikat über certThumbprint

Verwendung

Claude Code

Zu ~/.claude.json hinzufügen:

{
  "mcpServers": {
    "sap-adt": {
      "command": "node",
      "args": ["/path/to/sap-adt-mcp/dist/index.js"]
    }
  }
}

Cline (VS Code)

Zu den Cline-MCP-Einstellungen (cline_mcp_settings.json) hinzufügen:

{
  "mcpServers": {
    "sap-adt": {
      "command": "node",
      "args": ["/path/to/sap-adt-mcp/dist/index.js"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

Standalone

npm start

Entwicklung (mit MCP Inspector)

npx @modelcontextprotocol/inspector node dist/index.js

Tech-Stack

  • TypeScript + Node.js

  • MCP SDK (@modelcontextprotocol/sdk)

  • Axios für HTTP

  • SAP ADT REST-API über HTTPS mit Basic Auth oder X.509-Zertifikat

Install Server
F
license - not found
B
quality
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/ethanhan2014/sap-adt-mcp'

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