ABAP has an official MCP server now. What to expose, and what to keep read-only
TL;DR
- ABAP went from community ADT bridges to an official MCP server in about 18 months.
- SAP's server exposes 13 tools. Seven only read or test; six change the system.
- Turn on the sensors (syntax, ATC, unit tests) first. Keep transports away from the agent.
What happened
- Jan 2025: the community project mcp-abap-adt connects Claude and Cline to ABAP over ADT, read-only.
- Nov 2025: at TechEd, SAP announces an ABAP MCP server and ABAP agents.
- Jan 2026: AWS releases ABAP Accelerator, a free MCP server with ATC checks, unit-test generation, RAP generation and ECC-to-S/4 conversion.
- Jun 2026: ADT for VS Code lands on the Marketplace with a built-in ADT MCP server. It is disabled by default, and SAP suggests an
AGENTS.mdfor ABAP rules.
What the SAP server exposes
From SAP's own tutorial, grouped by what they can do to a system:
| Reads or tests | Changes the system |
|---|---|
abap_list_destinations |
abap_creation-create_object |
abap_creation-get_all_createable_objects |
abap_generators-generate_objects |
abap_creation-get_object_type_details |
abap_activate_objects |
abap_generators-list_generators |
abap_atc_apply_ai |
abap_atc_run |
abap_atc_execute_deterministic_quickfixes |
abap_run_unit_tests |
abap_transport-create |
abap_transport-get |
The same tutorial still calls the server experimental and "not intended for productive use." Treat it that way.
Take this: a four-tier policy
| Tier | Tools | Where | Who approves |
|---|---|---|---|
| 0. Sensors | list, details, transport lookup, ATC run, unit tests | Any dev system | Nobody |
| 1. Local changes | create, generate, activate in $TMP or a sandbox package |
Personal sandbox | Nobody |
| 2. Shared changes | the same tools on transportable objects, ATC fixes | Shared dev system | A person, per change |
| 3. Transports | create (release is not exposed today, keep it that way) | Anywhere | A person, never the agent |
And a starting AGENTS.md:
# ABAP rules for agents
- Work only in package Z_AGENT_SANDBOX unless a person names another one.
- After every change: syntax check, activate, run ABAP Unit, run ATC.
Paste the results as returned. Do not summarise them.
- Use released APIs (ABAP Cloud). Flag any classic API you touch.
- Never create or release a transport. Ask.
Why the sensors come first
A January 2026 benchmark of LLMs on ABAP (180 tasks) found strong models reach about 75% success only after several rounds of compiler feedback. The loop matters more than the first draft. Syntax check, ATC and ABAP Unit are that loop, and they cannot damage anything.
My take
Calling ADT is no longer the hard part. The hard part is what the agent knows before it edits: who calls this class, which tables it writes, which BAdI implementations sit on top of it. None of SAP's 13 tools answers a where-used question. That is why the MCP server I built for our developers includes where-used, dependency and navigation tools, and why I'm now building a graph of the whole custom codebase for impact analysis. Context first, then write access, one tier at a time.
Links
- Enable the ADT MCP Server in ADT for VS Code (SAP tutorial)
- ADT for VS Code on the Marketplace (SAP Community)
- ABAP Accelerator (AWS)
- Benchmarking LLMs for ABAP code generation (arXiv)
- mcp-abap-adt (GitHub)