Install
$ agentstack add mcp-datazoode-erpl-adt ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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.
[](https://github.com/datazooDE/erpl-adt/actions/workflows/build.yaml)
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 2024-11-05)
Every command accepts --json for machine-readable output.
In action
Find ABAP objects by name pattern:
Read a data-dictionary table, with field types and check tables resolved:
Read ABAP source code with built-in syntax highlighting:
Browse a package recursively to enumerate everything it contains:
BW/4HANA Modeling
Search the BW catalog across ADSOs, composite providers, DTPs, transformations, and queries:
Inspect an ADSO's field structure, complete with the InfoObject each field maps to:
Export an InfoProvider's dataflow as Mermaid — pipe it straight into a renderer or commit it next to the model:
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
# 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](#building-from-source).
| Platform | Architecture | |----------|-------------| | Linux | x8664 | | macOS | arm64, x8664 | | Windows | x64 |
Full reference
Run erpl-adt --help for the complete command listing. Key commands:
SEARCH — Search for ABAP objects
search Search for ABAP objects
--type Object type: CLAS, PROG, TABL, INTF, FUGR
--max Maximum number of results
OBJECT — Read, create, delete, lock/unlock ABAP objects
object create Create an ABAP object
--type, --name, --package (required)
--description, --transport
object delete Delete an ABAP object
object lock Lock an object for editing
object read Read object structure
object run Run an ABAP console class (IF_OO_ADT_CLASSRUN)
object unlock Unlock an object
SOURCE — Read, write, and check ABAP source code
source check Check syntax
source edit Open source in $EDITOR and write back
source read Read source code
--version active or inactive (default: active)
--section main, localdefinitions, localimplementations, testclasses, all
--color / --no-color ANSI syntax highlighting
source write Write source code
--file Path to local source file (required)
--activate Activate the object after writing
--optimistic Try lockless write first (pre-7.51 SAP)
ACTIVATE — Activate inactive ABAP objects
activate
TEST / CHECK
test Run ABAP unit tests
check Run ATC quality checks
--variant ATC variant (default: DEFAULT)
TRANSPORT — List, create, and release transports
transport create --desc --package
transport list [--user ]
transport release
DATA DICTIONARY — Tables and CDS views
ddic table 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 Get CDS view source
PACKAGE — List contents and check package existence
package exists
package list
package tree Recursive BFS traversal
--type Filter: CLAS, PROG, TABL, INTF, FUGR
--max-depth (default: 50)
GLOBAL FLAGS
--host, --port, --user, --password, --client
--https, --insecure
--json Machine-readable JSON output
--color / --no-color
--timeout
--session-file Persist session for lock/write/unlock workflows
-v / -vv INFO / DEBUG logging
EXIT CODES
0 Success 1 Connection/auth 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, version 2024-11-05) 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.
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"
}
}
}
}
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 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
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](TELEMETRY.md) for exactly what is collected and the privacy contract.
License
[Apache License 2.0](LICENSE) — Copyright 2026 Datazoo GmbH
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: DataZooDE
- Source: DataZooDE/erpl-adt
- License: Apache-2.0
- Homepage: https://erpl.io
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.