abap-adt-api
A JS/TS client for the ADT resourcesADT resourcesThe HTTP endpoint an ABAP system exposes as the adt ICF service under /sap/bc/adt, so a client outside the system can reach development objects, delivered with the platform rather than installed.sap official, abap an ABAP system exposes, so a program outside the system can do against it what the maintainer calls a good share of what the Eclipse tools do.
An ADTClient is constructed with a server URL, a user and a password, and its methods are the ADT calls: nodeContents("DEVC/K", "$TMP") reads what a package holds. The maintainer states the coverage as a good share of what ABAP Development Tools for EclipseABAP Development Tools for EclipseSAP's Eclipse plugins for ABAP: source, dictionary and CDS editors, Project Explorer, Outline and ABAP Unit, calling ADT resources on the connected system.sap official, abap can do, behind a simple JS/TS interface. It stops at the client: it makes the calls, and the editor, command line or server built on top decides which to make and when. Written for general use, with the ABAP remote filesystem extension for Visual Studio Code named as where it is mostly used.
Facts
Where it sits
Who is behind it
In the atlas: maintains 14, contributes to 21@marcellourbanimaintainerKilian KilgerContributes to this
In the atlas: contributes to 3@cohomologySamuel DaviesContributes to this
In the atlas: contributes to 1@draysamsHenrique AndreoliContributes to this
In the atlas: contributes to 1@hfandreoliLars HvamContributes to this
In the atlas: maintains 13, contributes to 92, wrote 1@larshprayutekContributes to this
In the atlas: contributes to 1@rayutekSébastienContributes to this
In the atlas: contributes to 1@sle118Jakob Marius KjaerContributes to this
In the atlas: maintains 2, contributes to 24, wrote 1@uxkjaer7 contributors
Before choosing this
Conditions
PracticalFunctional boundary
Not a tool a developer runs: it is a library to build one with, and it ships no editor, command line or interface of its own. Its sample connects with a plain HTTP URL, a user and a password, so a system that does not expose the adt ICF service that way is out of reach.
What it declares
Every artifact
- Type
- Package
- Origin
- Independently maintained
- Runtime
- Node.js
As a package
- Where it runs
- In your own program
- Distributed through
- does not say
Connections
Editor help with source: completion, navigation, errors, refactoring
HTTP endpoint under /sap/bc/adt exposing ABAP development objects
HTTP endpoint under /sap/bc/adt exposing ABAP development objects
VS Code extension editing ABAP systems over ADT as a filesystem
MCP server over the ADT REST API for ABAP objects
Download
Install
npm add abap-adt-apiDerived from the package name. No recipe recorded; the README has the configuration.
Learn more
- ABAP + MCP: Let AI Do Real Development in Your SAP SystemABAP + MCP: Let AI Do Real Development in Your SAP Systemabap-adt-mcp is an open-source MCP server that gives an AI agent full ABAP development capability over ADT: it searches, reads, edits, activates and unit-tests objects, and runs ATC checks, on a connected S/4HANA Cloud or on-premise system, acting as the signed-in developer. It runs on abap-adt-api, the same REST client Eclipse's own ADT tooling uses, and sits beside SAP's own ADT MCP Server, shipped with ADT for VS Code and Eclipse under a different server key, and marianfoo's abap-docs, a read-only server over the ABAP Keyword Documentation and Clean ABAP. Each destination carries a policy — read-only, allowed packages, denied tables and tools — the server checks before every call, and an optional audit file logs each tool call with its outcome and policy gate.Willian_Saez, published 2026-09-03Willian_Saez, SAP Community
Where it sits in your app
Download
README
quoted from marcellourbani/abap-adt-api under MIT, readADT - Abap Developer Tools client
This library simplifies access to the ADT REST interface.
Supports a good share of what Eclipse tools can do with a simple JS/TS interface.
Designed for general use, mostly used in ABAP remote filesystem extension for visual studio code
Sample usage
// create a client object
import { ADTClient } from "abap-adt-api"
const client = new ADTClient(
"http://vhcalnplci.bti.local:8000",
"developer",
"mypassword"
)
const nodes = await client.nodeContents("DEVC/K", "$TMP")
Testing
npm test runs Jest. Unit/mock tests use sample data in testdata/src/ and don't need a SAP system.
Integration tests require a live SAP system. Jest loads setenv.js (gitignored) at startup and aborts with a Validation Error when the file is missing, so copy setenv_sample.js → setenv.js and fill in credentials:
// Minimum setenv.js
process.env.ADT_URL = "https://host:44300/"
process.env.ADT_USER = "developer"
process.env.ADT_PASS = "secret"
Tests skip gracefully while ADT_URL is unset. The shipped sample points at a placeholder host: copy it verbatim and the integration tests fail on connection errors — comment out its ADT_URL line to run only the mock tests. Tests use the runTest(f) helper from src/test/login.ts — it creates the client and calls logout() in a finally block. Set ADT_ENABLE_ALL=YES to enable destructive tests (create/delete objects, release transports).
History
Features 1
Notes
Added
- tracing APIs
Features 2, Changed 2
Notes
Added
- conditional breakpoints
- change variables in debugger
Changed
- Debugger set breakpoint API (breaking)
- Debugger delete breakpoint API (breaking)
Features 1, Fixes 6
Notes
Added
- transport configurations support
Fixed
- core discovery for hana 1909
- include components unit test for hana 1909
- skipped sscr test in hana (removed API)
- fixed content type in completion
- fixed test for abap unit in hana 1909
- fixed revisions for hana 1909
Features 5
Notes
Added
- SQL interface
- table selection
- service binding parsing
- service binding details
- service binding preview links
Features 5
Notes
Added
- create authorization field
- create authorization object
- create data element
- create service binding
- (ub)publish service binding
Features 1, Fixes 1
Notes
Added
- maximum creatable object name length
fixed
- missing details in unit testing
Features 1, Fixes 2
Notes
Added
- inactive object list
Fixed
- optional types in object metadata
- some minor typing issue
Features 1, Fixes 2
Notes
Added
- create transport by transpot layer
Fixed
- ABAP help in older systems
- better type definition exports
Features 3, Changed 2
Notes
Added
- AbapGit stage
- AbapGit push
- Abapgit versioned source
Changed
- links in git repositories
- adopted semantyc versioning
Features 5
Notes
Added
- feature check
- syntax check for CDS views
- CDS annotations definition(raw)
- DDIC components (required for CDS completions)
- DDIC elements
Fixes 2
Notes
Fixed
- special characters in object descriptions
- special characters in transport descriptions
Features 6, Changed 1
Notes
Added
- sample test data
- ABAPGIT repo CRUD
- Package creation and deletion
- logout from tests
- longer timeouts for some slow test
- transport layer/software component/application component/translation relevances search help
Changed
- unit tests don't depend on abapgit anymore
Features 1, Fixes 1
Notes
Added
- Run console application (class implementing IF_OO_ADT_CLASSRUN)
Fixed
- removed vulnerabilities
Features 1, Fixes 3
Notes
Added
- transport in create test include
Fixed
- added missing exports
- better typing for class metadata
- logout
Features 7, Fixes 2
Notes
Added
- type hierarchy
- user transports
- delete transport / task
- release transport / task
- add user to transport
- system users list
- create test class include
Fixed
- added test cases for object components
- error creating namespaced objects
Fixes 2
Notes
Fixed
- operation in transport selection
- force object name to string in node contents
Features 4, Changed 1
Notes
Changed
- replaced Axios with request for HTTP client
Added
- better test for stateless clone
- proper https support
- object types
- check types
Features 1, Fixes 4
Notes
Added
- usage list resolution
Fixed
- object ID in usage list
- completion elements in older systems
- enhanced a few tests
- moved tests to improve debugging
Changed 1, Fixes 1
Notes
Changed
- added main include in object validation
Fixed
- decode entities in syntax messages
Features 7
Notes
Added
- syntax check
- code completion
- navigate to definition
- where used list
- code fix proposals
- unit test runs
- class/interface components
Features 2, Fixes 4
Notes
Added
- discovery functions
- sample environment setter
Fixed
- activation failed test moved to disruptive tests
- no need for inactive objects in test system
- moved test constants in environment
- several issues with older systems (7.31)
Changed 2, Fixes 4
Notes
Fixed
- search object by type
- max results in object search
- no exception on validation for info messages
- operation in transport checks
Changed
- validation results format
- raise exception when validation fails
Features 2, Fixes 3
Notes
Added
- transport in delete
- alternate format for create object
Fixed
- bug in main link for CDS
- lock tables and CDS
- create interface
Changed 1, Fixes 2
Notes
Changed
- date format in node metadata
Fixed
- node details
- more types exported
Features 4
Notes
Added
- stateless clone
- object type label
- object URL from name
- exported more object types
Changed 1
Notes
Added
- search
- get object path
- validation
- creation
- deletion
Fixed
- session handling
- code writing
Features 5, Fixes 2
Notes
Added
- search
- get object path
- validation
- creation
- deletion
Fixed
- session handling
- code writing
Features 5, Fixes
Notes
Added
- get main program
- validate object URLs
- validate session status
- lock/unlock (broken)
- read/write source (write untested)
Fixed
-bug in activate
Features 3
Notes
Added
- tslint enabled
- transport selection and creation for an object
- reentrance ticket
Others providing
Compare all 32 on the Editor support page →- abap2UI5 Playgroundabap2UI5 PlaygroundABAP in the editor on the left and the abap2UI5 app it builds on the right, both inside one browser tab: the framework is transpiled to JavaScript at build time and the class in the editor is compiled when Run is pressed.community org, abapIn-browser ABAP editor beside the abap2UI5 app it buildsfrom ABAP
- abap2UI5 for VS Codeabap2UI5 for VS CodeA VS Code extension for abap2UI5 apps: F9 starts the app class in a preview beside the source, Ctrl+F3 activates the class and reloads it, and the abap2UI5 linter runs in the editor while you type.community org, abapVS Code extension to preview, activate and lint abap2UI5 appsfrom ABAP
- vscode-tabl-ddicvscode-tabl-ddicA VS Code extension that registers .tabl.ddic files, the DDIC DDL form of an ABAP table definition, as a language of their own with a TextMate grammar for syntax highlighting, and nothing more.community org, abapVS Code syntax highlighting for .tabl.ddic table definitionsfrom ABAP
- HammerHammerA native macOS code editor for ABAP and CDS, with an Object Navigator, Transport Organizer, Data Browser and Gateway Client in the same app as the editor.independent, abapNative macOS code editor for ABAP and CDSfrom ABAP
- cds-eclipse-plugincds-eclipse-pluginEclipse plugin for the CDS language.independent, capEclipse plugin for the CDS languagefrom CAP
- @arc-mcp/adt-ls@arc-mcp/adt-lsA TypeScript SDK over adt-ls, the headless language server SAP ships inside ABAP Development Tools for VS Code, so a program drives it without the discovery, JVM and handshake work.independent, abapTypeScript SDK over SAP's headless adt-ls language serverfrom ABAP
- abapthemesabapthemesThree colour themes for ABAP source in ABAP Development Tools for Eclipse, shipped as an Eclipse plugin and installed from the maintainer's own update site.independent, abapThree colour themes for ABAP source in ADT for Eclipsefrom ABAP
- SAP Build CodeSAP Build CodeSAP's development environment on BTP for SAPUI5, SAP Fiori, mobile and CAP applications that run on the SAP BTP, Cloud Foundry Runtime, in which Joule generates models, services, logic, tests and apps.sap official, btpDevelopment environment on BTP for UI5, Fiori, mobile and CAPfrom BTP/BAIP
- SAP Business Application StudioSAP Business Application StudioSAP's development environment for business applications, delivered as a cloud service and opened in a browser, where work happens in preconfigured dev spaces.sap official, btpBrowser-based development environment with dev spacesfrom BTP/BAIP
- SAP Web IDE Full-StackSAP Web IDE Full-StackSAP's IDE service on BTP for SAPUI5 and SAP Fiori apps, full-stack SaaS applications, SAP S/4HANA extensions, hybrid mobile apps and IoT apps, with an SDK for extending the IDE itself.sap official, btpIDE service on SAP BTP for SAPUI5, Fiori and full-stack appsfrom BTP/BAIP
- cds-intellijcds-intellijSAP CDS language support for IntelliJ IDEA.sap official, capSAP CDS language support for IntelliJ IDEAfrom CAP
- Cloud ALM Link for ADTCloud ALM Link for ADTAn Eclipse plugin that shows the transports and SAP Cloud ALM features behind an ABAP object, and turns Cloud ALM IDs in source comments into links.independent, abapEclipse plugin linking ABAP transports to SAP Cloud ALM featuresfrom ABAP
- ABAP Call HierarchyABAP Call HierarchyAn Eclipse plugin that shows which members a class method, function module or subroutine calls, read from its own ADT backend in the system and published on a beta update site only.independent, abapEclipse plugin showing the call hierarchy of ABAP membersfrom ABAP
- abap-call-hierarchyabap-call-hierarchyThe ADT backend needed by the separate ABAP Call Hierarchy Eclipse plugin, installed in the ABAP system with abapGit and still in beta, which its maintainer calls not feature complete.independent, abapADT backend for the ABAP Call Hierarchy Eclipse pluginfrom ABAP
- abap-tags-backendabap-tags-backendThe ADT backend needed by the separate ABAP Tags Eclipse plugin, installed in the ABAP system with abapGit; an upgrade to v2.0.0 or later runs a migration program for its new database tables.independent, abapADT backend for the ABAP Tags Eclipse pluginfrom ABAP
- ABAP TagsABAP TagsAn Eclipse plugin for putting arbitrary tags on repository objects, with a Tag Manager view, tagged object search and tag import and export, served by its own ADT backend in the system.independent, abapEclipse plugin for tagging ABAP repository objectsfrom ABAP
- BellaBellaAn Eclipse plugin that puts Claude into ABAP Development Tools: explain, generate, rework and implement from the editor's context menu, completion as ghost text, and a chat whose tools reach the system through the developer's existing ADT logon.independent, abapEclipse plugin bringing Claude into ABAP Development Toolsfrom ABAP
- ABAP Syntax HighlightingABAP Syntax HighlightingA VS Code extension that registers .abap files as the language abap and colours them with a TextMate grammar.independent, abapVS Code syntax highlighting for .abap filesfrom ABAP
- abapfs_extensionsabapfs_extensionsABAP imported with abapGit that sets the stateful session flag on systems older than 7.51, so an HTTP client of the ADT resources can update objects there.independent, abapABAP objects enabling ADT updates on systems older than 7.51from ABAP
- ABAP remote filesystemABAP remote filesystemA Visual Studio Code extension that opens an ABAP system over ADT as an editable filesystem and exposes system tools to GitHub Copilot and external MCP clients.independent, abapVS Code extension editing ABAP systems over ADT as a filesystemfrom ABAP
- ABAP Development Tools for EclipseABAP Development Tools for EclipseSAP's Eclipse plugins for ABAP: source, dictionary and CDS editors, Project Explorer, Outline and ABAP Unit, calling ADT resources on the connected system.sap official, abapSAP's Eclipse plugins for ABAP development over ADTfrom ABAP
- ABAP Development Tools for VS CodeABAP Development Tools for VS CodeSAP's ABAP tools in VS Code: editing, debugging, ABAP Unit, ATC and transports for classes, CDS and RAP objects, over RFC to an on-premise or Private Cloud system and HTTP to a cloud one, with Joule's ADT MCP server and code completion behind an AI-unit licence.sap official, abapSAP's ABAP tools in VS Code for editing, debugging, ATC and transportsfrom ABAP
- @sap/cds-lsp@sap/cds-lspLanguage server for CDS — the engine behind completion, navigation and inline errors in every supported editor.sap official, capLanguage server for CDSfrom CAP
- cds-textmate-grammarcds-textmate-grammarThe TextMate grammar for the CDS language, which highlights .cds files where the CDS language server does not run, most visibly in GitHub's own file viewer through Linguist.sap official, capTextMate grammar for the CDS languagefrom CAP
- @sap/ux-cds-odata-language-server-extension@sap/ux-cds-odata-language-server-extensionAdds the OData annotation features to @sap/vscode-cds, the CDS plug-in for Visual Studio Code: completion, micro-snippets, diagnostics, vocabulary documentation, Go to Definition and an i18n check inside a .cds file.sap official, capOData annotation features for the @sap/vscode-cds extensionfrom CAP
- @sap/vscode-cds@sap/vscode-cdsSAP CDS language support for Visual Studio Code and Business Application Studio, published as an npm library.sap official, capCDS language support for VS Code and Business Application Studiofrom CAP
- vscode-ui5-language-assistantvscode-ui5-language-assistantSAP's VS Code extension for SAPUI5 and OpenUI5: completion, validation, hover tooltips, go to definition, quick fix and formatting for XML views, and completion and validation for manifest.json.sap official, ui5VS Code extension for SAPUI5 and OpenUI5 XML views and manifestfrom UI5
- @saptools/hana-lens@saptools/hana-lensCompiles every CAP package in a workspace into one minified CSN cache, so "where is this entity and what columns does it have" is a query rather than a monorepo load.independent, capWorkspace-wide CSN cache for querying CAP entities and columnsfrom CAP
- @saptools/sqltools@saptools/sqltoolsA command line that turns the HANA service binding of a Cloud Foundry app into a connection for the SQLTools extension in VS Code, written to the workspace's .vscode/settings.json.independent, btpSQLTools connection from a Cloud Foundry app's HANA bindingfrom BTP/BAIP
- zed-cds-extensionzed-cds-extensionCDS language support for the Zed editor, wiring the CDS language server into it.independent, capCDS language support for the Zed editorfrom CAP
- my-ide-actionsmy-ide-actionsA collection of eight ABAP Development Tools IDE Actions covering class creation, conversion of classic Open SQL to ABAP SQL, code snippets and RAP tooling.independent, abapCollection of ABAP Development Tools IDE Actionsfrom ABAP
Details
Sources
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
History in the atlas
- First seen.
For your agent
- Ref
artifact:abap-adt-api- JSON
- /artifacts/abap-adt-api.json
- MCP
- Connecting an agent