Agent access to ABAP code

There is no filesystem to read: the source lives in a system reachable by default through ADT resources, so this is a landscape and licensing question before it is a tooling one. Many MCP servers build towards ADT resources, but differ in where they run, how they connect and how they authenticate. SAP ships its own servers here, meant to be the default way in. The community ones are further along in features.

Overview

SAP SHIPS

SAP ships the ADT MCP Server, a setting in ABAP Development Tools for VS Code that turns the connection the IDE already holds into a local MCP endpoint on the developer's machine. SAP Joule for Developers, ABAP AI capabilities drives coding agents through it, and ADT resources are the REST APIs underneath.

Not covered: It stops where the system boundary does — an agent still needs credentials and a reachable system, which is a licensing and landscape question rather than a technical one.

SourceSAP Help — ABAP Cloudchecked
THE COMMUNITY ADDS

The community's MCP servers reach the same ADT resources from outside the IDE: as a local process or a central server, a few inside the system itself, over stdio or HTTP. Many sign in with more than a user and password, from OAuth and X.509 to principal propagation and BTP destinations, and most state that they write as well as read.

Policy1

PolicySAP API Policy 4.2026a§ 1.1, 1.2, 2.2.2AlwaysAn 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 →
SourceSAP API Policy v.4.2026achecked

Artifacts43

43 of 43 artifacts
ArtifactSignals
Apps2
ABAP AI CodeAgentic coding assistant in ABAP that runs as an SAP GUI report
Signals
none
Modernization Agents for SAP on AWSAWS agents for ABAP, PI/PO and BW modernisation work
Signals
Functional boundary
CLI tools1
abap-adt-cliCLI that pulls and pushes ABAP packages as local files over ADT
Signals
Functional boundary
Desktop apps1
HammerNative macOS code editor for ABAP and CDS
Signals
Functional boundary
IDE extensions3
ABAP remote filesystemVS Code extension editing ABAP systems over ADT as a filesystem
Signals
none
BellaEclipse plugin bringing Claude into ABAP Development Tools
Signals
none
VERTEXADT extension for Eclipse and VS Code showing three SAP GUI tools
Signals
none
MCP servers31
@abap2ui5/mcp-serverMCP server for the abap2UI5 check, deploy and run loop
Signals
Functional boundary
@mcp-abap-adt/coreABAP ADT MCP server published as an npm scope and plugin
Signals
Functional boundary
ABAP Accelerator MCP ServerAWS's ABAP MCP server for Amazon Q Developer and Kiro
Signals
Functional boundary
ABAPDocMCPMCP server turning a transport request into a WRICEF specification
Signals
No license
ABAPilotMCP connector for ECC and on-premise S/4HANA with a licensed SAP side
Signals
Commercial+1
abapsmithABAP MCP server over ADT with a local journal that can undo writes
Signals
Functional boundary
ADT MCP ServerLocal HTTP MCP server started from ABAP Development Tools for VS Code
Signals
Functional boundary
aibap.mcpGo MCP server that writes, activates and runs ABAP classes via ADT
Signals
Not reachable+2
arc-1MCP server over the ADT REST API for ABAP objects
Signals
Use terms
arc-1-bopf-enharc-1 extension for reading and maintaining BOPF enhancements
Signals
Functional boundary
arc-1-lspEdition of ARC-1 that runs ADT calls through adt-ls
Signals
Functional boundary
arc1-adt-abap-mcp-extEclipse add-on enabling the ADT MCP server with read-only tools
Signals
Functional boundary
bw-modeling-mcpMCP server for BW/4HANA modelling objects
Signals
Functional boundary
chandrashekhar-mahajan/abap-mcp-serverABAP MCP server with ADT tools and five authentication strategies
Signals
Functional boundary
dassian-adtFork of mcp-abap-abap-adt-api with 25 tools and session recovery
Signals
Functional boundary
EPOD ADT MCP ServerMCP server for ABAP on the ADT session, in Eclipse or standalone
Signals
Functional boundary
erpl-adtC++ binary speaking the ADT REST API as a CLI and MCP server
Signals
Functional boundary
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.
Signals
No license
fr0ster/mcp-abap-adtABAP MCP server with full CRUD on on-premise and ABAP Cloud
Signals
Functional boundary
KlystronMCP server in ABAP inside the application server, with agent skills
Signals
Commercial
Maherd18/sap-mcp-serverPolicy-checked MCP server for ABAP development over ADT
Signals
Functional boundary
mcp-abap-abap-adt-apiWrite-oriented MCP server over abap-adt-api
Signals
Functional boundary
mcp-abap-adtRead-oriented MCP server fetching ABAP programs, classes, tables
Signals
Functional boundary
pyrfc-mcpMCP server calling RFC-enabled function modules behind an allowlist
Signals
Functional boundary
SAP MCP Connection ManagerWindows desktop manager handing SAP connections to assistants over MCP
Signals
none
sap-ai-dev-toolkitMCP proxy pinning an agent's ABAP tools to one SAP system
Signals
none
sapdumpmcpMCP server reading ABAP short dumps over ADT
Signals
none
Skybuffer AI MCP serverABAP add-on serving business data and transactions as MCP tools
Signals
Commercial
vibing-steampunkADT-to-MCP bridge in Go reaching past what ADT exposes
Signals
Functional boundary
workskong/mcp-abap-adtLight MCP adapter for ABAP over ADT, documented in Korean
Signals
Functional boundary
ZARC1_EXTENSION_FORMSarc-1 extension for SAPscript and Smart Forms objects
Signals
Functional boundary
Packages3
ABAP Development Tools for VS CodeSAP's ABAP tools in VS Code for editing, debugging, ATC and transports
Signals
none
ABAP-AI-CODE-TOOLSabapGit package adding create, modify and delete tools to ABAP AI Code
Signals
none
arc1-abap-bridgeVS Code bridge between arc-1 and ADT for VS Code
Signals
Functional boundary
Services1
SAP Joule for Developers, ABAP AI capabilitiesSAP's AI for ABAP development in ADT for Eclipse and VS Code
Signals
none
Skills1
claude-sap-kitClaude Code plugin adding Custom_* tools to arc-1
Signals
Functional boundary

