MCP serverMCP servertypeExposes tools to a coding agent over MCP.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →

erpl-adt

One C++ binary that speaks the ADT REST API as a CLI and as an MCP server — no Eclipse, no NetWeaver RFC SDK, no JVM — and reaches BW/4HANA modelling as well as ABAP.

The same HTTP endpoints Eclipse ADT uses, in a binary you can put in a pipeline. Search and browse objects, packages, DDIC tables and CDS views; read and write source with lock management and transport integration; run ABAP Unit and ATC; create, list and release transports. Every command takes --json, so the CLI and the MCP server are the same capability through two doors. The BW/4HANA side is unusual for this group: search across ADSOs, composite providers, DTPs, transformations and queries, inspect an ADSO's fields with the InfoObject each maps to, and export an InfoProvider's dataflow as Mermaid.

Facts

Last pushLicenceApache-2.0

Where it sits

Lives in
Provides
Agent access to your codeABAPAgent access to your codecapabilityLetting a coding agent read the project or the system you actually have, reach its model, its objects and its checks, and act on it. In file-based environments that works out of the box; complex systems need dedicated access capabilities. Whatever the environment, the agent also needs project- and framework-specific context, so it understands the thing in front of it rather than guessing from what it remembers of its training data. The transport is incidental: an MCP server, a language server or a CLI answer the same question, and what differs between them is how much of the real thing the agent can see. Distinct from [MCP servers](capability:mcp-servers), which is a protocol adapter on your own running service, and from [agent guidance](capability:agent-guidance), which is knowledge handed over as files rather than read from the thing itself.

Who is behind it

DataZoo GmbHDataZoo GmbHOrganisationMaintains this
In the atlas: maintains 3
@DataZooDE
maintainerBaijack-starPersonContributes to this
In the atlas: contributes to 1
@Baijack-star
Joachim RosskopfPersonContributes to this
In the atlas: contributes to 3
@jrosskopf
2 contributors

Before choosing this

Conditions

PracticalFunctional boundary

A compiled binary rather than an npm package, shipped prebuilt per platform and through pip and uvx. It collects anonymous usage telemetry by default, switched off with --no-telemetry or DATAZOO_DISABLE_TELEMETRY=1. And the BW reach is what distinguishes it — if the work is plain ABAP, that half is weight you are not using.

PolicySAP API Policy 4.2026a§ 1.1, 1.2, 2.2.2from Agent access to your codeAn MCP server calls ADT or another SAP API of a running system for an agent.
  • § 1.1 Published APIs. Published APIs are made available for the documented purposes identified by SAP, including integration, extensions and data exchange.
  • § 1.2 Non-Published APIs. Customer and third-party applications must not access non-published APIs except where documentation permits it or SAP otherwise authorizes it.
  • § 2.2.2 AI call sequences and data extraction. Outside SAP-endorsed architectures, data services or expressly identified pathways, the policy prohibits specified agentic API use and systematic or large-scale extraction.

An agent that plans and executes ADT calls is the case section 2.2.2 names. Check that the endpoints are published for the intended use, and that the design runs within a pathway SAP identifies for it.

SAP API Policy 4.2026a →

What it declares

Every artifact

Type
MCP server
Origin
Independently maintained

As an MCP server

Transport
stdioHTTP
Authentication
user and password
Read-only
nostates it is not
Guardrails
6 quoted from README show all
  • annotates every tool as read-only, mutating or destructive.

  • Both HTTP servers (mcp --http and catalog webui) refuse cross-origin browser requests

  • a browser asking for any other name is refused until

  • and require a token with

  • Every catalog command needs an explicit scope (--package/--infoarea)

  • It is on by default and easy to disable:

For agent access to ABAP code

Read
sourcesearchwhere-usedDDICCDStable data
Change
writecreateactivatetransportsgit
Check
syntaxATCABAP Unit
Run
run codedumps
property statedstated nonot said

Connections1

Where erpl-adt runserpl-adt — README, checked 2026-09-11: “exposes all ADT operations as tools over JSON-RPC 2.0 on stdin/stdout”stdio or HTTPYour MCP client, actorYour MCP clienterpl-adt, moduleerpl-adt
SAPnot SAP's, or the project's ownstated in the document

README

quoted from DataZooDE/erpl-adt under Apache-2.0, read
DataZooDE/erpl-adt/README.mdOn GitHub

erpl-adt

CLI and MCP server for the SAP ADT REST API — a single binary that talks the same HTTP endpoints Eclipse ADT uses. No Eclipse, no SAP NW RFC SDK, no JVM.

