arc1-adt-abap-mcp-ext
One JAR in Eclipse's dropins that turns on SAP's own ADT MCP serverADT MCP ServerSAP's own ADT MCP server, and not a package: a preference inside ABAP Development Tools for VS Code that starts a local HTTP MCP server on a port you choose.sap official, abap and adds read-only repository tools beside it — so an AI client reads your system without leaving Eclipse.
SAP's ADT MCP ServerADT MCP ServerSAP's own ADT MCP server, and not a package: a preference inside ABAP Development Tools for VS Code that starts a local HTTP MCP server on a port you choose.sap official, abap is a preference inside the tooling rather than something you install, and this is the shortest path to using it: drop the JAR, enable the server, restart, point a client at http://localhost:2234/mcp. On top of what SAP exposes it contributes extra read-only tools — repository search, metadata, find-definition, system information — for Claude, Copilot, Cursor or any MCP client. From version 0.5.1 it builds on SAP's supported activation surface, which first shipped in ADT 3.60; earlier plugin versions reflectively woke a server that was then dormant.
Facts
Where it sits
Who is behind it
In the atlas: maintains 9@arc-mcpMarian ZeisMarian ZeisMaintains this
In the atlas: maintains 35, contributes to 86, wrote 25@marianfoomaintainers
Before choosing this
Conditions
PracticalFunctional boundary
It lives inside Eclipse and inherits everything that implies — the session is a developer's, not a pipeline's. And it is version-bound: ADT 3.60 or newer for 0.5.1, with 0.3.x the path for ADT 3.58 and 3.59.
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
- Runs as
- inside the IDE
- Transport
- HTTP
- Authentication
- API keyuser and password
- Tools
- 18
- Read-only
- yesstates it is
- Guardrails
3 quoted from README show all
The MCP server binds to
localhostonly (not reachable from the network).leave this off and prefer per-tool approval.
No telemetry, no outbound HTTP from this plugin.
For agent access to your code
- Read
- sourcesearchwhere-usedDDICCDStable data
- Change
- writecreateactivatetransportsgit
- Check
- syntaxATCABAP Unit
- Run
- run codedumps
Connections
Letting a coding agent read and act on your project or system
Local HTTP MCP server started from ABAP Development Tools for VS Code
Download
Architecture
Download
README
quoted from arc-mcp/arc1-adt-abap-mcp-ext under MIT, readarc1-adt-abap-mcp-ext
Use Claude, GitHub Copilot, Cursor, or any MCP-capable AI client to read your ABAP system — without leaving Eclipse.
Drop one JAR into your Eclipse dropins/, turn on SAP's built-in MCP server,
restart, point your AI client at http://localhost:2234/mcp — done. Your AI
can now search ABAP repositories, read source code, list transports, inspect
service bindings, and more.
Important
Requires ABAP Development Tools (ADT) 3.60 or newer. Version 0.5.1 builds on SAP's supported MCP server, which first shipped an activation surface in ADT 3.60. For ADT 3.58 / 3.59 use plugin version ≤ 0.3.x instead (those reflectively woke the then-dormant server).
What this actually does
As of ADT 3.60, SAP ships a supported MCP server inside Eclipse-for-ABAP. It's off by default and, on its own, only exposes SAP's own MCP tools. This plugin:
- Adds 18 read-only ABAP tools via SAP's documented Eclipse extension
point
com.sap.adt.mcp.core.adtMcpTools— search, read source, object metadata, where-used, package/object structure, syntax check, unit tests, ATC, transports, and authenticated HTTP escape hatches. - Logs you in automatically to your ABAP project (optional) so the AI can reach the backend on the first call.
You enable SAP's server once (a preference toggle + one eclipse.ini line);
this plugin's tools then register on it automatically every time it starts.
No reflection, no internal hacks — just a standard tool contribution.
Note
This is a community plugin, not an official SAP product. It uses only the documented extension point. SAP owns the server lifecycle (start/stop, port, token); this plugin only contributes tools.
Quick install (5 minutes)
What you need first
- Eclipse for ABAP with ADT 3.60+ (check via Help → Installation Details)
- JDK 21 — comes bundled with Eclipse-for-ABAP, no separate install needed
- An ABAP project that you can log into (this plugin connects through it)
Step 1: Download the plugin JAR
From the latest release,
grab com.arc1.mcp_0.5.1.jar.
Step 2: Drop it into Eclipse's dropins/ folder
| Platform | Path |
|---|---|
| macOS | ~/eclipse/java-2025-09/Eclipse.app/Contents/Eclipse/dropins/ |
| Linux | ~/eclipse/java-2025-09/eclipse/dropins/ |
| Windows | C:\eclipse\java-2025-09\eclipse\dropins\ |
If your Eclipse is somewhere else, look for the
dropins/folder next to your Eclipse executable (or one level up on macOS — inside the.app).
Step 3: Add one line to eclipse.ini
Find eclipse.ini (next to the Eclipse executable, or inside the macOS app
bundle at Contents/Eclipse/eclipse.ini). Add this line at the very bottom,
after the existing -vmargs block:
-DadtMcpServerPrefEnabled=true
This is SAP's flag that makes the MCP server auto-start on every boot. Without it, the server only runs while you keep the preference applied in the current session.
(Optional) if you want this plugin to auto-log-into a specific ABAP project, also add:
-Darc1.mcp.destination=YOUR_DESTINATION_ID
See how to find your destination ID below.
Step 4: Restart Eclipse with -clean
# macOS
pkill -f Eclipse
~/eclipse/java-2025-09/Eclipse.app/Contents/MacOS/eclipse -clean &
# Linux
pkill -f eclipse
~/eclipse/java-2025-09/eclipse/eclipse -clean &
Windows: close Eclipse normally, then run
eclipse.exe -cleanfrom a command prompt. The-cleanflag is only needed once per plugin update.
Step 5: Turn on the MCP server (SAP preference page)
In Eclipse: Preferences → ABAP Development → MCP Server.
- Tick Enable ADT MCP Server.
- Leave Token blank and click Generate (or type your own long string).
- Port defaults to
2234— change it only if that port is taken. - Click Apply. You should see "ADT MCP Server started successfully."
Copy the Token value — you'll paste it into your AI client in the next section. (SAP shows it right there on the page; this plugin does not write a token file.)
Step 6: Verify it started
Window → Show View → Error Log. You should see (from SAP and from us):
ADT MCP Server started successfully.
ARC-1 MCP extension: tool contributions registered. The ADT MCP server is started by SAP ...
ARC-1 MCP extension: Auto-login succeeded for destination: YOUR_DESTINATION_ID
If you see those, you're done with the plugin install. Now connect a client.
Connect your AI client
Use the port and token from the preference page (default port 2234).
Pick one client below:
GitHub Copilot (inside Eclipse or VS Code)
Preferences → GitHub Copilot → Model Context Protocol (MCP), paste:
{
"servers": {
"mcp-abap-server": {
"url": "http://localhost:2234/mcp",
"requestInit": {
"headers": {
"Authorization": "Bearer PASTE-TOKEN-FROM-PREFERENCE-PAGE"
}
}
}
}
}
Click Apply. Test it: open Copilot Chat, ask "use abap mcp server to search for ZARC1*".
Auto-approve the read-only tools (optional). Recent GitHub Copilot for Eclipse can pre-approve MCP tool calls so you aren't prompted on every call. In Preferences → GitHub Copilot → (MCP settings):
- MCP Server and Tool Approval (recommended) — expand the
abap-mcpserver and tick the individualarc1_sap_*tools you want pre-approved. Everyarc1_sap_*tool this plugin adds is read-only, so it's safe to auto-approve here. This works regardless of whether a tool advertises an annotation. - Trust MCP tool annotations — auto-approves tools that advertise a read-only
hint, without confirmation. Convenient, but it only covers tools that set the
hint, so the per-tool list above is the reliable way to cover the
arc1_sap_*tools. - Global Auto Approve → "Auto approve all tool calls" — approves everything
(terminal commands, file edits, all MCP tools) with no confirmation. SAP's
own MCP surface alongside these read tools includes mutating ones
(
abap_transport-create,abap_generators-generate_objects,abap_activate_objects), so leave this off and prefer per-tool approval.
Auto-approving read-only tools still lets the AI read your ABAP and send it to the model on its own initiative — the same data flow you opt into by using the server at all, just without the per-call prompt. It does not enable any writes.
Claude Code (CLI)
claude mcp add abap http://localhost:2234/mcp \
--header "Authorization: Bearer PASTE-TOKEN-FROM-PREFERENCE-PAGE" \
--transport http
Test it: claude and ask "list my ABAP destinations".
Cursor
Settings → MCP Servers → Add Server:
- Transport: HTTP
- URL:
http://localhost:2234/mcp - Headers:
Authorization: Bearer PASTE-TOKEN-FROM-PREFERENCE-PAGE
Claude Desktop
Claude Desktop only supports stdio MCP servers natively. Bridge it with mcp-remote:
{
"mcpServers": {
"abap": {
"command": "npx",
"args": [
"mcp-remote", "http://localhost:2234/mcp",
"--header", "Authorization: Bearer PASTE-TOKEN-FROM-PREFERENCE-PAGE"
]
}
}
}
How to find your destination ID
The destination ID is the internal name of your ABAP project's
connection. It's not the SID; it looks like A4H_001_marian_en_1
(<SID>_<client>_<user>_<lang>_<seq>).
Easiest: open ADT's Project Explorer. The name shown for your ABAP project is the destination ID. Copy it.
Other ways:
- Right-click ABAP project → Properties → ABAP Project
- Once the server is running, call
abap_list_destinations(SAP's built-in tool) from your AI client and read the IDs back
If you skip -Darc1.mcp.destination=... entirely, the plugin auto-picks the
first available ABAP project. Set it explicitly when you have multiple
projects.
Troubleshooting
The MCP server never starts
- Make sure you ticked Enable ADT MCP Server under Preferences → ABAP Development → MCP Server and clicked Apply.
- For auto-start on boot, confirm
-DadtMcpServerPrefEnabled=trueis ineclipse.ini(under-vmargs) and you restarted. Without that flag, the server does not come back after an Eclipse restart. - Port already taken by another process: change the port on the preference
page (e.g.
2235) and update the URL in your AI client config.
arc1_sap_* tools don't show up in tools/list (only SAP's tools do)
The plugin bundle didn't load. Check Help → About Eclipse → Installation
Details → Plug-ins for com.arc1.mcp. If it's missing:
- Confirm the JAR is in
dropins/(not a subfolder), then restart with-clean. - Confirm your ADT version is 3.60+ — this plugin refuses to load on older
ADT (the OSGi requirement is
[3.60.0,4.0.0)).
Tool calls return HTTP 401
The token your AI client sent doesn't match the one on the preference page.
Open Preferences → ABAP Development → MCP Server, copy the Token value,
and update the Authorization: Bearer ... header in your client config.
Restart your AI client after changing its config. If the header is missing
entirely, your client isn't sending Authorization at all — it must be named
exactly Authorization with a value starting Bearer (with a space).
arc1_sap_search returns "Unable to initialize the ADT Discovery"
You're not logged into the ABAP project yet. In Project Explorer,
expand your ABAP project — Eclipse will prompt for the password. Tick "Save
password" so future restarts log in silently. (Or set
-Darc1.mcp.destination=... so this plugin pre-logs-in for you.)
What you get — the tools
Plugin tools (18, all read-only)
Search + metadata (v0.1.0)
| Tool | What it does |
|---|---|
arc1_sap_search | Quick search by name pattern. Wildcards * +. |
arc1_sap_repository_search | Search with filters: object types, packages, users, release states. |
arc1_sap_object_info | Metadata for one URI: name, type, package, description. |
arc1_sap_find_definition | Go-to-definition for an identifier in source. |
arc1_sap_list_projects | Workspace ABAP projects with login state. |
arc1_sap_system_info | Installed software components (SAP_BASIS release etc.), servers, clients. |
arc1_sap_object_types | Workbench object type catalog with URI templates and capabilities. |
Source reading + HTTP (v0.2.0)
| Tool | What it does |
|---|---|
arc1_sap_read_source | Fetch ABAP source code for an object. CLAS includes supported. |
arc1_sap_http_get | Authenticated GET to any /sap/bc/adt/... endpoint (escape hatch). |
Transports + POST (v0.3.0)
| Tool | What it does |
|---|---|
arc1_sap_list_transports | List transports with username / status / type filters. |
arc1_sap_http_post | Authenticated POST to any /sap/bc/adt/... endpoint (escape hatch). |
Navigation + structure + quality (v0.5.0)
| Tool | What it does |
|---|---|
arc1_sap_where_used | Where-used / find references for an object (impact analysis). |
arc1_sap_package_contents | List the objects in a package (top-down exploration). |
arc1_sap_object_structure | Outline of an object: methods, attributes, events, includes. |
arc1_sap_list_inactive | List inactive (un-activated) objects on the system. |
arc1_sap_check_syntax | ABAP syntax check (no activation); can check proposed source transiently. |
arc1_sap_run_unit_tests | Run an object's ABAP Unit tests (executes them server-side). |
arc1_sap_atc_check | Run ABAP Test Cockpit static analysis and return findings. |
SAP's own MCP tools (alongside these)
When the server is running, SAP also contributes its own tools (the exact set depends on which ADT features are installed). On a typical S/4 ADT install that includes:
abap_list_destinations, abap_generators-list_generators,
abap_generators-get_schema, abap_generators-generate_objects,
abap_transport-get, abap_transport-create,
abap_business_services-fetch_services,
abap_business_services-fetch_service_information.
These are SAP's, not this plugin's — they ship and register on their own.
Verify everything works (full smoke test)
If you have the source checked out, pass the server URL + token from the preference page via environment variables:
git clone https://github.com/marianfoo/arc1-adt-abap-mcp-ext.git
cd arc1-adt-abap-mcp-ext
export ARC1_MCP_URL=http://localhost:2234/mcp # port from the preference page
export ARC1_MCP_TOKEN=PASTE-TOKEN-FROM-PREFERENCE-PAGE
./scripts/smoke-test.sh A4H_001_marian_en_1 # use your destination ID
This exercises all 18 plugin tools through the MCP protocol end-to-end and prints the responses.
Configuration reference
The MCP server's port, token, and on/off live in SAP's preference page
(Preferences → ABAP Development → MCP Server) and the eclipse.ini flag
-DadtMcpServerPrefEnabled=true. This plugin adds only two optional knobs,
set via JVM -D flags in eclipse.ini:
| Property | Default | Purpose |
|---|---|---|
arc1.mcp.destination | first ABAP project | Which destination to auto-login. |
arc1.mcp.autologin | true | Set false to skip auto-login. |
Build from source
git clone https://github.com/marianfoo/arc1-adt-abap-mcp-ext.git
cd arc1-adt-abap-mcp-ext
./build.sh # produces com.arc1.mcp_<version>.jar
INSTALL=yes ./build.sh # also copies to your local Eclipse dropins/
No Maven, no Tycho. build.sh uses the JDK and SAP ADT JARs (3.60+) from your
local Eclipse install (~/.p2/pool/plugins/). Build time: ~3 seconds.
How it works (deep dive)
- Architecture overview: docs/architecture.md
- Why each design decision: docs/decisions.md
- Underlying research (SAP bytecode analysis, ADT API maps): docs/research/
- Implementation plans (one per release): docs/plans/
TL;DR: SAP designed the MCP server to be extended via the standard Eclipse
extension point com.sap.adt.mcp.core.adtMcpTools. This plugin contributes
18 <mcpTool class="..."/> entries, which SAP's own ToolRegistrationService
picks up whenever the server starts. SAP owns activation (the preference page
-DadtMcpServerPrefEnabled=true); this plugin never touches the server lifecycle.
FAQ
Is this an official SAP product?
No. It's a community plugin. See the note at the top.
Why do I need ADT 3.60?
ADT 3.60 is the first release where SAP shipped a way to turn the MCP server on
(a preference page + startup flag) and a stable startMCPServer signature.
Earlier releases (3.58/3.59) had the server but no activation surface — plugin
versions ≤ 0.3.x handled those by reflectively waking it. 0.4.0 drops that and
relies on SAP's supported activation, so it's 3.60+ only.
Does this read or modify my source code?
The 18 tools this plugin adds are read-only with respect to your repository —
none create, change, or delete source. Two execute code on the backend without
changing it: arc1_sap_run_unit_tests runs an object's ABAP Unit tests and
arc1_sap_atc_check runs ATC static analysis (the same as the corresponding ADT
menu actions). arc1_sap_check_syntax can validate proposed source transiently
without saving it. SAP's own MCP tools may include genuinely mutating workflows
(abap_generators-generate_objects, abap_transport-create). All of these use
your normal SAP authorizations — same as the equivalent ADT UI action.
What about credentials / security?
- The MCP server binds to
localhostonly (not reachable from the network). - Every request requires the bearer token set on SAP's preference page.
- SAP backend calls use your existing ABAP-project authentication (cookies / SSO / saved password).
- No telemetry, no outbound HTTP from this plugin.
How do I add my own tool?
Implement com.sap.adt.mcp.core.IAdtMCPTool in your own bundle and contribute
via plugin.xml. See CONTRIBUTING.md for the recipe.
What's the relationship to ARC-1?
ARC-1 is the standalone TypeScript MCP server for SAP ABAP — runs outside Eclipse, has admin policy ceiling, audit logging, multi-client governance, BTP-native deployment. Use ARC-1 when you want a centralized managed service. Use this plugin when you want "one developer, inside Eclipse, zero extra processes".
What about adt-ls? Can this plugin use it?
adt-ls is a TypeScript/Node SDK
that spawns and drives SAP's headless adt-ls language server over LSP + MCP.
It's the out-of-Eclipse cousin of this plugin: a programmatic API for
repository, source, activate, unit tests, ATC, syntax check, and
transports — great for scripting and CI.
This plugin does not depend on it, by design. We already run inside
Eclipse-for-ABAP, which is the full ADT — pulling in adt-ls would spawn a
second, headless ADT (Java → Node → another JVM) to reach a backend we already
reach in-process, and would add a third-party runtime plus an extra process
(both ruled out — see decision D10).
Pick by where you run:
| You want… | Use |
|---|---|
| MCP tools inside Eclipse, zero extra processes | this plugin |
| Headless / CI / scripting ABAP automation from Node | adt-ls |
| Centralized, audited, multi-user MCP (BTP) | ARC-1 |
Where do I report bugs?
GitHub Issues.
Include your Eclipse + ADT versions, plugin version (the JAR filename), and
the relevant excerpt from the Error Log (filter by com.arc1.mcp).
License
MIT — use it, modify it, ship it.
History
Fixes 1, Docs 2, Other 2
Notes
Fix surfaced by a live smoke-test on a 2023-era ABAP system (A4H_2023).
Fixed
arc1_sap_list_transportsnow works on newer ABAP systems that only serve the transport-organizer tree representation and answer the old flat media type with HTTP 406. The tool offers bothapplication/vnd.sap.adt.transportorganizertree.v1+xmland the legacyapplication/vnd.sap.adt.transportorganizer.v1+xml, letting the server negotiate. Theparse=trueextractor was rewritten to match<tm:request>opening tags (truncation-tolerant — the tree response can exceed AdtHttp's 256 KB cap) with exact local-name attribute matching, and now also returns each request'starget.
Known issues
arc1_sap_find_definitionreturnsNavigationFailureException: I::000. Root cause (confirmed live): ADT's/sap/bc/adt/navigation/targetis POST-only (GET → 405) and position-based — it needs a cursor position in the source — but the tool passes only an identifier name with no position. The fix is a redesign (read source → locate the identifier's offset → navigate from that position), tracked for a follow-up.
Publishing
- Added
scripts/publish-release.shto automate the maintainer release path: build from the local Eclipse/ADT bundles, create and push the matching tag, wait for the GitHub Release workflow, and upload the JAR asset.
Documentation
- Updated the README download/version references from
0.5.0to0.5.1. - Document the relationship to
adt-ls(the TypeScript SDK over SAP's headless ABAP language server) and record why this plugin does not consume it as a dependency: decision D10 indocs/decisions.md, a "What aboutadt-ls?" FAQ entry plus a pick-by-where- you-run table inREADME.md, a Non-goals pointer inCLAUDE.md, and a note indocs/architecture.md. No code changes.
Features 8, Changed 2, Docs 1, Other 3
Notes
Adds seven read-only navigation / structure / quality tools (11 → 18) on top of SAP's MCP server, plus a JDK-only
Xmlparsing helper that backs them. No new third-party dependencies; no server-lifecycle changes.Added
arc1_sap_where_used— where-used / find references (impact analysis) viarepository/informationsystem/usageReferences.arc1_sap_package_contents— list a package's objects viarepository/nodestructure.arc1_sap_object_structure— object outline (methods/attributes/events/ includes) via…/objectstructure.arc1_sap_list_inactive— inactive (un-activated) objects viaactivation/inactiveobjects.arc1_sap_check_syntax— syntax check without activation viacheckruns; an optional inlinesourcechecks proposed code transiently (nothing written).arc1_sap_run_unit_tests— run an object's ABAP Unit tests viaabapunit/testruns(executes tests server-side; no repository change).arc1_sap_atc_check— ABAP Test Cockpit static analysis via theatc/worklists+atc/runsflow (system-default check variant when none given).Xmlhelper — minimaljavax.xmlDOM reader (by local name, namespace- agnostic) so XML-returning tools emit structured JSON. JDK-only, so D8 (no third-party deps) still holds.
Changed
META-INF/MANIFEST.MF:Bundle-Version0.4.0 → 0.5.0; addImport-Packageforjavax.xml,javax.xml.parsers,org.w3c.dom,org.xml.sax(used by the newXmlhelper).AdtHttpJavadoc reworded (GET+POST are current; dropped the "POST comes in v0.3" note).
Documentation
- README: document GitHub Copilot for Eclipse's MCP auto-approve options
(per-tool "MCP Server and Tool Approval", "Trust MCP tool annotations", and the
"Global Auto Approve" warning) — all
arc1_sap_*tools are read-only and safe to pre-approve per-tool; bumped the download/version references to 0.5.0.
Notes
- All seven tools are read-only with respect to the repository.
run_unit_testsandatc_checkexecute checks/tests on the backend (same as the corresponding ADT menu actions) — their descriptions state this. - Each REST tool degrades gracefully: it guards the 256 KB body cap, returns a
best-effort structured parse, and includes
rawXmlwhen parsing is empty — so it stays useful even where a backend's exact XML layout differs by release. arc1_sap_find_occurrences(the Java-API local-occurrences tool from plan 02) is intentionally deferred: its SAP factory-instantiation path is unverified and it shares the compile unit with these tools. Tracked indocs/plans/07-v0.5-read-tools-expansion.md.
Removed 3, Changed 4, Other 1
Notes
Requires ADT 3.60+. ADT 3.60 ships SAP's MCP server as a supported feature with its own activation surface (a Preferences → ABAP Development → MCP Server page plus the
-DadtMcpServerPrefEnabled=truestartup flag). This release drops the reflective server-kickstart that earlier versions used to wake the dormant 3.58/3.59 server, and turns the plugin into a pure tool-provider: its<mcpTool>contributions register on SAP's server automatically, with no reflection into SAP internals.Changed
Arc1Startupno longer starts the MCP server. It only logs guidance and (optionally) pre-warms the destination logon. All reflection intocom.sap.adt.mcp.core.internal.AdtMCPCorePlugin(startMCPServer,peekRunningPort) is removed.META-INF/MANIFEST.MF: SAP bundle requirements bumped from[3.58.0,4.0.0)to[3.60.0,4.0.0). The plugin now refuses to load on ADT < 3.60 (where the supported activation does not exist) rather than failing at runtime.- Server lifecycle is now SAP's: port, token, and on/off live on SAP's preference page. Default port is 2234 (SAP's default), not 54322.
scripts/smoke-test.shnow reads the endpoint + token fromARC1_MCP_URL/ARC1_MCP_TOKENenv vars instead of~/.config/arc1/mcp-token.txt.
Removed
- The reflective kickstart of
AdtMCPCorePlugin.startMCPServer(...)(rationale: superseded by SAP's 3.60 activation — seedocs/decisions.mdD9, which supersedes D3). - Writing
~/.config/arc1/mcp-token.txt— the token is shown on SAP's preference page; the plugin no longer manages tokens. - Configuration knobs that controlled the server:
arc1.mcp.token,arc1.mcp.port,arc1.mcp.kickstart. Onlyarc1.mcp.destinationandarc1.mcp.autologinremain.
Compatibility
- Tools are unchanged and source-compatible:
IAdtMCPTool.execute(String)is still honored on 3.60 (SAP'sexecute(String, IProgressMonitor)default delegates to it). TheadtMcpToolsextension point and tool-name validation (^[A-Za-z0-9_-]+$) are byte-identical to 3.58.
Features 3, Other 2
Notes
Extends the HTTP foundation from v0.2 with POST support and ships one typed endpoint wrapper on top.
Added
AdtHttp.post(...)— POST counterpart toAdtHttp.get(...), accepts a body and Content-Type. Usescom.sap.adt.communication.message.ByteArrayMessageBody.arc1_sap_http_post— generic POST escape hatch. UTF-8 string body.arc1_sap_list_transports— list ABAP transport requests via/sap/bc/adt/cts/transportrequestswith filters (username, status, requestType). Optionalparse=truereturns a minimal structured list.
Deferred to v0.4
arc1_sap_where_used— endpoint URI is verified but XML request body shape needs an Eclipse HTTP trace to confirm.arc1_sap_object_structure— URI literal not cleanly extractable from bytecode; also needs trace capture.
Features 3, Dependencies 1
Notes
Adds an HTTP foundation that bypasses Eclipse's workspace-
IFilemodel and unblocks any future tool that maps to an ADT REST endpoint.Added
AdtHttpinternal helper: thin facade overAdtSystemSessionFactory/AdtRequestFactory/HeadersFactoryfor stateless GET-style calls. Caps response bodies at 256 KB.arc1_sap_http_get— generic ADT GET escape hatch. Authenticated by Eclipse's destination machinery. Use for any endpoint without a typed wrapper yet.arc1_sap_read_source— fetch source code for an ABAP object URI (or source URI directly). For CLAS, supports include segments (definitions / implementations / testclasses / macros).
Dependencies
Require-Bundlenow includescom.sap.adt.communication;[3.58.0,4.0.0).
Features 6
Notes
Initial release. Wakes the dormant SAP ADT MCP server in Eclipse 2025-09 / ADT 3.58 and contributes 7 read-only tools via the
com.sap.adt.mcp.core.adtMcpToolsextension point.Added
Arc1Startup(IStartup) that reflectively callsAdtMCPCorePlugin.startMCPServeron workbench startup, with forward-compat detection if SAP later enables it natively.Arc1AutoLoginbackground Job that callsIAdtLogonService.ensureLoggedOnon the configured or first-available ABAP project, populating the destination registry.- Tools:
arc1_sap_search— quick repository search (RIS)arc1_sap_repository_search— parameterized search with type/package/user filtersarc1_sap_object_info— object metadata viaIAdtRisVfsObjectPropertiesServicearc1_sap_find_definition— go-to-definition viaIAbapNavigationServicesarc1_sap_list_projects— workspace ABAP projects with login statearc1_sap_system_info— software components, servers, status, clientsarc1_sap_object_types— workbench type registry catalog
- Configuration via JVM system properties in
eclipse.ini. - Token file at
~/.config/arc1/mcp-token.txtfor client config convenience. - Smoke test script.
Others providing
Compare all 48 on the Agent access to your code page →- @abap2ui5/mcp-server@abap2ui5/mcp-serverAn MCP server that puts the abap2UI5 development loop on the machine an agent runs on: check the view the ABAP builds, photograph it, deploy the class into a sandbox, boot the app headless and read the errors.community org, abapMCP server for the abap2UI5 check, deploy and run loopfrom ABAP
- arc-1-bopf-enharc-1-bopf-enhAn extension of four tools for arc-1, with an ABAP service behind it, that lets an agent read and maintain classic BOPF enhancements of SAP standard business objects.independent, abaparc-1 extension for reading and maintaining BOPF enhancementsfrom 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
- arc-1-lsparc-1-lspAn edition of ARC-1 that hands every ADT interaction to SAP's own embedded adt-ls language server instead of a hand-rolled HTTP client.independent, abapEdition of ARC-1 that runs ADT calls through adt-lsfrom ABAP
- arc-1arc-1An MCP server in front of the ADT REST API that runs locally and on Cloud Foundry with twelve tools that read, search, write, activate, lint and transport ABAP objects.independent, abapMCP server over the ADT REST API for ABAP objectsfrom ABAP
- arc1-abap-bridgearc1-abap-bridgeA VS Code extension between arc-1 and ABAP Development Tools for VS Code, so GitHub Copilot can open an ABAP object by name, diff the inactive version and ask the system whether an edit would be accepted.independent, abapVS Code bridge between arc-1 and ADT for VS Codefrom ABAP
- capforgecapforgeAn MCP server that scaffolds CAP and CDS for a coding agent and then holds it to cds compile — the agent does not stop until the generated code builds clean.independent, capMCP server scaffolding CAP and CDS checked by cds compilefrom CAP
- ABAP Accelerator MCP ServerABAP Accelerator MCP ServerAWS's ABAP MCP server for Amazon Q Developer and Kiro, deployable locally, in Docker or centrally on ECS Fargate with OAuth principal propagation; its repository is no longer maintained.partner, abapAWS's ABAP MCP server for Amazon Q Developer and Kirofrom ABAP
- Modernization Agents for SAP on AWSModernization Agents for SAP on AWSAWS's suite of agents for SAP modernisation work: custom ABAP converted for S/4HANA, PI/PO interfaces moved to Integration Suite, BW objects moved to SAP Datasphere, deployed into a customer's own AWS account and reached only after registration.partner, abapAWS agents for ABAP, PI/PO and BW modernisation workfrom ABAP
- @mcp-abap-adt/core@mcp-abap-adt/coreA descendant of the Andreschak and fr0ster servers rebuilt on its own architecture, published as an npm scope and a Claude Code plugin, with Korean and Japanese documentation beside the English.independent, abapABAP ADT MCP server published as an npm scope and pluginfrom ABAP
- @cap-js/mcp-server@cap-js/mcp-serverSAP's MCP server for CAP development, run as cds-mcp: search_model searches the project's compiled CDS model, search_docs searches the CAP documentation indexed as embeddings on the developer's own machine.sap official, capMCP server for CAP development: model and docs searchfrom CAP
- chandrashekhar-mahajan/abap-mcp-serverchandrashekhar-mahajan/abap-mcp-serverFifteen ADT tools behind five pluggable authentication strategies — Kerberos/SPNEGO, OAuth 2.0, X.509, browser SSO and basic — for systems where basic auth is not an option.independent, abapABAP MCP server with ADT tools and five authentication strategiesfrom ABAP
- dassian-adtdassian-adtA fork of mcp-abap-abap-adt-api hardened for use: 25 tools, input validation, error intelligence, MCP elicitation, session recovery and a test suite.independent, abapFork of mcp-abap-abap-adt-api with 25 tools and session recoveryfrom ABAP
- erpl-adterpl-adtOne 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.independent, abapC++ binary speaking the ADT REST API as a CLI and MCP serverfrom ABAP
- bw-modeling-mcpbw-modeling-mcpReads, creates and modifies BW/4HANA modelling objects through the same internal APIs Eclipse BWMT and the BW/4HANA Cockpit use — and can run centrally on BTP with each caller reaching BW as themselves.independent, btpMCP server for BW/4HANA modelling objectsfrom BTP/BAIP
- EPOD ADT MCP ServerEPOD ADT MCP ServerAn MCP server for ABAP that runs inside ABAP Development Tools for Eclipse on the ADT session of each connected project, with a standalone mode that runs with no IDE open.independent, abapMCP server for ABAP on the ADT session, in Eclipse or standalonefrom ABAP
- ZARC1_EXTENSION_FORMSZARC1_EXTENSION_FORMSAn extension of four tools for arc-1, with an ABAP backend behind it, that reaches the classic form objects ADT has no API for: SAPscript layout sets, Smart Styles and the TADIR record of a Smart Form.independent, abaparc-1 extension for SAPscript and Smart Forms objectsfrom ABAP
- fgalastri/MCP_ABAPfgalastri/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.independent, 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.from ABAP
- fr0ster/mcp-abap-adtfr0ster/mcp-abap-adtFull CRUD across on-premise and ABAP Cloud systems, with five authentication methods and three transports: a library under Apache-2.0 and a standalone server under AGPL-3.0-only.independent, abapABAP MCP server with full CRUD on on-premise and ABAP Cloudfrom ABAP
- abapsmithabapsmithAn MCP server that lets an LLM develop in ABAP on a live system over ADT, with writes off by default and every mutation recorded in a local journal that can undo it.independent, abapABAP MCP server over ADT with a local journal that can undo writesfrom ABAP
- sap-ai-dev-toolkitsap-ai-dev-toolkitAn MCP proxy that pins an agent's ABAP tools to one SAP system: setup reads the BAS destinations or the local SAP GUI landscape and writes one stdio server per system, leaving the credentials in the destination or in the editor's own login prompts.independent, abapMCP proxy pinning an agent's ABAP tools to one SAP systemfrom ABAP
- aibap.mcpaibap.mcpA Go server that closes the loop: after create, write and activate it can run the class it just wrote through ADT's classrun and hand the console output back.independent, abapGo MCP server that writes, activates and runs ABAP classes via ADTfrom 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
- Maherd18/sap-mcp-serverMaherd18/sap-mcp-serverAn MCP server for ABAP development over the ADT resources: eight tools, each checked against a JSON policy file before the call reaches the system, with activation and transport release held for a person to approve.independent, abapPolicy-checked MCP server for ABAP development over ADTfrom ABAP
- sapdumpmcpsapdumpmcpAn MCP server for SAP dumps: it connects to an ABAP system over the ADT resources and lets an MCP client ask a dump for its description and call stack.independent, abapMCP server reading ABAP short dumps over ADTfrom 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
- mcp-abap-abap-adt-apimcp-abap-abap-adt-apiThe write half of the same pair: a thin wrapper over Marcello Urbani's abap-adt-api, exposing lock, edit, activate, transport and syntax check for a full development loop.independent, abapWrite-oriented MCP server over abap-adt-apifrom ABAP
- mcp-abap-adtmcp-abap-adtThe read-oriented half of a pair of ABAP MCP servers: high-level tools such as GetProgram, GetClass and GetTable that fetch from a system, aimed at understanding it rather than changing it.independent, abapRead-oriented MCP server fetching ABAP programs, classes, tablesfrom ABAP
- SAP MCP Connection ManagerSAP MCP Connection ManagerA Windows desktop manager that holds SAP connections and hands them to Claude Desktop or Codex through a local MCP server, each connection carrying a policy that decides what the assistant may change and what data it may read.independent, abapWindows desktop manager handing SAP connections to assistants over MCPfrom ABAP
- ABAPilotABAPilotAn MIT-licensed MCP connector for ECC and on-premise S/4HANA that reads ABAP source and dictionary context, whose SAP-side half is a licensed product you install in the system.independent, abapMCP connector for ECC and on-premise S/4HANA with a licensed SAP sidefrom ABAP
- vibing-steampunkvibing-steampunkAn ADT-to-MCP bridge in Go that reaches past what ADT exposes — cluster tables decoded, spool and job logs read as tables, the IMG searched, selection texts written back.independent, abapADT-to-MCP bridge in Go reaching past what ADT exposesfrom ABAP
- ADT MCP ServerADT MCP ServerSAP's own ADT MCP server, and not a package: a preference inside ABAP Development Tools for VS Code that starts a local HTTP MCP server on a port you choose.sap official, abapLocal HTTP MCP server started from ABAP Development Tools for VS Codefrom 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 Joule for Developers, ABAP AI capabilitiesSAP Joule for Developers, ABAP AI capabilitiesSAP's AI for ABAP development in ADT for Eclipse and VS Code: chat, code completion, explain, test and CDS generation, RAP logic prediction, and since June 2026 an agentic mode over the ADT MCP Server, metered in AI units through the ABAP AI Hub Service on BTP.sap official, abapSAP's AI for ABAP development in ADT for Eclipse and VS Codefrom ABAP
- @sap/mdk-mcp-server@sap/mdk-mcp-serverFive tools for Mobile Development Kit work: create a project, generate pages and rules into it, drive the build and deploy, read the documentation, and pull OData metadata from Mobile Services.sap official, btpMCP server with five tools for Mobile Development Kit workfrom BTP/BAIP
- @sap-ux/fiori-mcp-server@sap-ux/fiori-mcp-serverSAP's Fiori MCP server, run as fiori-mcp, letting a coding assistant create and edit Fiori applications directly rather than describing the steps.sap official, ui5MCP server for creating and editing Fiori applicationsfrom UI5
- ABAPDocMCPABAPDocMCPTurns a transport request into a WRICEF technical specification: reads the transport's objects and source over ADT and writes a structured Markdown document with an object-relationship diagram.independent, abapMCP server turning a transport request into a WRICEF specificationfrom ABAP
- claude-sap-kitclaude-sap-kitA Claude Code plugin of three skills that extends arc-1 with five Custom_* tools for an on-premise ABAP system: running a report and reading its ALV as JSON, previewing a NAST message as PDF, and reading, writing and replacing SmartForms as XML.independent, abapClaude Code plugin adding Custom_* tools to arc-1from ABAP
- Skybuffer AI MCP serverSkybuffer AI MCP serverAn ABAP add-on that serves SAP business data, transactions and development context as MCP tools from an ICF node inside SAP ECC and S/4HANA, each call running as the signed-in user under PFCG authorization checks.independent, abapABAP add-on serving business data and transactions as MCP toolsfrom ABAP
- @ui5/mcp-server@ui5/mcp-serverSAP's MCP server for UI5 development: ten tools that scaffold an app or a card, read the project in front of the agent, and run the linter and the manifest validator against it.sap official, ui5MCP server for UI5 development with ten toolsfrom UI5
- abap-adt-cliabap-adt-cliPulls an ABAP package to local files over the ADT REST API in parallel, and pushes edited objects back under a transport — bulk sync rather than one object at a time in SE80 or Eclipse.independent, abapCLI that pulls and pushes ABAP packages as local files over ADTfrom ABAP
- workskong/mcp-abap-adtworkskong/mcp-abap-adtA deliberately light MCP adapter over ABAP ADT for object search, source, DDIC metadata, a data preview and runtime diagnostics, read-only in practice and documented in Korean.independent, abapLight MCP adapter for ABAP over ADT, documented in Koreanfrom ABAP
- KlystronKlystronAn MCP server written in ABAP that runs inside the application server behind an ICF service and exposes typed tools for ABAP development, quality, transports, customizing, roles, Basis operations and integration, with a client-side plugin of SAP skills.independent, abapMCP server in ABAP inside the application server, with agent skillsfrom ABAP
- pyrfc-mcppyrfc-mcpAn MCP server for calling an SAP system's RFC-enabled function modules from an agent, built so that discovering a function does not authorise calling it: a read or a write is denied unless the function name matches an allowlist the server is configured with.independent, abapMCP server calling RFC-enabled function modules behind an allowlistfrom ABAP
- ABAP-AI-CODE-TOOLSABAP-AI-CODE-TOOLSAn optional abapGit package that adds create, modify and delete tools to ABAP AI Code, for ABAP programs and classes, with each diff block approved before it is saved.independent, abapabapGit package adding create, modify and delete tools to ABAP AI Codefrom ABAP
- ABAP AI CodeABAP AI CodeAn agentic coding assistant written in ABAP that runs as a SAP GUI report and reads, explains and reviews repository objects inside the system, running an LLM's tool calls as ABAP.independent, abapAgentic coding assistant in ABAP that runs as an SAP GUI reportfrom ABAP
- VERTEXVERTEXAn extension for ABAP Development Tools for Eclipse and VS Code that shows Simple Data Explorer, AVE and ACE in the editor over the developer's ADT connection.independent, abapADT extension for Eclipse and VS Code showing three SAP GUI toolsfrom 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
- corrected against the README
- 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.
- First seen.
For your agent
- Ref
artifact:arc-mcp-arc1-adt-ext- JSON
- /artifacts/arc-mcp-arc1-adt-ext.json
- MCP
- Connecting an agent