Tasks2Beta

Covers, under conditionsAssessed, not knownNot assessed
Generate a RAP business object by prompting an agent3 under conditions

A developer describes the travel application they want and an agent creates the RAP objects in the ABAP system, instead of printing source for the developer to paste into the editor.

Ends at objects created and activated in the system. Publishing the service binding, previewing the SAP Fiori elements app and writing the business logic that follows are separate steps, and the ABAP Flight Reference Scenario is assumed to be in the system already.

Covers, under conditionsABAP Development Tools for VS CodeHolds the logged-on ABAP project the server runs against and mounts the system as a virtual workspace filesystem, which is how the agent reads and edits the ABAP files it is generating around. The MCP tools and that filesystem are two halves of one session.

Conditions: A coding agent extension that supports Visual Studio Code's virtual workspace filesystem, which is what lets it call the MCP tools and open the ABAP files at all. SAP-samples names GitHub Copilot as the primary tested agent; what another agent does with the same filesystem is not stated there.

Remaining work: Adding the project, logging on and keeping the session open are the developer's, and they are the reason this answer exists on one machine rather than in a landscape.

Open artifact →

Covers, under conditionsADT MCP ServerPuts SAP's own ABAP RAP generators in front of the agent as MCP tools, so the objects come out of the generator rather than out of the model. The documented set names abap_generators-list_generators, abap_generators-get_schema and abap_generators-generate_objects, with abap_activate-objects to activate the result and abap_transport-create to open the transport it needs.

Conditions: ADT for VS Code is running with a destination active in the workspace; the server does not start without one. The system is one SAP names as currently supported: SAP BTP ABAP environment, SAP S/4HANA Cloud Public Edition or SAP S/4HANA Cloud Private 2025 Edition. SAP Joule for developers, ABAP AI capabilities is enabled on that system. SAP calls the server an experimental feature that is not intended for productive use, which is a decision about the system it is pointed at rather than about the tool.

Remaining work: The developer runs the agent from an editor session of their own and reviews what the generator produced. Nothing in this path runs headless or in a pipeline.

Open artifact →

Covers, under conditionsarc-1Creates, updates and deletes ABAP source and DDIC metadata with automatic lock and unlock, activates objects and manages CTS transports, under the caller's own SAP user. For RAP it scaffolds the behaviour pool, auto-creating lhc_* skeletons before signatures and stubs are injected, so an agent reaches this outcome by writing the behaviour definition, the projection and the service binding around that shell rather than by running a generator over the whole stack.