Build

Part of the Datazoo ERPL family.

What it does

  • Search and browse ABAP objects, packages, data dictionary tables, CDS views
  • Read and write source code with lock management and transport integration
  • Run tests — ABAP Unit and ATC quality checks from the command line
  • Manage transports — create, list, and release transport requests
  • MCP server — expose all capabilities to AI agents over JSON-RPC (MCP 2025-06-18, negotiating down to 2024-11-05)

Every command accepts --json for machine-readable output.

In action

Find ABAP objects by name pattern:

search demo

Read a data-dictionary table, with field types and check tables resolved:

ddic demo

Read ABAP source code with built-in syntax highlighting:

source demo

Browse a package recursively to enumerate everything it contains:

package demo

BW/4HANA Modeling

Search the BW catalog across ADSOs, composite providers, DTPs, transformations, and queries:

bw search demo

Inspect an ADSO's field structure, complete with the InfoObject each field maps to:

bw adso demo

Export an InfoProvider's dataflow as Mermaid — pipe it straight into a renderer or commit it next to the model:

bw mermaid demo

Quick examples

# Save connection credentials (prompts for password)
erpl-adt login --host sap.example.com --port 44300 --https --user DEVELOPER

# Search for classes matching a pattern
erpl-adt search ZCL_MY_* --type CLAS --max 20

# Connect in a specific logon language (descriptions come back translated)
erpl-adt --language DE search T000 --max 1     # -> description "Mandanten"

# Read object metadata and source code
erpl-adt object read /sap/bc/adt/oo/classes/zcl_my_class
erpl-adt source read /sap/bc/adt/oo/classes/zcl_my_class/source/main

# Write source code (auto-locks, writes, unlocks)
erpl-adt source write /sap/bc/adt/oo/classes/zcl_my_class/source/main --file impl.abap

# Write and activate in one step
erpl-adt source write /sap/bc/adt/oo/classes/zcl_my_class/source/main --file impl.abap --activate

# Activate an object by name
erpl-adt activate ZCL_MY_CLASS

# Run unit tests and ATC checks (by name or URI)
erpl-adt test ZCL_MY_CLASS
erpl-adt check ZCL_MY_CLASS --variant DEFAULT

# Create a transport request and release it
erpl-adt transport create --desc "Feature XYZ" --package ZPACKAGE
erpl-adt transport release NPLK900042

# Browse packages and data dictionary
erpl-adt package tree ZPACKAGE --type CLAS
erpl-adt ddic table SFLIGHT
erpl-adt ddic cds I_AIRLINE

# Check syntax
erpl-adt source check /sap/bc/adt/oo/classes/zcl_my_class/source/main

Installation

The quickest way to run erpl-adt — no download needed:

uvx erpl-adt --help

Or install permanently:

pip install erpl-adt

Alternatively, download the binary for your platform from the latest release, or build from source.

PlatformArchitecture
Linuxx86_64
macOSarm64, x86_64
Windowsx64

Full reference

Run erpl-adt --help for the complete command listing. Key commands:

SEARCH — Search for ABAP objects
  search <pattern>                        Search for ABAP objects
      --type <type>                       Object type: CLAS, PROG, TABL, INTF, FUGR
      --max <n>                           Maximum number of results

OBJECT — Read, create, delete, lock/unlock ABAP objects
  object create                           Create an ABAP object
      --type, --name, --package           (required)
      --description, --transport
      --responsible <user>                Person responsible (default: logon user)
  object delete <uri>                     Delete an ABAP object
  object lock <uri>                       Lock an object for editing
  object read <name-or-uri>               Read object structure
  object run <class-name-or-uri>          Run an ABAP console class (IF_OO_ADT_CLASSRUN)
  object unlock <uri>                     Unlock an object

SOURCE — Read, write, and check ABAP source code
  source check <name-or-uri>              Check syntax
  source edit <name-or-uri>               Open source in $EDITOR and write back
  source read <name-or-uri>               Read source code
      --version <version>                 active or inactive (default: active)
      --section <section>                 main, localdefinitions, localimplementations, testclasses, all
      --color / --no-color                ANSI syntax highlighting
  source write <name-or-uri>              Write source code
      --file <path>                       Path to local source file  (required)
      --activate                          Activate the object after writing
                                          (not combinable with --handle: SAP
                                          refuses to activate a locked object)
      --optimistic                        Try lockless write first (pre-7.51 SAP)

