Maherd18/sap-mcp-server
An MCP server for ABAP development over 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: 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.
Eight tools sit over 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: sap_test_connection, sap_search_objects, sap_read_metadata, sap_read_source and sap_list_transports read, and sap_write_source, sap_activate and sap_release_transport change. Every one of them is checked against a JSON policy file first, which carries allow-lists for packages, namespaces and ADT object types, a writeEnabled switch that turns the whole server read-only, approval for activation and transport release, and a rule that keeps a developer off their own transport; anything not explicitly allowed is denied, an object the server cannot resolve included, and an object's real type, package and owner are read out of SAP rather than taken from the agent's arguments. A denied call comes back with the rule that denied it, from package_not_allowed to self_approval, and every decision and result is appended to a JSON Lines audit log that keeps decision and effective apart, so a policy can run in dry-run and be watched before it is enforced. It is plain Node.js with no dependencies, which the README says is on purpose for something that has write access to a development system, and runs from DockerDockerA container engine that packages software with the tools it needs and runs it isolated from the host. Things here that ship as an image need it installed, so the reader installs the engine rather than each of the command line tools inside the container., npx or a checkout, speaks stdio only, and reaches the system with basic credentials taken from the environment. Where SuperClaude for SAPSuperClaude for SAPA Claude Code plugin that installs and wires its own ABAP MCP server, then puts a two-layer write guard between the agent and any system profile marked QA or production.independent, abap governs which system an agent is pointed at, the boundary here is drawn inside one system and around a package: the shipped policy allows writes in ZMCP_SANDBOX and nowhere else, and a setup script creates that package.
Facts
Where it sits
Who is behind it
In the atlas: maintains 1, contributes to 1@Maherd18maintainer
Before choosing this
Conditions
PracticalFunctional boundary
Development and sandbox systems only: the README warns against pointing it at production. Transport release is never executed, since the tool exists to show the policy stopping it, and separation of duties is checked against the identity.approvers list in the policy file rather than against SAP authorisations, so it holds as far as that file does and no further. The write path has been tested with ABAP classes and other object types may need adjustments, there is deliberately no tool that creates or deletes an object, and one server instance serves one SAP system.
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
- Runtime
- Node.js
As an MCP server
- Runs as
- local process
- Transport
- stdio
- Authentication
- user and password
- Read-only
- nostates it is not
- Guardrails
13 quoted from README show all
Package, namespace and object type allow-lists.
$TMPand SAP standard objects are off-limits by default.Read-only switch. One setting turns off all writes.
Human approval for activation and transport release. The agent gets an approval request, nothing is executed.
Separation of duties. The developer can't approve their own transport.
Audit log of every decision and result as JSON Lines.
Dry-run mode to try a new policy before enforcing it.
The agent can't talk its way around the policy, because the rules are read from a file it has no access to, and object details are looked up in SAP instead of trusted from the agent.
Anything not explicitly allowed is denied, including objects that can't be found.
The tool allow-list. A tool that isn't listed doesn't exist.
There is intentionally no tool to delete or create objects. People create objects, the agent changes existing ones.
Use this only against development or sandbox systems, never against production.
Transport release is never executed; the tool exists to show that the policy stops it.
Separation of duties checks against
identity.approversin the policy, not against SAP authorizations.
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
Controlling what an agent may call, with an audit trail
SAP's application server and development platform for ABAP. For the things here it is the system a developer's editor or an agent's tool reaches over ADT, and a program calls over RFC; where it runs is the deployment's, as for SAP BW/4HANA.
HTTP endpoint under /sap/bc/adt exposing ABAP development objects
A container engine that packages software with the tools it needs and runs it isolated from the host. Things here that ship as an image need it installed, so the reader installs the engine rather than each of the command line tools inside the container.
Download
Install
npx -y github:Maherd18/sap-mcp-server{
"mcpServers": {
"sap-adt": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--env-file", "/absolute/path/to/.env",
"-v", "sap-mcp-audit:/data",
"ghcr.io/maherd18/sap-mcp-server:latest"
]
}
}
}- npx runs the server from the npm cache, so a `.env` file in the current directory is not read: the README says to pass the credentials as environment variables and to set `SAP_MCP_AUDIT_FILE` and `SAP_MCP_POLICY_FILE` to absolute paths.
- The default policy allows writes in the package `ZMCP_SANDBOX` only, and `npm run setup:sandbox -- --create` is what creates it.
- The ADT services have to be active on the system (`/sap/bc/adt` in transaction SICF), or `/sap/bc/adt/discovery` answers 404.
Copied from Maherd18/sap-mcp-server — README, Quick start and Client setup, read . Not run by the atlas.
Architecture
Download
npx or from a checkoutREADME
quoted from Maherd18/sap-mcp-server under MIT, readsap-mcp-server
An MCP server that lets AI agents read and write SAP ABAP development objects through the ADT REST API, with guardrails that live in the server.
Every tool call is checked against a policy before anything reaches SAP: which packages, namespaces and object types the agent may touch, whether writes are enabled at all, and which actions need a human. Every decision is written to an audit log. The agent can't talk its way around the policy, because the rules are read from a file it has no access to, and object details are looked up in SAP instead of trusted from the agent.
- Package, namespace and object type allow-lists.
$TMPand SAP standard objects are off-limits by default. - Read-only switch. One setting turns off all writes.
- Human approval for activation and transport release. The agent gets an approval request, nothing is executed.
- Separation of duties. The developer can't approve their own transport.
- Audit log of every decision and result as JSON Lines.
- Dry-run mode to try a new policy before enforcing it.
- Zero dependencies. Plain Node.js, runs via Docker or
npx.
Warning
Use this only against development or sandbox systems, never against production. See Security.
Contents
Quick start
You need an SAP system with the ADT services active (/sap/bc/adt in transaction SICF)
and a development user. Create a .env file with your connection details:
curl -fsSL https://raw.githubusercontent.com/Maherd18/sap-mcp-server/main/.env.example -o .env
# edit .env: SAP_HOST, SAP_PORT, SAP_CLIENT, SAP_USER, SAP_PASSWORD
Docker (recommended)
# check the connection
docker run --rm --env-file .env ghcr.io/maherd18/sap-mcp-server scripts/check-connection.mjs
# run the server (MCP over stdio, so -i is required)
docker run -i --rm --env-file .env -v sap-mcp-audit:/data ghcr.io/maherd18/sap-mcp-server
npx (Node.js 22 or later, credentials as environment variables)
npx -y github:Maherd18/sap-mcp-server
npx runs the server from the npm cache, so a .env file in your current directory is not
read and the default audit log would end up inside the cache. Pass the credentials as
environment variables and set SAP_MCP_AUDIT_FILE (and SAP_MCP_POLICY_FILE for your own
policy) to absolute paths, as in examples/claude_desktop_config.json.
From source
git clone https://github.com/Maherd18/sap-mcp-server.git
cd sap-mcp-server
cp .env.example .env # fill in your values
npm run check # step-by-step connection check
npm start
No npm install needed.
Create a sandbox package
The default policy only allows writes in the package ZMCP_SANDBOX. If it doesn't
exist yet, create it once:
npm run setup:sandbox # dry run
npm run setup:sandbox -- --create # create it
Options: --name, --swcomp (software component, default HOME), --layer (transport layer).
Client setup
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"sap-adt": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--env-file", "/absolute/path/to/.env",
"-v", "sap-mcp-audit:/data",
"ghcr.io/maherd18/sap-mcp-server:latest"
]
}
}
}
Claude Code
claude mcp add sap-adt -- docker run -i --rm --env-file /absolute/path/to/.env -v sap-mcp-audit:/data ghcr.io/maherd18/sap-mcp-server:latest
VS Code (.vscode/mcp.json)
{
"servers": {
"sap-adt": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "--env-file", "${workspaceFolder}/.env", "ghcr.io/maherd18/sap-mcp-server:latest"]
}
}
}
More variants (npx, local checkout) are in examples/.
Configuration
| Variable | Default | Description |
|---|---|---|
SAP_HOST | – | Application server host (required) |
SAP_PORT | 8000 | ICM port |
SAP_PROTOCOL | http | https or http |
SAP_CLIENT | – | Client, e.g. 100 (required) |
SAP_USER, SAP_PASSWORD | – | Development user (required) |
SAP_LANGUAGE | EN | Logon language |
SAP_TIMEOUT_MS | 30000 | HTTP timeout |
SAP_MCP_POLICY_FILE | config/policy.json | Path to your own policy |
SAP_MCP_AUDIT_FILE | logs/audit.jsonl | Audit log target (/data/audit.jsonl in Docker) |
Settings are read from the environment first, then from .env in the project directory
(the directory containing src/, not your current working directory). The default audit
log logs/audit.jsonl is also placed in the project directory. Use absolute paths for
SAP_MCP_POLICY_FILE and SAP_MCP_AUDIT_FILE.
Policy
The policy is a JSON file, config/policy.json by default.
In Docker, mount your own: -v "$PWD/policy.json:/app/config/policy.json:ro".
{
"mode": "enforce",
"identity": { "developer": "", "approvers": ["LEAD_DEV"] },
"allowedNamespaces": ["Z", "Y"],
"allowedPackages": ["ZMCP_SANDBOX"],
"allowedObjectTypes": ["PROG/P", "CLAS/OC", "INTF/OI", "TABL/DT", "FUGR/F"],
"writeEnabled": true,
"tools": {
"sap_write_source": { "access": "write", "objectScoped": true },
"sap_activate": { "access": "write", "objectScoped": true, "requiresApproval": true }
}
}
| Key | Description |
|---|---|
mode | enforce blocks denied calls. dry-run logs the decision but lets the call through. |
identity.developer | SAP user the agent works as. Empty means SAP_USER. |
identity.approvers | Users allowed to approve a transport release. Must not include the developer. |
allowedNamespaces | Allowed name prefixes, e.g. Z, Y or /ACME/. |
allowedPackages | Packages the agent may read and write. Keep $TMP out. |
allowedObjectTypes | ADT object types, e.g. CLAS/OC. |
writeEnabled | false makes the server read-only. |
tools | The tool allow-list. A tool that isn't listed doesn't exist. Per tool: access (read/write), objectScoped, requiresApproval, separationOfDuties. |
auditLog | enabled and file. |
Anything not explicitly allowed is denied, including objects that can't be found. When a call is denied, the agent gets the rule name and a reason:
| Rule | When |
|---|---|
unknown_tool | The tool isn't in the policy |
writes_disabled | Write call while writeEnabled is false |
path_outside_adt | Request outside /sap/bc/adt |
object_unresolved | Object not found in the system |
namespace_not_allowed | Object name outside allowedNamespaces |
object_type_not_allowed | Object type outside allowedObjectTypes |
package_not_allowed | Package outside allowedPackages |
approval_required | Tool needs human approval |
approver_missing, self_approval, approver_not_listed | Separation of duties violated |
Tools
| Tool | Access | Description |
|---|---|---|
sap_test_connection | read | Checks the connection, reports user, client and ADT resources |
sap_search_objects | read | Searches repository objects by pattern |
sap_read_metadata | read | Type, package, owner and version of an object |
sap_read_source | read | Source code of an object |
sap_list_transports | read | Open transport requests of the user |
sap_write_source | write | Replaces the source of an existing object (lock, write, unlock) |
sap_activate | write | Activates an object, requires approval |
sap_release_transport | write | Releases a transport, requires approval and separation of duties |
There is intentionally no tool to delete or create objects. People create objects, the agent changes existing ones.
Audit log
Every call produces a decision entry before execution and a result entry afterwards:
{"time":"2026-09-26T10:15:02.114Z","run":"2026-09-26T10-14-58-001Z-4127","type":"decision","user":"DEV_USER","tool":"sap_write_source","params":{"requested":{"object_name":"ZCL_OTHER","lines":42},"resolved":{"found":true,"objectName":"ZCL_OTHER","objectType":"CLAS/OC","package":"ZOTHER_PACKAGE"}},"decision":"deny","effective":"deny","enforced":true,"rule":"package_not_allowed","reason":"Package \"ZOTHER_PACKAGE\" is not on the allow-list (ZMCP_SANDBOX).","mode":"enforce"}
decision is what the policy concluded, effective is what actually happened. They only
differ in dry-run mode. Passwords, tokens and cookies are never logged.
# all denied calls
jq 'select(.type=="decision" and .effective!="allow")' logs/audit.jsonl
Security
- Development and sandbox systems only.
- Use a dedicated SAP user with minimal authorizations (
S_DEVELOPrestricted to the sandbox package), not a personal developer account. - Use HTTPS. With plain HTTP, basic auth sends credentials only base64-encoded.
- Review
config/policy.jsonbefore the first start. Allow only the sandbox package.
The server has no dependencies on purpose: less supply-chain risk for something with write access to your development system. To report a vulnerability, see SECURITY.md.
Troubleshooting
Run npm run check (or the Docker variant from the quick start) first. It checks
configuration, network, login, search and source access step by step.
| Symptom | Cause and fix |
|---|---|
401 on login | Wrong user or password, or the user is locked. |
403 on login | Logon works but authorizations are missing (S_DEVELOP, S_ADT_RES). |
404 on /sap/bc/adt/discovery | ADT service not active. Activate /sap/bc/adt in SICF. |
| TLS error with HTTPS | Self-signed or internal CA. Set NODE_EXTRA_CA_CERTS=/path/to/ca.pem. |
| Host not reachable from Docker | For a system on your own machine use host.docker.internal as SAP_HOST. |
PAK 134 when adding objects to a package | ADT's pak:isAddingObjectsAllowed is inverted: true blocks adding objects. setup:sandbox sets false. |
HTTP 409 on write | Object is locked in another transport. The server always uses the transport from the lock response. |
| Activation fails on a locked object | Activation takes its own lock. The server releases its edit lock before activation. |
| HTTP 500 on create, but the object exists | ADT sometimes reports an error after creating the object. Check for the object before retrying. |
Limitations
- Write path tested with ABAP classes; other object types may need adjustments.
- Transport release is never executed; the tool exists to show that the policy stops it.
- Separation of duties checks against
identity.approversin the policy, not against SAP authorizations. - One SAP system per server instance.
Development
npm test # unit and integration tests, no SAP system needed
The tests cover the policy rules, the MCP handshake over stdio and the full tool path against a simulated ADT endpoint.
src/
server.mjs MCP entry point (JSON-RPC over stdio)
tools.mjs tool definitions, single execution path
policy.mjs policy engine
adt-client.mjs ADT REST client with path guard
audit.mjs audit log
config.mjs configuration from environment / .env
config/policy.json default policy
scripts/ connection check, sandbox setup
test/ tests (node:test)
Contributions are welcome, see CONTRIBUTING.md.
Related projects
sap-ai-mcp-servers keeps an up-to-date list of MCP servers for SAP, including several for ABAP and ADT.
License
History
Changed 3, Fixes 1
Notes
Changed
- Require Node.js 22 or later; container image based on Node.js 24
- Update GitHub Actions to current major versions
- Document the npx setup: pass credentials as environment variables and set
SAP_MCP_AUDIT_FILE, otherwise the audit log ends up in the npm cache
Fixed
- Audit log keeps numbers and booleans as JSON types instead of writing them as strings
(e.g.
"found": trueinstead of"found": "true")
Features 7
Notes
First public release.
Added
- MCP server over stdio with eight tools for ABAP development objects via ADT
- Policy engine with package, namespace and object type allow-lists, read-only switch,
human approval, separation of duties and
enforce/dry-runmodes - Audit log of every decision and result as JSON Lines
- Container image (
ghcr.io/maherd18/sap-mcp-server) andnpxsupport SAP_MCP_POLICY_FILEandSAP_MCP_AUDIT_FILEenvironment variables- Connection check and sandbox setup scripts
- Tests for the policy, the MCP handshake and the tool path against a simulated ADT endpoint
Others providing
- @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
- arc1-adt-abap-mcp-extarc1-adt-abap-mcp-extOne JAR in Eclipse's dropins that turns on SAP's own ADT MCP server and adds read-only repository tools beside it — so an AI client reads your system without leaving Eclipse.independent, abapEclipse add-on enabling the ADT MCP server with read-only toolsfrom 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
- 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
- a2a-plugina2a-pluginExposes an annotated CDS service as an Agent-to-Agent protocol agent — @a2a opts the service in, @a2a.Skill declares what it offers, and an agent handler answers.independent, capExposes an annotated CDS service as an Agent-to-Agent agentfrom CAP
- arc-mcp-hubarc-mcp-hubA hub on SAP BTP that puts several arc-1 instances, one per SAP system, behind one login and a route each, exchanging the caller's token through a destination so each system still sees the real user.independent, btpHub on SAP BTP putting several arc-1 instances behind one loginfrom BTP/BAIP
- SuperClaude for SAPSuperClaude for SAPA Claude Code plugin that installs and wires its own ABAP MCP server, then puts a two-layer write guard between the agent and any system profile marked QA or production.independent, abapClaude Code plugin with an ABAP MCP server and write guardsfrom ABAP
- API ManagementAPI ManagementAPI proxies in front of backend services, with security and traffic management policies attached to them, and Developer Hub where consumers subscribe.sap official, btpAPI proxies with security and traffic policies and Developer Hubfrom BTP/BAIP
- 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
- SAP API Policy Evidence SkillSAP API Policy Evidence SkillAssesses whether a described SAP API usage aligns with the SAP API Policy, gathering live evidence from SAP's own sources and returning a sourced assessment with a stated confidence — and routing the legal questions away from itself.independent, btpSkill assessing API usage against the SAP API Policyfrom BTP/BAIP
- cds-agentscds-agentsTurns a CAP service into a tool layer for agent frameworks — a CAPToolkit bound to a named service, with a tool strategy controlling how much of it becomes callable.independent, capToolkit turning a CAP service into tools for agent frameworksfrom CAP
- 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
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
- Handed over as a URL. Behind the ABAP door because the objects it reads and changes are ABAP ones in a system reached over ADT. Two edges: [agent access to your code](capability:agent-code-access) for the eight tools over ADT, with `create_objects` entered as false because the README states that choice rather than leaving it out, and [tool governance](capability:tool-governance) for the policy file, the allow-lists, the read-only switch, the approval and separation-of-duties rules, the dry-run mode and the audit log, which the README's own opening makes the point of the server. [MCP servers](capability:mcp-servers) was considered and left off: that capability is a protocol adapter on a running application service, and this one helps somebody write code, which its own description sends here. No flavor is stated, since the README names no ABAP release or cloud edition; `tool_count` is left out because the README names no number, and the eight in the prose is a count of its own Tools table. The second [tool governance](capability:tool-governance) provider on the ABAP door, where the reading was community-only with one; the coverage note is left to revisit by hand.
- First seen.
For your agent
- Ref
artifact:maherd18-sap-mcp-server- JSON
- /artifacts/maherd18-sap-mcp-server.json
- MCP
- Connecting an agent