Skip to main content

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 and message classes, 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>"

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

Metadata

Release files for abap-adt-mcp 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for abap-adt-mcp 0.2.0
File Size Uploaded
abap_adt_mcp-0.2.0.tar.gz 17.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for abap-adt-mcp 0.2.0
File Interpreter ABI Platform
abap_adt_mcp-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 36.9 kB

Release files / abap_adt_mcp-0.2.0.tar.gz

Download URL abap_adt_mcp-0.2.0.tar.gz
Size 17.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a89fd34ee8fbfe11a0a1c235dce90b81974fd400b10a42722b6eda695165830f
BLAKE2b-256 checksum
How to use checksums
ab88180db3691942fc6af7945c7c48e4ca6ab815e70c47e444bfc978f64ec942
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / abap_adt_mcp-0.2.0-py3-none-any.whl

Download URL abap_adt_mcp-0.2.0-py3-none-any.whl
Size 19.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e351ea5b3cc4e9a91ce0d1425e87dd7dac99d545a2b2f47062e167394d98ea1f
BLAKE2b-256 checksum
How to use checksums
b6110f96732b61a384abe09e66ef4758ece6559db1b3117488f6fc89e853c62e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page