Conditions: A reachable ABAP system and credentials for it, since this is a proxy in front of ADT rather than a system. Writes are off by default, so the package the objects go into has to be allowed first.

Remaining work: The objects are written rather than generated from a schema, so their shape, their naming and their consistency with the reference scenario are the developer's to review.

Open artifact →

Let an agent change ABAP in an on-premise system6 under conditions, 1 not known

An agent reads and changes ABAP in a system the customer runs themselves, on the classic development model, and the change is activated there.

Ends at the change activated in the system. The network path to it, the Cloud Connector or the RFC route, and the authorisations the agent's user carries are landscape work this task assumes is already done.

Covers, under conditionsabapsmithWrites to the system over ADT with the mode ladder in front and a journal behind: read is the default and an absolute ceiling, edit allows write, activate and run, and every mutation is recorded as a before and after image before it is attempted, so it can be listed, shown and undone with the exact prior source restored, with drift against the live server detected and refused. The surface reaches the object types a classic system carries beyond source and DDIC — BOPF models, enhancement spots and BAdIs, classic dynpro screens, IMG customizing — and the ones ADT has no write endpoint for run by installing ABAP into a local $ABAPSMITH_FLUID_API package. Activation is check-only or armed, single or batched, with ATC and existing ABAP Unit tests runnable on the same connection.

Conditions: An ABAP system with ADT enabled and reachable over HTTP, under a user holding `S_DEVELOP`; a dedicated technical user is what the README suggests. `ABAP_MODE=edit` or `admin` before anything is written: `read` is the default and no other variable lifts it. A system that reports itself productive, or whose role the probe could not prove non-productive, is locked read-only with no override, so the target has to be a system whose client category answers the probe.

Remaining work: Deciding which packages, object names and transport requests the agent may write to, since those three allowlists pass by default and only the SAP-namespace check stands between an opted-in write and any package. Beyond that, the ladder governs the arguments the server passes, not the ABAP it executes: whatever abap_run, abap_test or an opted-in core.eval does runs under the connected technical user's own SAP authorisations.

Open artifact →

Covers, under conditionsarc-1Reaches an on-premise system through the Cloud Connector and forwards the caller's identity end to end with X.509 certificates, so the system sees a real SAP user and its authorisation checks still apply. On that connection it reads, writes and activates source and DDIC metadata and runs syntax check, ABAP Unit and ATC.

Conditions: A Cloud Connector between the server and the system, or an X.509 trust for per-user destinations. Writes are off by default: the shipped posture is read-only, with no free SQL, no table preview, no transport writes and no git writes until each is turned on with an explicit flag.

Remaining work: Deciding which packages the agent may write to, and which of the off-by-default reads to turn on, before any of this happens.

Open artifact →

Covers, under conditionsEPOD ADT MCP ServerOpens no connection of its own: the server runs inside Eclipse and reuses the ADT session of each connected ABAP project, so the agent acts under the developer's logon and the plugin stores and transmits no credentials. On that session it reads source, DDIC objects and short dumps, writes with one call that locks, writes, unlocks and activates, creates objects, opens and releases transport requests, and runs syntax check, ATC and ABAP Unit. Several projects can be connected at once and each tool call names its systemId, and access is per system: a connection starts in write, and Toggle Read-Only makes it refuse the 11 write tools and send no write request to SAP.

Conditions: Eclipse 2024-03 or later with SAP ADT installed on Java 21, and an ABAP project that is logged on: a tool returns `The destination with ID <name> is not registered.` when the project has no logon after an Eclipse restart. The README states the connection as the ADT SNC/SSO session of an Eclipse ABAP project and names no release, edition or system type, so what is reachable is whatever that Eclipse is already connected to. The server listens on 127.0.0.1 behind a bearer token and answers any request carrying an `Origin` header with HTTP 403, so the agent runs on the developer's machine.

Remaining work: Deciding which of the connected systems stays in write mode, since a new connection starts in write and the mode is stored per project. The session is a developer's Eclipse, so nothing on this path runs in a pipeline.

Open artifact →

Covers, under conditionsfr0ster/mcp-abap-adtNames on-premise ECC and SAP S/4HANA in its own supported list, and goes below every other entry on this door: legacy systems on a BASIS release under 7.50, where vibing-steampunk's floor sits. It states full create, read, update and delete on ABAP artifacts rather than a read-only posture, and documents two authentication routes it marks as on-premise only, client certificates over mTLS and Kerberos through SPNEGO.