ACTIVATE — Activate inactive ABAP objects
  activate <name-or-uri>

TEST / CHECK
  test <name-or-uri>                      Run ABAP unit tests
  check <name-or-uri>                     Run ATC quality checks
      --variant <name>                    ATC variant (default: DEFAULT)

TRANSPORT — List, create, and release transports
  transport create --desc <text> --package <pkg>
  transport list [--user <user>]
  transport release <number>

DATA DICTIONARY — Tables and CDS views
  ddic table <name>                       Get table definition (fetches lengths + descriptions by default)
      --no-resolve-types                  Skip data-element lookup; show field names and types only
      --raw                               Print raw SAP XML response
  ddic cds <name>                         Get CDS view source

PACKAGE — List contents and check package existence
  package exists <name>
  package list <name>
  package tree <name>                     Recursive BFS traversal
      --type <type>                       Filter: CLAS, PROG, TABL, INTF, FUGR
      --max-depth <n>                     (default: 50)

GLOBAL FLAGS
  --host, --port, --user, --password, --client
  --language <iso>                        SAP logon language (ISO, e.g. EN, DE; default: EN)
  --https, --insecure
  --json                                  Machine-readable JSON output
  --color / --no-color
  --timeout <sec>
  --session-file <path>                   Persist session for lock/write/unlock workflows
  -v / -vv                                INFO / DEBUG logging

EXIT CODES
  0  Success   1  Connection/auth/authorization   2  Not found   5  Activation error
  6  Lock conflict   7  Test failure   8  ATC check error   99  Internal error

MCP server

erpl-adt includes a built-in MCP server (Model Context Protocol) that exposes all ADT operations as tools over JSON-RPC 2.0 on stdin/stdout. This lets AI agents search, read, write, test, and manage ABAP code directly. It negotiates 2025-06-18, 2025-03-26 or 2024-11-05 with the client, returns structuredContent as well as text, and annotates every tool as read-only, mutating or destructive.

erpl-adt mcp --host sap.example.com --port 44300 --https

Configure it in your MCP client (e.g., Claude Desktop, Claude Code):

{
  "mcpServers": {
    "erpl-adt": {
      "command": "erpl-adt",
      "args": ["mcp", "--host", "sap.example.com", "--port", "44300", "--https"],
      "env": {
        "SAP_PASSWORD": "your_password"
      }
    }
  }
}

Catalog

A unified, cross-domain (ABAP + DDIC + CDS + BW) metadata catalog, persisted in a single DuckDB file so search/lineage/where-used run in milliseconds instead of round-tripping SAP. Covers full-text + semantic (Gemini embeddings) hybrid search, end-to-end lineage stitching, a business-glossary overlay (definitions/owner/line-of-business/confidentiality) layered on top of the technical metadata, and incremental sync.

Every catalog command needs an explicit scope (--package/--infoarea) — there's no "catalog the whole system" default, because SAP has no call to enumerate every BW infoarea and ABAP/DDIC package search has no pagination, so a silent "everything" default risks quietly missing content past the result cap. Discover packages first with the regular search command:

erpl-adt search 'Z*' --type DEVC --json   # all custom-namespace packages

Build — erpl-adt catalog build always builds the feed; add --db to persist it, --format to render it differently, both, or neither:

erpl-adt catalog build --sid A4H --package ZMY_PACKAGE --infoarea ZBW_AREA
# -> just a summary, nothing is written anywhere

erpl-adt catalog build --sid A4H --package ZMY_PACKAGE --db catalog.duckdb
# -> persists into a DuckDB file (full rebuild, replaces any prior content) —
#    this is the file catalog search/annotate/sync/webui all read from

erpl-adt catalog build --sid A4H --package ZMY_PACKAGE --db catalog.duckdb --embed
# -> also computes embeddings for semantic/hybrid search (needs GEMINI_API_KEY)

erpl-adt catalog build --sid A4H --package ZMY_PACKAGE --format mermaid
erpl-adt catalog build --sid A4H --package ZMY_PACKAGE --format openmetadata

catalog build --db is a single-shot, all-or-nothing write with no progress output and no resume — fine for a small scope. For anything large (thousands of packages, an hour-plus run), use catalog sync instead, even for the very first build:

erpl-adt catalog sync catalog.duckdb --sid A4H --package ZMY_PACKAGE
# [1/1] package ZMY_PACKAGE (elapsed 0m4s, ETA 0s)   <- one progress line per item, on stderr

