MCP serverMCP servertypeExposes tools to a coding agent over MCP.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →

Maherd18/sap-mcp-server

An 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.

Eight tools sit over the ADT resources: 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 Docker, npx or a checkout, speaks stdio only, and reaches the system with basic credentials taken from the environment. Where SuperClaude for SAP 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

Last pushLicenceMIT

Where it sits

Lives in
Provides
Agent access to your codeABAPAgent access to your codecapabilityLetting a coding agent read the project or the system you actually have, reach its model, its objects and its checks, and act on it. In file-based environments that works out of the box; complex systems need dedicated access capabilities. Whatever the environment, the agent also needs project- and framework-specific context, so it understands the thing in front of it rather than guessing from what it remembers of its training data. The transport is incidental: an MCP server, a language server or a CLI answer the same question, and what differs between them is how much of the real thing the agent can see. Distinct from [MCP servers](capability:mcp-servers), which is a protocol adapter on your own running service, and from [agent guidance](capability:agent-guidance), which is knowledge handed over as files rather than read from the thing itself.Tool governanceABAPTool governancecapabilityControlling what an agent may call, with which authorisations, and leaving an audit trail of what it did. The authorisation question that MCP exposure raises but does not answer.
Requires
ADT resourcesADT resourcesartifactthe ADT services on the system every tool calls, which an administrator activates before the server can reach anything
Optional
DockerDockeroutside the atlasthe container engine the published image runs in, which is the way the README recommends starting the server

Who is behind it

Maher DarweeshMaher DarweeshPersonMaintains this
In the atlas: maintains 1, contributes to 1
@Maherd18
maintainer

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. $TMP and 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.approvers in the policy, not against SAP authorizations.

For agent access to ABAP code

Read
sourcesearchwhere-usedDDICCDStable data
Change
writecreateactivatetransportsgit
Check
syntaxATCABAP Unit
Run
run codedumps
property statedstated nonot said

Connections5

Maherd18/sap-mcp-server connectionsMaherd18/sap-mcp-serverPROVIDES→ provides2provides stated Reads and changes ABAP development objects in a system over ADT for an agent, with reading confined to the allowed packages, namespaces and object types, writing confined further by one switch, and activation held for a person to approve. Maherd18/sap-mcp-server — README: https://raw.githubusercontent.com/Maherd18/sap-mcp-server/main/README.md Maherd18/sap-mcp-server — README, Tools: https://raw.githubusercontent.com/Maherd18/sap-mcp-server/main/README.mdAgent access to your codeprovides stated Decides what the agent may call before the call happens, out of a file the agent has no access to: allow-lists for packages, namespaces and ADT object types, one switch that turns off every write, approval required for activation and transport release, a separation-of-duties rule against a developer approving their own transport, a dry-run mode that records the decision without enforcing it, and a JSON Lines audit log of every decision and result. Maherd18/sap-mcp-server — README: https://raw.githubusercontent.com/Maherd18/sap-mcp-server/main/README.md Maherd18/sap-mcp-server — README: https://raw.githubusercontent.com/Maherd18/sap-mcp-server/main/README.md Maherd18/sap-mcp-server — README, Policy: https://raw.githubusercontent.com/Maherd18/sap-mcp-server/main/README.mdTool governanceNEEDS→ connects to1connects to stated Reads and writes ABAP development objects in the system over its ADT resources, and looks an object's type, package and owner up there rather than trusting the agent's arguments. Maherd18/sap-mcp-server — README: https://raw.githubusercontent.com/Maherd18/sap-mcp-server/main/README.md Maherd18/sap-mcp-server — README, Configuration: https://raw.githubusercontent.com/Maherd18/sap-mcp-server/main/README.mdABAP platformInterface: ABAP Development Tools(ADT) HTTP resources · http→ needs1needs stated the ADT services on the system every tool calls, which an administrator activates before the server can reach anything Maherd18/sap-mcp-server — README, Quick start: https://raw.githubusercontent.com/Maherd18/sap-mcp-server/main/README.mdADT resources→ optionally needs1optionally needs stated If: the server is started from the published container image rather than with `npx` or from a checkout the container engine the published image runs in, which is the way the README recommends starting the server Maherd18/sap-mcp-server — README, Quick start: https://raw.githubusercontent.com/Maherd18/sap-mcp-server/main/README.md Maherd18/sap-mcp-server — README: https://raw.githubusercontent.com/Maherd18/sap-mcp-server/main/README.mdDockerif

Install