Conditions: Client certificate and Kerberos authentication are documented as on-premise HTTP only, so the route that fits a classic system is not the one that fits a BTP one. A legacy system under BASIS 7.50 is served by a separate tool set rather than the full one, which the README lists on its own page.

Remaining work: Reading which tools the legacy set actually holds for the release in front of you, since the entry's reach below 7.50 is stated as a separate surface rather than the same one.

Open artifact →

Covers, under conditionsModernization Agents for SAP on AWSWorks on the whole custom code base rather than an object at a time: an agent prompted from Kiro converts ABAP out of an SAP ECC system into S/4HANA-compliant code in bulk, with unit tests generated and run either side of the conversion. The connection is to a development, sandbox or QA system, and converted code reaches production through transport and change management rather than from the agent. Two authentication models are documented, basic auth with one shared SAP service user and principal propagation carrying each caller's own SAP identity into SAP audit records.

Conditions: Registration with AWS: the public repository carries the README and the registration link, and the agents, deployment guides and documentation arrive only once registered. Kiro or another agentic IDE AWS lists as supported, which is where the agents are prompted, plus an AWS account the agents are deployed into. A supported SAP NetWeaver version and a network path between the AWS account and the SAP system.

Remaining work: Register first. The public repository names no tools and no object types, so what the agent reads, writes or activates in the system is not established by anything readable here, and each agent's own prerequisites are stated in its own repository.

Open artifact →

Covers, under conditionsvibing-steampunkStates any system with ADT switched on from 7.50 upwards, which reaches an ERP system no ABAP Cloud client answers for, and carries a second route for systems where the HTTP path is not available: classic RFC through the gateway port, with SADT_REST_RFC_ENDPOINT taking a whole HTTP request so an ADT resource is still reachable. What a given system actually offers varies by release, and vsp compat reports that per system rather than assuming it.

Conditions: ADT is enabled on the system. RAP needs SAP S/4HANA and AMDP needs SAP HANA, so part of the surface is absent on an ERP system. The RFC route needs the gateway port open instead of ICF, which is a different network decision rather than a fallback that needs no one's approval.

Remaining work: Reading vsp compat for the system in front of you before planning what the agent is allowed to attempt on it, and deciding whether a production system is one the agent may write to at all.

Open artifact →

Assessed, not knownADT MCP ServerSAP names SAP BTP ABAP environment, SAP S/4HANA Cloud Public Edition and SAP S/4HANA Cloud Private 2025 Edition as currently supported. Nothing retrieved here speaks about a classic on-premise system either way, and a list of supported systems is not a statement that the rest are refused.

Remaining work: Establishing this needs a source that addresses on-premise systems directly. Until there is one, a reader planning for such a system has the independent servers to look at and an open question about SAP's.

Open artifact →

Content22