# interrupted (connection drop, auth expiry, Ctrl-C)? everything already synced is
# durably committed — pick up exactly where it left off instead of starting over:
erpl-adt catalog sync catalog.duckdb --sid A4H --package ZMY_PACKAGE --resume

Checkpoint/audit state (which items are done, whether the last attempt was interrupted) lives in the same DuckDB file as the catalog data — one artifact, no sidecar file to lose track of or leave behind. Removal detection (deleting entities that disappeared from the scope) only runs on a plain, non-resumed sync — a resumed run only sees the items it personally processed, not the whole scope's picture, so it skips removal rather than risk flagging a still-valid item as gone.

Maintain:

# Incremental sync — diffs against what's already stored, writes only the delta
erpl-adt catalog sync catalog.duckdb --sid A4H --package ZMY_PACKAGE

# Curate business context — optional; the catalog works fine without it.
# Technical metadata gives you the *what* (a table's fields); this adds the
# *why* a human would write: what an entity means, who owns it, how
# sensitive it is. Turns a search for "procurement spend" into a real hit
# on 0PUR_VALUE even before anyone remembers what that technical name means.
# Never touches SAP — only writes to catalog.duckdb's overlay columns.
erpl-adt catalog annotate catalog.duckdb --id <entity_id> \
    --definition "Total procurement value" --owner "jane@example.com" --lob Procurement
erpl-adt catalog annotate catalog.duckdb --file overlay.yaml   # bulk, keyed by entity_id

View:

# CLI — fast, cache-only, no SAP round-trip
erpl-adt catalog search catalog.duckdb "procurement value" --mode hybrid

# Web UI — search, browse, lineage, curate, sync status, feed export
erpl-adt catalog webui catalog.duckdb --port 8383   # then open http://127.0.0.1:8383/

# MCP — catalog_search/catalog_get/catalog_lineage/catalog_where_used/... for AI agents
erpl-adt mcp --catalog-db catalog.duckdb            # stdio
erpl-adt mcp --catalog-db catalog.duckdb --http     # JSON-RPC over HTTP

Both HTTP servers (mcp --http and catalog webui) refuse cross-origin browser requests with 403 — a page you visit cannot post writes to your SAP system through them. Requests without an Origin header (curl, native MCP clients), same-origin requests and loopback origins are always allowed; add others with --cors-origin, and require a token with --auth-token / --auth-token-env. Origin checking cannot see DNS rebinding, where the attacker controls the Host too, so the Host is checked as well: loopback, IP literals and the address bound are served, and a browser asking for any other name is refused until you name it with --allowed-hosts (or ERPL_ADT_ALLOWED_HOSTS, or http.allowed_hosts in a --config file). See docs/cli-usage.md.

The web UI (flutter/erpl_catalog_kit, compiled and embedded straight into the erpl-adt binary — see Building from source) is read-only against the cache except for curation: Search, Browse, Entity Detail, Lineage, and Driver Tree all query the same fast catalog_* MCP tools the CLI and AI agents use; the Curate screen is the only one that writes, via catalog_annotate. There's no build/sync button — catalog webui doesn't hold a live SAP connection, so building, exporting, and syncing stay CLI-only operations. The Sync Status screen shows past sync runs and cache health, and Feed Export surfaces the exact erpl-adt catalog build --format ... command to run for each format, rather than re-implementing either client-side.

catalog explorer

Deploy workflow

erpl-adt also includes the original deploy workflow for automated abapGit package deployment via YAML configuration:

cat > config.yaml <<EOF
connection:
  host: localhost
  port: 50000
  use_https: false
  client: "001"
  user: DEVELOPER
  password_env: SAP_PASSWORD

repos:
  - name: flight
    url: https://github.com/SAP-samples/abap-platform-refscen-flight.git
    branch: refs/heads/main
    package: /DMO/FLIGHT
    activate: true
EOF

export SAP_PASSWORD=your_password
erpl-adt deploy -c config.yaml

The deploy workflow is an idempotent state machine: discover → create package → clone → pull → activate. Each step checks preconditions and skips if already satisfied. Re-running is safe. Supports multi-repo deployments with depends_on for topological ordering.

Building from source

git clone --recurse-submodules https://github.com/datazooDE/erpl-adt.git
cd erpl-adt
make release

Requires CMake 3.21+, Ninja, and a C++17 compiler (GCC 13+, Apple Clang 15+, or MSVC 17+). vcpkg is included as a git submodule.

To also embed the catalog web UI into the binary (optional — not required for the CLI/MCP server), build the Flutter client first, then rebuild:

make webui      # flutter build web — requires the Flutter SDK
make release    # picks up the build output and embeds it via CMakeRC

Without make webui, erpl-adt catalog webui still builds and runs, but serves an instructional message instead of the app.

To run the tests:

make test                          # Unit tests (offline, no SAP system needed)
make test-integration-py           # Integration tests (requires SAP system)

Docker

docker build -t erpl-adt .
docker run --rm -v $(pwd)/config.yaml:/config.yaml \
    -e SAP_PASSWORD=your_password \
    erpl-adt deploy -c /config.yaml

Or use Docker Compose for end-to-end provisioning with a SAP ABAP Cloud Developer Trial:

docker compose up

Feedback

If erpl-adt misbehaves or does something surprising, please open an issue. ADT talks to real SAP systems whose configurations we cannot reproduce here, so a report with your setup is the fastest path to a fix — every human-readable error ends with that link for exactly this reason.

If it saved you a trip through Eclipse, a star on the repo helps other people find it.

The first time you run erpl-adt interactively each day, a small banner says the same thing. It never prints when output is piped, under --json or --quiet, or in CI. Silence it with DATAZOO_NO_BANNER=1.

Telemetry

erpl-adt collects anonymous, aggregate usage telemetry (feature usage, outcomes, and durations) — never source code, object/package names, transport IDs, SAP hosts/users, or error text. It is on by default and easy to disable:

erpl-adt --no-telemetry ...          # per invocation
export DATAZOO_DISABLE_TELEMETRY=1   # or DO_NOT_TRACK=1

See TELEMETRY.md for exactly what is collected and the privacy contract.

License

Apache License 2.0 — Copyright 2026 Datazoo GmbH

Apache-2.0, read

History

Latest

v2026.09.27

Notes

Create RAP service objects directly through the CLI or MCP: behavior definitions (BDEF/BDO), service definitions (SRVD/SRV), and service bindings (SRVB/SVB). Previously these types were rejected as unknown before reaching SAP.

Service bindings accept explicit binding type, version, category, and service-definition metadata:

erpl-adt object create --type SRVB/SVB --name ZORDER_BIND \
  --package '$TMP' --description 'Order binding' \
  --binding-type ODATA --binding-version V4 --binding-category 0 \
  --service-definition ZORDER_SRV

The MCP tool adt_create_object exposes the equivalent binding_type, binding_version, binding_category, and service_definition parameters. Service definitions send SAP's required source-type metadata, and all three types use their ADT XML media types.

Validated with six live a4h regression cases covering creation, source access, service-definition activation, OData V2/V4 bindings in both SAP categories, metadata read-back, and cleanup. The unit suite and all four platform CI builds passed. The broader live integration run encountered intermittent SAP lock-service failures, also reproduced with the previous release; details are recorded in the PR.

Fixes #64 via #65.

