Skip to main content
Glama

abap-adt-mcp

An MCP server that gives AI agents access to an SAP system through the ABAP Development Tools (ADT) REST API. It is a thin layer over the abap-adt-py library: search and browse the repository, read and write source code, activate, run syntax checks, unit tests and ATC, run SQL queries and classes, read short dumps, maintain domains, data elements, message classes and authorization objects, implement BAdIs, publish OData service bindings and manage transport requests.

Running

cp .env.example .env   # fill in the SAP connection and a token
uv run --env-file .env abap-adt-mcp

Without a checkout, run the PyPI release: uvx --env-file .env abap-adt-mcp.

The server speaks Streamable HTTP at http://<ADT_MCP_HOST>:<ADT_MCP_PORT>/mcp (default http://127.0.0.1:2236/mcp). It logs in to SAP on the first tool call and keeps one session for all clients.

Variable

Default

ABAP_ADT_HOST

SAP system, e.g. http://localhost:50000

ABAP_ADT_USER, ABAP_ADT_PASSWORD

SAP login

ABAP_ADT_CLIENT, ABAP_ADT_LANGUAGE

001, EN

ADT_MCP_HOST, ADT_MCP_PORT

127.0.0.1, 2236

where the server listens

ADT_MCP_TOKEN

required Authorization: Bearer token; mandatory on non-local addresses

Claude Code

claude mcp add --transport http abap-adt http://localhost:2236/mcp --header "Authorization: Bearer <token>"

Related MCP server: abap-adt-mcp

Tools

Area

Tools

Repository

search_objects, package_contents, object_package_path, object_structure

Source

get_source, write_source, activate, list_inactive_objects, pretty_print

Create / delete

create_object, create_package, create_table_type, create_test_class_include, delete_object

Dictionary

create_domain, get_domain, update_domain, create_data_element, get_data_element, update_data_element

Message classes

create_message_class, get_message_class, set_messages, delete_messages

Authorizations

create_authorization_field, get_authorization_field, update_authorization_field, create_authorization_object, get_authorization_object, update_authorization_object

BAdIs

get_enhancement_spot, get_enhancement_implementation, create_enhancement_implementation, update_enhancement_implementation

Service bindings

create_service_binding, get_service_binding, publish_service_binding, unpublish_service_binding

Quality

syntax_check, run_unit_tests, run_atc, list_check_variants, atc_documentation

Navigation

find_definition, where_used, code_completion

Runtime

run_query, run_class, list_dumps, get_dump

Transports

transport_info, create_transport, list_transports, release_transport, delete_transport

Locking is handled inside the tools: write_source locks the object, writes, unlocks and activates, so agents never deal with lock handles. activate and delete_object take a list of URIs for objects that depend on each other, such as a CDS root view and its composition child. SAP errors (activation errors with their positions, locked objects, ...) are returned to the agent as tool errors.

Development

uv sync
uv run pytest

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables AI agents to read, write, activate, and transport ABAP code in SAP systems via ABAP ADT REST API, without needing SAP GUI.
      24
      576 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables 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.
      14 npm
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to work with SAP ABAP systems through the ADT REST API, supporting repository search, source code read/write, activation, syntax checks, and transport request management.
      1
      Apache 2.0