Group by22 of 22 pieces
Piece, what it offers
AI-assisted SAP development with MCP
YouTube — SAP Developers playlists, Marian Zeis, Talk
ABAP + MCP: Let AI Do Real Development in Your SAP System
SAP Community, Willian_Saez, Blog
ABAP development tools for Visual Studio Code: Version 1.1 released
SAP Community, thomasalexander_ritter, Blog
Show 13 more
How to Connect Claude Code to ABAP with Zero-Config MCP
SAP Community, Nibedita, Blog
Using Claude for SAP ABAP development on RFC-only / SAProuter systems (even ECC R/3)
SAP Community, enrico_andreoli, Blog
The Future of ABAP is Here: VS Code ADT, Zero-Config MCP, and AI Co-pilots
SAP Community, lpodile, Blog
ARC-1 with Copilot Studio: SAP System Context Beyond Developers
blog.zeis.de — Marian Zeis, Marian Zeis, part 5 of 10, BlogThe reasoningA recipeRunnable code
New majors
Introducing ARC-1: A Secure ADT MCP Server for Enterprise SAP Development
blog.zeis.de — Marian Zeis, Marian Zeis, part 3 of 10, BlogThe reasoning
ABAP and Agentic AI: The Hidden Problem in Real Projects
blog.zeis.de — Marian Zeis, Marian Zeis, part 2 of 10, BlogThe reasoning
How I Use AI for Development and Why Context Matters
blog.zeis.de — Marian Zeis, Marian Zeis, part 1 of 10, BlogThe reasoning
Claude ported ABAP functions to new API
SAP Community, jakub_filak, Blog
Claude Code via MCP: Poor man's Joule, or a practical tool?
SAP Community, k1000, Blog
Building an Enterprise-Ready SAP AI Agent with Open Source
blog.zeis.de — Marian Zeis, Marian Zeis, BlogThe reasoningRunnable code
Patterns for using LLMs in ABAP development
Heliconia Labs, Lars Hvam, DocThe reasoningA reference
OData to outcomes—Build AI-enabled SAP Fiori apps using SAP Fiori elements
SAP TechEd — session catalogue, Stefan Engelhardt, TalkThe reasoning
Spec first: The disciplined way to develop ABAP with agents
SAP TechEd — session catalogue, Jon Friesen, TalkThe reasoning
AI-assisted SAP development with MCP
YouTube — SAP Developers playlists, Marian Zeis, Talk
ARC-1 with Copilot Studio: SAP System Context Beyond Developers
blog.zeis.de — Marian Zeis, Marian Zeis, part 5 of 10, BlogThe reasoningA recipeRunnable code
New majors
Introducing ARC-1: A Secure ADT MCP Server for Enterprise SAP Development
blog.zeis.de — Marian Zeis, Marian Zeis, part 3 of 10, BlogThe reasoning
Show 2 more
Patterns for using LLMs in ABAP development
Heliconia Labs, Lars Hvam, DocThe reasoningA reference
ARC-1 1.0: One Deployment, Multiple SAP Systems
blog.zeis.de — Marian Zeis, Marian Zeis, part 10 of 10, BlogThe reasoning
Using Claude for SAP ABAP development on RFC-only / SAProuter systems (even ECC R/3)
SAP Community, enrico_andreoli, Blog
Claude Code via MCP: Poor man's Joule, or a practical tool?
SAP Community, k1000, Blog
Building an Enterprise-Ready SAP AI Agent with Open Source
blog.zeis.de — Marian Zeis, Marian Zeis, BlogThe reasoningRunnable code
ABAP development tools for Visual Studio Code: Version 1.1 released
SAP Community, thomasalexander_ritter, Blog
The Future of ABAP is Here: VS Code ADT, Zero-Config MCP, and AI Co-pilots
SAP Community, lpodile, Blog
OData to outcomes—Build AI-enabled SAP Fiori apps using SAP Fiori elements
SAP TechEd — session catalogue, Stefan Engelhardt, TalkThe reasoning
Show 2 more
ABAP Development Tools for VS Code
YouTube — SAP Developers playlists, Uenal Akkaya, Talk
Agentic Loop with Joule for Developers and ADT MCP Server
YouTube — SAP Developers playlists, SAP Developers, Talk
The Future of ABAP is Here: VS Code ADT, Zero-Config MCP, and AI Co-pilots
SAP Community, lpodile, Blog
ABAP Development Tools for VS Code
YouTube — SAP Developers playlists, Uenal Akkaya, Talk
Agentic Loop with Joule for Developers and ADT MCP Server
YouTube — SAP Developers playlists, SAP Developers, Talk
Agentic Loop with Joule for Developers and ADT MCP Server
YouTube — SAP Developers playlists, SAP Developers, Talk
Joule for Developers with SAP BTP ABAP Environment-Setup Guide
SAP Community, YASHLAL, Blog
Strategy for agent-led development in ABAP
SAP TechEd — session catalogue, TalkThe reasoning
Agent-led custom code migration: From planning to mass adaptation
SAP TechEd — session catalogue, TalkThe reasoning

Seen working3

ArtifactSignals
Samples3
arc-1-extension-sampleSample arc-1 extension in TypeScript with ten custom tools
No license+1
local-llm-client-for-sap-consultants-librechatLibreChat fork with four SAP MCP servers preconfigured
none
teched2025-AD162TechEd 2025 workshop on a Fiori app with ABAP Cloud and Joule
none

Details

Coverage
statecore and community, ABAP
assessed
relationshipunassessed
also inCAP, UI5, BTP/BAIP
Comparison properties16

These are the questions used to compare what the artifacts do. Values come from their documentation and may apply to a particular ecosystem or runtime. Each recorded value in the comparison opens its statement and sources.

sourcesearchwhere-usedDDICCDStable datawritecreateactivatetransportsgitsyntaxATCABAP Unitrun codedumps
For your agent
Ref
capability:agent-code-access
JSON
/capabilities/agent-code-access.json
MCP
Connecting an agent