Full changelog

  1. v2026.09.26

  2. v2026.09.26

  3. v2026.09.01

  4. v2026.09.01

  5. v2026.09.01

  6. v2026.08.31

  7. v2026.08.30

  8. v2026.08.11

  9. v2026.08.10

  10. v2026.08.06

  11. v2026.07.26

  12. v2026.07.25

  13. v2026.07.17

    Notes

    Bumps the posthog-telemetry submodule to f550a66 (DataZooDE/posthog-telemetry#10): CaptureError() now stamps exceptionlistandaproduct−scopedexception_list and a product-scoped exception_fingerprint so PostHog Error Tracking actually creates issues from captured errors instead of rejecting every event at ingestion.

  14. v2026.07.12

  15. v2026.06.27

  16. v2026.05.17

  17. v2026.05.16

  18. v2026.05.15

  19. v2026.05.02

  20. v2026.05.01

  21. v2026.04.30

  22. v2026.04.29

  23. v2026.03.07

  24. v2026.02.23

  25. v2026.02.21

  26. v2026.02.20

  27. v2026.02.16

  28. v2026.02.14

  29. v2026.02.14

  30. v2026.02.13

Agent access to ABAP code
  1. @abap2ui5/mcp-serverMCP server for the abap2UI5 check, deploy and run loop
  2. arc-1-bopf-enharc-1 extension for reading and maintaining BOPF enhancements
  3. HammerNative macOS code editor for ABAP and CDS
  4. arc-1-lspEdition of ARC-1 that runs ADT calls through adt-ls
  5. arc-1MCP server over the ADT REST API for ABAP objects
  6. arc1-abap-bridgeVS Code bridge between arc-1 and ADT for VS Code
  7. arc1-adt-abap-mcp-extEclipse add-on enabling the ADT MCP server with read-only tools
  8. ABAP Accelerator MCP ServerAWS's ABAP MCP server for Amazon Q Developer and Kiro
  9. Modernization Agents for SAP on AWSAWS agents for ABAP, PI/PO and BW modernisation work
  10. @mcp-abap-adt/coreABAP ADT MCP server published as an npm scope and plugin
  11. chandrashekhar-mahajan/abap-mcp-serverABAP MCP server with ADT tools and five authentication strategies
  12. dassian-adtFork of mcp-abap-abap-adt-api with 25 tools and session recovery
  13. bw-modeling-mcpMCP server for BW/4HANA modelling objects
  14. EPOD ADT MCP ServerMCP server for ABAP on the ADT session, in Eclipse or standalone
  15. ZARC1_EXTENSION_FORMSarc-1 extension for SAPscript and Smart Forms objects
  16. fgalastri/MCP_ABAPValidates an ABAP class before it is deployed by converting the global class to a local one and syntax-checking that — plus CDS DDL and table metadata retrieval.
  17. fr0ster/mcp-abap-adtABAP MCP server with full CRUD on on-premise and ABAP Cloud
  18. abapsmithABAP MCP server over ADT with a local journal that can undo writes
  19. sap-ai-dev-toolkitMCP proxy pinning an agent's ABAP tools to one SAP system
  20. aibap.mcpGo MCP server that writes, activates and runs ABAP classes via ADT
  21. BellaEclipse plugin bringing Claude into ABAP Development Tools
  22. Maherd18/sap-mcp-serverPolicy-checked MCP server for ABAP development over ADT
  23. sapdumpmcpMCP server reading ABAP short dumps over ADT
  24. ABAP remote filesystemVS Code extension editing ABAP systems over ADT as a filesystem
  25. mcp-abap-abap-adt-apiWrite-oriented MCP server over abap-adt-api
  26. mcp-abap-adtRead-oriented MCP server fetching ABAP programs, classes, tables
  27. SAP MCP Connection ManagerWindows desktop manager handing SAP connections to assistants over MCP
  28. ABAPilotMCP connector for ECC and on-premise S/4HANA with a licensed SAP side
  29. vibing-steampunkADT-to-MCP bridge in Go reaching past what ADT exposes
  30. ADT MCP ServerLocal HTTP MCP server started from ABAP Development Tools for VS Code
  31. ABAP Development Tools for VS CodeSAP's ABAP tools in VS Code for editing, debugging, ATC and transports
  32. SAP Joule for Developers, ABAP AI capabilitiesSAP's AI for ABAP development in ADT for Eclipse and VS Code
  33. ABAPDocMCPMCP server turning a transport request into a WRICEF specification
  34. claude-sap-kitClaude Code plugin adding Custom_* tools to arc-1
  35. Skybuffer AI MCP serverABAP add-on serving business data and transactions as MCP tools
  36. abap-adt-cliCLI that pulls and pushes ABAP packages as local files over ADT
  37. workskong/mcp-abap-adtLight MCP adapter for ABAP over ADT, documented in Korean
  38. KlystronMCP server in ABAP inside the application server, with agent skills
  39. pyrfc-mcpMCP server calling RFC-enabled function modules behind an allowlist
  40. ABAP-AI-CODE-TOOLSabapGit package adding create, modify and delete tools to ABAP AI Code
  41. ABAP AI CodeAgentic coding assistant in ABAP that runs as an SAP GUI report
  42. VERTEXADT extension for Eclipse and VS Code showing three SAP GUI tools

Details

Sources3
sap-ai-mcp-serversdiscovered herechecked
github.com/DataZooDE/erpl-adttree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
discovered viasap-ai-mcp-servers
first seen in the atlas
ecosystem and domainabap, ai-and-agents
Flavors1
Standard ABAP
“Try lockless write first (pre-7.51 SAP)” — DataZooDE/erpl-adt — READMEchecked
Contributors2

From the repository’s contributor list, .

History in the atlas3
  1. corrected against the README
  2. Triaged out of data/crawled/mcp-candidates.json, the sap-ai-mcp-servers sweep. Written from the repository's own README; the catalogue is credited as where it was found and its words are not reused.
  3. First seen.
For your agent
Ref
artifact:datazoode-erpl-adt
JSON
/artifacts/datazoode-erpl-adt.json
MCP
Connecting an agent