npx -y github:Maherd18/sap-mcp-server
The config you actually write
{
  "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.

Your machineYour ABAP systemMaherd18/sap-mcp-server — README, Quick start, checked 2026-10-03: “# run the server (MCP over stdio, so -i is required)”stdiodocumentedrequiresdocumentedmay needif the server is started fromthe published container imagerather than with `npx` or from a…documentedHTTPoutbound, sync, lands on ABAPDevelopment Tools (ADT) HTTP res…Your MCP client, actorYour MCP clientDocker, SoftwareDockerSoftwareABAP platform, SAP solutionABAP platformSAP solutionMaherd18/sap-mcp-server, moduleMaherd18/sap-mcp-ser…ADT resources, service instanceADT resources
SAPnot SAP's, or the project's ownstated in the documentdocumented onlyunder a condition

README

quoted from Maherd18/sap-mcp-server under MIT, read
Maherd18/sap-mcp-server/README.mdOn GitHub

sap-mcp-server

CI License: MIT Node.js Dependencies

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. $TMP and 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

VariableDefaultDescription
SAP_HOST–Application server host (required)
SAP_PORT8000ICM port
SAP_PROTOCOLhttphttps or http
SAP_CLIENT–Client, e.g. 100 (required)
SAP_USER, SAP_PASSWORD–Development user (required)
SAP_LANGUAGEENLogon language
SAP_TIMEOUT_MS30000HTTP timeout
SAP_MCP_POLICY_FILEconfig/policy.jsonPath to your own policy
SAP_MCP_AUDIT_FILElogs/audit.jsonlAudit 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 }
  }
}
KeyDescription
modeenforce blocks denied calls. dry-run logs the decision but lets the call through.
identity.developerSAP user the agent works as. Empty means SAP_USER.
identity.approversUsers allowed to approve a transport release. Must not include the developer.
allowedNamespacesAllowed name prefixes, e.g. Z, Y or /ACME/.
allowedPackagesPackages the agent may read and write. Keep $TMP out.
allowedObjectTypesADT object types, e.g. CLAS/OC.
writeEnabledfalse makes the server read-only.
toolsThe tool allow-list. A tool that isn't listed doesn't exist. Per tool: access (read/write), objectScoped, requiresApproval, separationOfDuties.
auditLogenabled 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:

RuleWhen
unknown_toolThe tool isn't in the policy
writes_disabledWrite call while writeEnabled is false
path_outside_adtRequest outside /sap/bc/adt
object_unresolvedObject not found in the system
namespace_not_allowedObject name outside allowedNamespaces
object_type_not_allowedObject type outside allowedObjectTypes
package_not_allowedPackage outside allowedPackages
approval_requiredTool needs human approval
approver_missing, self_approval, approver_not_listedSeparation of duties violated

Tools

ToolAccessDescription
sap_test_connectionreadChecks the connection, reports user, client and ADT resources
sap_search_objectsreadSearches repository objects by pattern
sap_read_metadatareadType, package, owner and version of an object
sap_read_sourcereadSource code of an object
sap_list_transportsreadOpen transport requests of the user
sap_write_sourcewriteReplaces the source of an existing object (lock, write, unlock)
sap_activatewriteActivates an object, requires approval
sap_release_transportwriteReleases 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_DEVELOP restricted to the sandbox package), not a personal developer account.
  • Use HTTPS. With plain HTTP, basic auth sends credentials only base64-encoded.
  • Review config/policy.json before 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.

SymptomCause and fix
401 on loginWrong user or password, or the user is locked.
403 on loginLogon works but authorizations are missing (S_DEVELOP, S_ADT_RES).
404 on /sap/bc/adt/discoveryADT service not active. Activate /sap/bc/adt in SICF.
TLS error with HTTPSSelf-signed or internal CA. Set NODE_EXTRA_CA_CERTS=/path/to/ca.pem.
Host not reachable from DockerFor a system on your own machine use host.docker.internal as SAP_HOST.
PAK 134 when adding objects to a packageADT's pak:isAddingObjectsAllowed is inverted: true blocks adding objects. setup:sandbox sets false.
HTTP 409 on writeObject is locked in another transport. The server always uses the transport from the lock response.
Activation fails on a locked objectActivation takes its own lock. The server releases its edit lock before activation.
HTTP 500 on create, but the object existsADT 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.approvers in 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.

sap-ai-mcp-servers keeps an up-to-date list of MCP servers for SAP, including several for ABAP and ADT.

License

MIT

MIT, read

History

Latest

v0.3.1

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": true instead of "found": "true")
  1. v0.3.0

    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-run modes
    • Audit log of every decision and result as JSON Lines
    • Container image (ghcr.io/maherd18/sap-mcp-server) and npx support
    • SAP_MCP_POLICY_FILE and SAP_MCP_AUDIT_FILE environment variables
    • Connection check and sandbox setup scripts
    • Tests for the policy, the MCP handshake and the tool path against a simulated ADT endpoint

Others providing45

