{"ref":"artifact:datazoode-erpl-adt","page":"/artifacts/datazoode-erpl-adt","json":"/artifacts/datazoode-erpl-adt.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"datazoode-erpl-adt","name":"erpl-adt","artifact_type":"mcp-server","ecosystem":"abap","flavors":[{"key":"standard-abap","source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"DataZooDE/erpl-adt — README","checked":"2026-09-13","quote":"Try lockless write first (pre-7.51 SAP)"}}],"domain":"ai-and-agents","origin_ring":"independent","description":{"one_line":"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.","short":"C++ binary speaking the ADT REST API as a CLI and MCP server","what_it_solves":"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.","when_not_to_use":"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."},"links":{"repo":"https://github.com/DataZooDE/erpl-adt"},"provenance":{"discovered_via":[{"source":"source:sap-ai-mcp-servers"}],"first_seen":"2026-09-10"},"history":[{"date":"2026-09-10","field":"entry","from":null,"to":"created","reason":"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."},{"date":"2026-09-11","field":"description.when_not_to_use","from":null,"to":"corrected against the README","reason":"Corrected against the README: prebuilt binaries per platform and pip/uvx installs exist, and telemetry is on by default — neither was stated."}],"identity":{"license":"Apache-2.0"},"provides":[{"capability":"capability:agent-code-access","what_it_does":"Gives the same ADT operations to a person at a shell and to an agent over MCP from one binary, and extends them to BW/4HANA modelling objects that ABAP-only servers do not reach.","sources":[{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-10","quote":"CLI and MCP server for the SAP ADT REST API — a single binary"}],"facets":[{"key":"activate","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"Activate an object by name"}},{"key":"atc","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"ABAP Unit and ATC quality checks from the command line"}},{"key":"cds","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"Get CDS view source"}},{"key":"create_objects","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"Read, create, delete, lock/unlock ABAP objects"}},{"key":"ddic_metadata","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"Read a data-dictionary table, with field types and check tables resolved:"}},{"key":"git","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"the original `deploy` workflow for automated abapGit package deployment via YAML configuration"}},{"key":"read_source","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"Read ABAP source code with built-in syntax highlighting:"}},{"key":"run_code","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"Run an ABAP console class (IF_OO_ADT_CLASSRUN)"}},{"key":"search_objects","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"Find ABAP objects by name pattern:"}},{"key":"syntax_check","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"Check syntax"}},{"key":"transports","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"create, list, and release transport requests"}},{"key":"unit_tests","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"ABAP Unit and ATC quality checks from the command line"}},{"key":"where_used","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"so search/lineage/where-used run in milliseconds instead of round-tripping SAP"}},{"key":"write_source","value":true,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"Write source code (auto-locks, writes, unlocks)"}}]}],"type_properties":{"transports":{"value":["stdio","http"],"sources":[{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"exposes all ADT operations as tools over JSON-RPC 2.0 on stdin/stdout"},{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"Both HTTP servers (`mcp --http` and `catalog webui`) refuse cross-origin browser requests"}]},"auth":{"value":["basic"],"sources":[{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"--host, --port, --user, --password, --client"}]},"read_only":{"value":false,"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"This lets AI agents search, read, write, test, and manage ABAP code directly."}},"guardrails":[{"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"annotates every tool as read-only, mutating or destructive."}},{"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"Both HTTP servers (`mcp --http` and `catalog webui`) refuse cross-origin browser requests"}},{"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"a browser asking for any other name is refused until"}},{"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"and require a token with"}},{"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"Every catalog command needs an explicit scope (`--package`/`--infoarea`)"}},{"source":{"url":"https://github.com/DataZooDE/erpl-adt","title":"erpl-adt — README","checked":"2026-09-11","quote":"It is on by default and easy to disable:"}}]},"drafted_with_ai":true,"maintainers":["actor:datazoode"],"contributors":["actor:baijack-star","actor:jrosskopf"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"2 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"good","evidence":"CI green, 2026-09-29"}],"practice":[{"label":"Tests","tier":"good","evidence":"228 test files"},{"label":"Docs","tier":"good","evidence":"docs/ with 9 pages, README 17 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":21,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":21,"forks":4,"open_issues":1,"archived":false,"pushed_at":"2026-10-03","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","contributors":2,"tree_truncated":false,"test_files":228,"workflows":3,"other_ci":false,"readme_bytes":17214,"docs_files":9,"changelog":false,"license_file":true,"dts_files":0,"ci_status":"success","ci_run_at":"2026-09-29","ci_workflow":"CI","ci_event":"push","readme_path":"README.md","readme_sha":"a14aff5cee085ae5d6ca1c1ee5773045479e2654","first_commit":"2026-02-11","last_commit":"2026-09-29","commits":171,"created_at":"2026-02-11T15:37:05Z","open_prs":1,"repo_read":"2026-10-26"},"release_notes":{"license":"Apache-2.0","quotable":true,"source":{"kind":"github-releases","url":"https://github.com/DataZooDE/erpl-adt/releases"},"format":"github-releases","releases":[{"version":"2026.09.27","date":"2026-09-27","date_source":"github","heading":"v2026.09.27","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.09.27","sections":[],"hash":"1eab2bd787704fad"},{"version":"2026.09.26","date":"2026-09-26","date_source":"github","heading":"v2026.09.26.1","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.09.26.1","sections":[],"hash":"152a4dd7782a91ba"},{"version":"2026.09.26","date":"2026-09-26","date_source":"github","heading":"v2026.09.26","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.09.26","sections":[],"hash":"26c1b19c14fb146a"},{"version":"2026.09.01","date":"2026-09-01","date_source":"github","heading":"v2026.09.01.2","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.09.01.2","sections":[],"hash":"ae5d51bd1f541cb8"},{"version":"2026.09.01","date":"2026-09-01","date_source":"github","heading":"v2026.09.01.1","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.09.01.1","sections":[],"hash":"3f0710dafad1817d"},{"version":"2026.09.01","date":"2026-08-31","date_source":"github","heading":"v2026.09.01","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.09.01","sections":[],"hash":"a28de849d370765a"},{"version":"2026.08.31","date":"2026-08-31","date_source":"github","heading":"v2026.08.31","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.08.31","sections":[],"hash":"1157f0e8cd38d503"},{"version":"2026.08.30","date":"2026-08-30","date_source":"github","heading":"v2026.08.30","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.08.30","sections":[],"hash":"6fc408d08d0a84ad"},{"version":"2026.08.11","date":"2026-08-11","date_source":"github","heading":"v2026.08.11","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.08.11","sections":[],"hash":"661d0f3df01b326e"},{"version":"2026.08.10","date":"2026-08-10","date_source":"github","heading":"v2026.08.10","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.08.10","sections":[],"hash":"e049f14a094e48d0"},{"version":"2026.08.06","date":"2026-08-06","date_source":"github","heading":"v2026.08.06","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.08.06","sections":[],"hash":"09bd6bc9ee0d1004"},{"version":"2026.07.26","date":"2026-07-25","date_source":"github","heading":"v2026.07.26","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.07.26","sections":[],"hash":"62cc4f9ac0db8db5"},{"version":"2026.07.25","date":"2026-07-25","date_source":"github","heading":"v2026.07.25","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.07.25","sections":[],"hash":"1399c13320c8dde6"},{"version":"2026.07.17","date":"2026-07-17","date_source":"github","heading":"v2026.07.17","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.07.17","sections":[],"hash":"45a3aa7928529d79"},{"version":"2026.07.12","date":"2026-07-12","date_source":"github","heading":"v2026.07.12","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.07.12","sections":[],"hash":"f8fa4d5166e17588"},{"version":"2026.06.27","date":"2026-06-27","date_source":"github","heading":"v2026.06.27","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.06.27","sections":[],"hash":"e3efe282b88d5915"},{"version":"2026.05.17","date":"2026-05-17","date_source":"github","heading":"v2026.05.17","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.05.17","sections":[],"hash":"740b0087272e123d"},{"version":"2026.05.16","date":"2026-05-15","date_source":"github","heading":"v2026.05.16","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.05.16","sections":[],"hash":"4e4e4cae4c7327d0"},{"version":"2026.05.15","date":"2026-05-15","date_source":"github","heading":"v2026.05.15","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.05.15","sections":[],"hash":"2e3f29d75f489068"},{"version":"2026.05.02","date":"2026-05-01","date_source":"github","heading":"v2026.05.02","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.05.02","sections":[],"hash":"8343cfef472d8878"},{"version":"2026.05.01","date":"2026-05-01","date_source":"github","heading":"v2026.05.01","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.05.01","sections":[],"hash":"fc8c725db1baabb2"},{"version":"2026.04.30","date":"2026-04-29","date_source":"github","heading":"v2026.04.30","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.04.30","sections":[],"hash":"f25a2e7f2dbe0d56"},{"version":"2026.04.29","date":"2026-04-29","date_source":"github","heading":"v2026.04.29","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.04.29","sections":[],"hash":"63a36ec3581f5d8b"},{"version":"2026.03.07","date":"2026-03-07","date_source":"github","heading":"v2026.03.07","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.03.07","sections":[],"hash":"8fbe57ded8ad1cfa"},{"version":"2026.02.23","date":"2026-02-23","date_source":"github","heading":"v2026.02.23","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.02.23","sections":[],"hash":"8665b8da1decef43"},{"version":"2026.02.21","date":"2026-02-21","date_source":"github","heading":"v2026.02.21","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.02.21","sections":[],"hash":"1fc0129f85f8011d"},{"version":"2026.02.20","date":"2026-02-20","date_source":"github","heading":"v2026.02.20","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.02.20","sections":[],"hash":"7e56bf135d3e91b4"},{"version":"2026.02.16","date":"2026-02-16","date_source":"github","heading":"v2026.02.16","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.02.16","sections":[],"hash":"29e7c222a7c6a2f8"},{"version":"2026.02.14","date":"2026-02-14","date_source":"github","heading":"v2026.02.14.1","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.02.14.1","sections":[],"hash":"b971393529bc8122"},{"version":"2026.02.14","date":"2026-02-14","date_source":"github","heading":"v2026.02.14","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.02.14","sections":[],"hash":"b6796e065c41ff26"},{"version":"2026.02.13","date":"2026-02-13","date_source":"github","heading":"v2026.02.13","url":"https://github.com/DataZooDE/erpl-adt/releases/tag/v2026.02.13","sections":[],"hash":"fadc97f9e8d6bf25"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:datazoode","name":"DataZoo GmbH","json":"/actors/datazoode.json"}],"contributors":[{"ref":"actor:baijack-star","name":"Baijack-star","json":"/actors/baijack-star.json"},{"ref":"actor:jrosskopf","name":"Joachim Rosskopf","json":"/actors/jrosskopf.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}