Agent access to ABAP code
  1. @abap2ui5/mcp-serverMCP server for the abap2UI5 check, deploy and run loop
  2. arc-1-bopf-enharc-1 extension for reading and maintaining BOPF enhancements
  3. HammerNative macOS code editor for ABAP and CDS
  4. arc-1-lspEdition of ARC-1 that runs ADT calls through adt-ls
  5. arc-1MCP server over the ADT REST API for ABAP objects
  6. arc1-abap-bridgeVS Code bridge between arc-1 and ADT for VS Code
  7. arc1-adt-abap-mcp-extEclipse add-on enabling the ADT MCP server with read-only tools
  8. ABAP Accelerator MCP ServerAWS's ABAP MCP server for Amazon Q Developer and Kiro
  9. Modernization Agents for SAP on AWSAWS agents for ABAP, PI/PO and BW modernisation work
  10. @mcp-abap-adt/coreABAP ADT MCP server published as an npm scope and plugin
  11. chandrashekhar-mahajan/abap-mcp-serverABAP MCP server with ADT tools and five authentication strategies
  12. dassian-adtFork of mcp-abap-abap-adt-api with 25 tools and session recovery
  13. erpl-adtC++ binary speaking the ADT REST API as a CLI and MCP server
  14. bw-modeling-mcpMCP server for BW/4HANA modelling objects
  15. EPOD ADT MCP ServerMCP server for ABAP on the ADT session, in Eclipse or standalone
  16. ZARC1_EXTENSION_FORMSarc-1 extension for SAPscript and Smart Forms objects
  17. 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.
  18. fr0ster/mcp-abap-adtABAP MCP server with full CRUD on on-premise and ABAP Cloud
  19. abapsmithABAP MCP server over ADT with a local journal that can undo writes
  20. sap-ai-dev-toolkitMCP proxy pinning an agent's ABAP tools to one SAP system
  21. aibap.mcpGo MCP server that writes, activates and runs ABAP classes via ADT
  22. BellaEclipse plugin bringing Claude into ABAP Development Tools
  23. sapdumpmcpMCP server reading ABAP short dumps over ADT
  24. ABAP remote filesystemVS Code extension editing ABAP systems over ADT as a filesystem
  25. mcp-abap-abap-adt-apiWrite-oriented MCP server over abap-adt-api
  26. mcp-abap-adtRead-oriented MCP server fetching ABAP programs, classes, tables
  27. SAP MCP Connection ManagerWindows desktop manager handing SAP connections to assistants over MCP
  28. ABAPilotMCP connector for ECC and on-premise S/4HANA with a licensed SAP side
  29. vibing-steampunkADT-to-MCP bridge in Go reaching past what ADT exposes
  30. ADT MCP ServerLocal HTTP MCP server started from ABAP Development Tools for VS Code
  31. ABAP Development Tools for VS CodeSAP's ABAP tools in VS Code for editing, debugging, ATC and transports
  32. SAP Joule for Developers, ABAP AI capabilitiesSAP's AI for ABAP development in ADT for Eclipse and VS Code
  33. ABAPDocMCPMCP server turning a transport request into a WRICEF specification
  34. claude-sap-kitClaude Code plugin adding Custom_* tools to arc-1
  35. Skybuffer AI MCP serverABAP add-on serving business data and transactions as MCP tools
  36. abap-adt-cliCLI that pulls and pushes ABAP packages as local files over ADT
  37. workskong/mcp-abap-adtLight MCP adapter for ABAP over ADT, documented in Korean
  38. KlystronMCP server in ABAP inside the application server, with agent skills
  39. pyrfc-mcpMCP server calling RFC-enabled function modules behind an allowlist
  40. ABAP-AI-CODE-TOOLSabapGit package adding create, modify and delete tools to ABAP AI Code
  41. ABAP AI CodeAgentic coding assistant in ABAP that runs as an SAP GUI report
  42. VERTEXADT extension for Eclipse and VS Code showing three SAP GUI tools
Tool governance
  1. arc-mcp-hubHub on SAP BTP putting several arc-1 instances behind one login
  2. SuperClaude for SAPClaude Code plugin with an ABAP MCP server and write guards
  3. bw-modeling-mcpMCP server for BW/4HANA modelling objects
  4. SAP API Policy Evidence SkillSkill assessing API usage against the SAP API Policy
  5. pyrfc-mcpMCP server calling RFC-enabled function modules behind an allowlist

Details

Sources3
Added by handdiscovered herechecked
github.com/Maherd18/sap-mcp-servertree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

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
runtimesnode
discovered viaAdded by hand
first seen in the atlas
ecosystem and domainabap, ai-and-agents
History in the atlas2
  1. 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.
  2. First seen.
For your agent
Ref
artifact:maherd18-sap-mcp-server
JSON
/artifacts/maherd18-sap-mcp-server.json
MCP
Connecting an agent