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 →

ADAM

An MCP server that debugs ABAP on a connected system over ADT, as one-shot captures or an interactive session, over stdio next to the assistant or as a shared server on SAP BTP Cloud Foundry.

An agent can read ABAP source and still not know why a value came out wrong. ADAM gives it SAP's own debugger over the ADT resources: one abap_debug call resolves the breakpoints against the active source, arms them for the session's own SAP user, triggers the run with the object's harmless ABAP Unit tests or an OData GET, and records every stop of that single run with the position, the call stack, the variables it was asked for and the steps after each stop, compacted into a line trace past twenty. A breakpoint addresses a line, a method, a MESSAGE statement, a statement kind such as COMMIT WORK or an exception class, and carries a hit count and an ABAP condition SAP evaluates there, so one stop can be the 500th pass of a loop. With interactive: true the program stays stopped and abap_debug_session drives it one move per call: a step (into, over or out), a continue to a line, an inspection of any variable, an end that lets the program run on or aborts it where it stands. abap_source returns the active source numbered the way breakpoints address it and abap_search finds objects by name or pattern; nothing is installed on the SAP system, the capture writes nothing there, and it refuses when Eclipse, VS Code or another capture already listens for that SAP user.

Facts

Last push

Where it sits

Lives in
Provides
DebuggingABAPDebuggingcapabilitySeeing what running code did between an input arriving and a result coming out: which code ran, what the values were at each point, and why a value ended up as it did.Agent access to your codeABAPBTPAgent 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.
Serves
Runs
Cloud Foundrylocal
Requires
ADT resourcesADT resourcesartifactthe ADT resources the server calls on the connected system: it needs a system reachable over HTTP(S) with ADT enabled, and a user with ADT access and debug authorization
Optional
SAP BTP ABAP environmentSAP BTP ABAP environmentartifactthe ABAP instance whose service key the server logs on with, opening the browser for the SAP login on the first call@arc-mcp/xsuaa-auth@arc-mcp/xsuaa-authartifactthe authentication stack in front of the /mcp route and the destination lookups behind itSAP Authorization and Trust Management serviceSAP Authorization and Trust Management serviceartifactthe sign-in of the MCP clients, with dynamic client registration and the debug scope every tool call needs; the MTA creates the instance from xs-security.jsonSAP Destination serviceSAP Destination serviceartifactthe destination that names the SAP system and how each user logs on to it: PrincipalPropagation for an on-premise system or OAuth2UserTokenExchange for the BTP ABAP environmentSAP Connectivity serviceSAP Connectivity serviceartifactthe forward proxy the ADT calls leave through on their way into the customer's networkCloud ConnectorCloud Connectorartifactthe tunnel into the customer's network and the certificate mapping that turns the propagated user into an SAP logon name; its access control has to expose /sap/bc/adt with all sub-pathsSAP BTP, Cloud Foundry RuntimeSAP BTP, Cloud Foundry Runtimeartifactthe runtime the MTA is deployed to, at one instance because an interactive session holds the program and its debugger session in the process

Who is behind it

Clément RingotClément RingotPersonMaintains this
In the atlas: maintains 3, contributes to 3
@ClementRingot
maintainer

Before choosing this

Conditions

PracticalFunctional boundary

A stopped program holds an SAP work process and its caller's request, so an interactive session is the wrong shape wherever that matters: one runs per SAP user at a time, other captures for that user are refused while it is open, and a Cloud Foundry deployment stays at one instance because the next call must reach the same process. Breakpoints in report and function-group includes are not accepted, and a message breakpoint catches MESSAGE statements only, so RAP messages from new_message( … ) and BAPI return tables never stop a run. On SAP_BASIS 7.50 and older the system cannot name the session's debug user, so there SAP_USER is used behind Basic or cookie authentication only.

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
Runs on
Cloud Foundrylocal

As an MCP server

Transport
stdioHTTP

For agent access to your code

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

Tasks this contributes to1Beta

Reach a system in the customer's own network as the signed-in userAn application on SAP BTP calls a system inside the customer's network and that system sees the person who signed in, not a shared service user.Coversan MCP server built so that each of its users debugs as themselves
What it does

Applies the pattern to a debugger. Deployed on Cloud Foundry it signs each MCP client in through XSUAA, hands that user's token to a PrincipalPropagation destination, and reaches the ABAP system through the Connectivity proxy and the Cloud Connector as that person's own SAP user, so SAP's debug authorisations are theirs and the capture catches only their runs. It checks the destination at its first call and refuses a BasicAuthentication one, under which every user would debug as one SAP user and could catch each other's runs, unless a deployment that a single person uses sets ABAP_DEBUGGER_ALLOW_SHARED_USER=true.

Remaining work

Set up the Cloud Connector, STRUST and CERTRULE as the pattern requires, create the destination, build and deploy the MTA, and assign the role collection carrying the debug scope. Its XSUAA and Destination calls are tested simulated and a first deployment on a real subaccount is still to come.

All options on the Authentication page →

Connections12

ADAM connectionsADAMPROVIDES→ provides2provides stated Hands a coding agent the debugger of the connected system and the two reads around it, as the caller's own SAP user: the active source numbered the way breakpoints address it, the repository quick search, a run triggered by the object's harmless ABAP Unit tests or an OData `GET`, and what the program did at each stop of that run. ClementRingot/ADAM — README: https://github.com/clementringot/adam ClementRingot/ADAM — README, Guarantees and limits: https://github.com/clementringot/adamAgent access to your codeprovides stated Drives SAP's own ABAP debugger from outside the system over ADT: it resolves and arms external breakpoints for the session's own SAP user, triggers the run, and at every stop of that one run records where the program stands, the call stack, the variables asked for and the steps taken after the stop, then releases the program and removes what it set. An interactive mode keeps the program waiting at a stop and takes one move per call. ClementRingot/ADAM — README, one-shot mode: https://github.com/clementringot/adam ClementRingot/ADAM — README, interactive mode: https://github.com/clementringot/adam ClementRingot/ADAM — README, Guarantees and limits: https://github.com/clementringot/adamDebuggingNEEDS→ connects to2connects to stated arms the external breakpoints, starts the debugger listener, attaches from the application server the program stopped on and reads the position, call stack and variables, all through the ADT REST API that Eclipse ADT uses ClementRingot/ADAM — README: https://github.com/clementringot/adam ClementRingot/ADAM — README, How a capture works: https://github.com/clementringot/adamABAP platformconnects to stated If: the server is deployed as a shared server on SAP BTP Cloud Foundry exchanges the signed-in MCP user's token at the Destination service for the per-user credentials the ADT calls then carry, so the debugger reaches SAP as that person's own SAP user ADAM — docs/btp-deployment.md, the call path: https://raw.githubusercontent.com/ClementRingot/ADAM/main/docs/btp-deployment.md ADAM — docs/btp-deployment.md, Create the destination: https://raw.githubusercontent.com/ClementRingot/ADAM/main/docs/btp-deployment.mdSAP Destination serviceif→ needs1needs stated the ADT resources the server calls on the connected system: it needs a system reachable over HTTP(S) with ADT enabled, and a user with ADT access and debug authorization ClementRingot/ADAM — README, Requirements: https://github.com/clementringot/adam ClementRingot/ADAM — README, Requirements: https://github.com/clementringot/adamADT resources→ optionally needs7optionally needs stated If: the server runs in HTTP mode on SAP BTP Cloud Foundry the authentication stack in front of the `/mcp` route and the destination lookups behind it ADAM — docs/btp-deployment.md: https://raw.githubusercontent.com/ClementRingot/ADAM/main/docs/btp-deployment.md@arc-mcp/xsuaa-authifoptionally needs stated If: the deployed server reaches an on-premise SAP system the tunnel into the customer's network and the certificate mapping that turns the propagated user into an SAP logon name; its access control has to expose `/sap/bc/adt` with all sub-paths ADAM — docs/btp-deployment.md, Before you start: https://raw.githubusercontent.com/ClementRingot/ADAM/main/docs/btp-deployment.mdCloud Connectorifoptionally needs stated If: the server is deployed as a shared server on SAP BTP Cloud Foundry the sign-in of the MCP clients, with dynamic client registration and the `debug` scope every tool call needs; the MTA creates the instance from `xs-security.json` ADAM — docs/btp-deployment.md: https://raw.githubusercontent.com/ClementRingot/ADAM/main/docs/btp-deployment.md ADAM — docs/btp-deployment.md, Give users the role: https://raw.githubusercontent.com/ClementRingot/ADAM/main/docs/btp-deployment.mdSAP Authorization and Trust Managementserviceifoptionally needs stated If: the SAP system debugged is the SAP BTP ABAP environment, reached with a service key instead of a URL and credentials the ABAP instance whose service key the server logs on with, opening the browser for the SAP login on the first call ClementRingot/ADAM — README, Installation: https://github.com/clementringot/adamSAP BTP ABAP environmentifoptionally needs stated If: the server is deployed as a shared server on SAP BTP instead of run locally over stdio the runtime the MTA is deployed to, at one instance because an interactive session holds the program and its debugger session in the process ClementRingot/ADAM — README, Installation: https://github.com/clementringot/adam ADAM — docs/btp-deployment.md, Configure and deploy: https://raw.githubusercontent.com/ClementRingot/ADAM/main/docs/btp-deployment.mdSAP BTP, Cloud Foundry Runtimeifoptionally needs declared If: the deployed server reaches an on-premise SAP system behind the Cloud Connector the forward proxy the ADT calls leave through on their way into the customer's network ADAM — mta.yaml: https://raw.githubusercontent.com/ClementRingot/ADAM/main/mta.yaml ADAM — docs/btp-deployment.md, Before you start: https://raw.githubusercontent.com/ClementRingot/ADAM/main/docs/btp-deployment.mdSAP Connectivity serviceifoptionally needs stated If: the server is deployed as a shared server on SAP BTP Cloud Foundry the destination that names the SAP system and how each user logs on to it: `PrincipalPropagation` for an on-premise system or `OAuth2UserTokenExchange` for the BTP ABAP environment ClementRingot/ADAM — README, Configuration: https://github.com/clementringot/adam ADAM — docs/btp-deployment.md: https://raw.githubusercontent.com/ClementRingot/ADAM/main/docs/btp-deployment.mdSAP Destination serviceif
Where ADAM runsYour ABAP systemYour SAP BTP subaccountClementRingot/ADAM — README, Development, checked 2026-10-26: “`src/http-server.ts` (Streamable HTTP with XSUAA/API-key auth), `src/server.ts` (MCP), `src/config.ts`, `src/index.ts` (entry point, stdio or `--http`).”stdio or HTTPdocumentedrequiresdocumentedmay needif the SAP system debugged isthe SAP BTP ABAP environment,reached with a service key inste…documentedmay needif the server runs in HTTPmode on SAP BTP Cloud Foundrydocumentedmay needif the server is deployed as ashared server on SAP BTP CloudFoundrydocumentedoutboundif the server is deployed as ashared server on SAP BTP CloudFoundrydocumentedmay needif the deployed server reachesan on-premise SAP systembehind the Cloud Connectordocumentedmay needif the deployed server reachesan on-premise SAP systemdocumentedmay needif the server is deployed as ashared server on SAP BTPinstead of run locally over stdiodocumentedHTTP, outbounddocumentedoutboundYour MCP client, actorYour MCP clientABAP platform, SAP solutionABAP platformSAP solutionADAM, moduleADAM@arc-mcp/xsuaa-auth, module@arc-mcp/xsuaa-authCloud Connector, moduleCloud ConnectorADT resources, service instanceADT resourcesSAP BTP ABAP environment, service instanceSAP BTP ABAPenvironmentSAP Authorization and Trust Management service, service instanceSAP Authorizationand TrustManagement serviceSAP Destination service, service instanceSAP DestinationserviceSAP Connectivity service, service instanceSAP ConnectivityserviceSAP BTP, Cloud Foundry Runtime, service instanceSAP BTP, CloudFoundry Runtime
SAPnot SAP's, or the project's ownauthenticationstated in the documentdocumented onlyunder a condition

README

quoted from ClementRingot/ADAM, read
ClementRingot/ADAM/README.mdOn GitHub

ADAM

Node.js 22.12+ MCP server License: MIT

ADAM is an MCP server that lets an AI assistant — Claude, GitHub Copilot, Cursor… — debug ABAP code in SAP's own debugger: set breakpoints, run the code, read the variables, step through it. It speaks the ABAP Development Tools (ADT) REST API, as Eclipse does, so nothing has to be installed on the SAP system.

You:     Why does ZCL_ORDER=>GET_TOTAL return 0 for order 4711?

Claude:  abap_source  {type: "CLAS", name: "ZCL_ORDER", method: "get_total"}
         abap_debug   {type: "CLAS", name: "ZCL_ORDER", breakpoints: [{line: 42, hits: 3}],
                       variables: ["LS_ITEM-NETWR", "LV_TOTAL"], steps: 2}
         → three iterations of the loop in one run, each with both values and two steps
excerpt, no licence read, read the rest, on GitHub

Others providing69

Debugging
  1. dbg_value_statementDebugger script generating a VALUE statement for a variablefrom ABAP
  2. dump_infoDisplays the variables of ABAP short dumpsfrom ABAP
  3. com.sap.cds:cds-feature-consoleConnects a running CAP Java app to CAP console for monitoringfrom CAP
  4. com.sap.cds:cds-feature-dev-dashboardBrowser dashboard for a running CAP Java service during developmentfrom CAP
  5. @cap-js/consoleConnects a running CAP application to the CAP consolefrom CAP
  6. @cap-js/data-inspectorInspects database entities and contents at CAP service levelfrom CAP
  7. abapsmithABAP MCP server over ADT with a local journal that can undo writesfrom ABAP
  8. sap-cap-debuggerAttaches a debugger to a CAP app running on Cloud Foundryfrom CAP
  9. ABAP-Object-VisualizerDebugger script exporting an object hierarchy as Graphvizfrom ABAP
  10. abap_debugger_object_graph_extensionABAP debugger extension drawing objects as a Graphviz graphfrom ABAP
  11. Graphviz-browserStatic page drawing Graphviz graphs for the ABAP debugger extensionfrom ABAP
  12. ABAP remote filesystemVS Code extension editing ABAP systems over ADT as a filesystemfrom ABAP
  13. ABAP Development Tools for EclipseSAP's Eclipse plugins for ABAP development over ADTfrom ABAP
  14. @sap/cds-dkCommand line client and development toolkit for CAPfrom CAP
  15. @saptools/cf-debuggerNode.js inspector tunnel over cf ssh to Cloud Foundry appsfrom BTP/BAIP
  16. @saptools/cf-explorerFile search in apps deployed to SAP BTP Cloud Foundry over cf sshfrom BTP/BAIP
  17. @saptools/cf-function-traceStep-by-step state recorder for one JavaScript function in Node.jsfrom BTP/BAIP
  18. @saptools/cf-hanaSQL runner against the SAP HANA Cloud database bound to a CF appfrom BTP/BAIP
  19. @saptools/cf-inspectorShell debugger for remote Node.js over the Chrome DevTools Protocolfrom BTP/BAIP
  20. @saptools/cf-live-traceHTTP trace hook streaming a running CF Node.js app's trafficfrom BTP/BAIP
  21. @saptools/cf-request-runnerEndpoint discovery for CAP services deployed to Cloud Foundryfrom CAP
  22. @saptools/service-flowStatic end-to-end tracer of one CAP operation across repositoriesfrom CAP
  23. Smart DebuggerSAP GUI debugger script recording steps so execution can run backwardsfrom ABAP
Agent access to your code
  1. @abap2ui5/mcp-serverMCP server for the abap2UI5 check, deploy and run loopfrom ABAP
  2. arc-1-bopf-enharc-1 extension for reading and maintaining BOPF enhancementsfrom ABAP
  3. HammerNative macOS code editor for ABAP and CDSfrom ABAP
  4. arc-1-lspEdition of ARC-1 that runs ADT calls through adt-lsfrom ABAP
  5. arc-1MCP server over the ADT REST API for ABAP objectsfrom ABAP
  6. arc1-abap-bridgeVS Code bridge between arc-1 and ADT for VS Codefrom ABAP
  7. arc1-adt-abap-mcp-extEclipse add-on enabling the ADT MCP server with read-only toolsfrom ABAP
  8. capforgeMCP server scaffolding CAP and CDS checked by cds compilefrom CAP
  9. ABAP Accelerator MCP ServerAWS's ABAP MCP server for Amazon Q Developer and Kirofrom ABAP
  10. Modernization Agents for SAP on AWSAWS agents for ABAP, PI/PO and BW modernisation workfrom ABAP
  11. @mcp-abap-adt/coreABAP ADT MCP server published as an npm scope and pluginfrom ABAP
  12. @cap-js/mcp-serverMCP server for CAP development: model and docs searchfrom CAP
  13. chandrashekhar-mahajan/abap-mcp-serverABAP MCP server with ADT tools and five authentication strategiesfrom ABAP
  14. dassian-adtFork of mcp-abap-abap-adt-api with 25 tools and session recoveryfrom ABAP
  15. erpl-adtC++ binary speaking the ADT REST API as a CLI and MCP serverfrom ABAP
  16. bw-modeling-mcpMCP server for BW/4HANA modelling objectsfrom BTP/BAIP
  17. EPOD ADT MCP ServerMCP server for ABAP on the ADT session, in Eclipse or standalonefrom ABAP
  18. ZARC1_EXTENSION_FORMSarc-1 extension for SAPscript and Smart Forms objectsfrom ABAP
  19. 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.from ABAP
  20. fr0ster/mcp-abap-adtABAP MCP server with full CRUD on on-premise and ABAP Cloudfrom ABAP
  21. abapsmithABAP MCP server over ADT with a local journal that can undo writesfrom ABAP
  22. sap-ai-dev-toolkitMCP proxy pinning an agent's ABAP tools to one SAP systemfrom ABAP
  23. aibap.mcpGo MCP server that writes, activates and runs ABAP classes via ADTfrom ABAP
  24. BellaEclipse plugin bringing Claude into ABAP Development Toolsfrom ABAP
  25. Maherd18/sap-mcp-serverPolicy-checked MCP server for ABAP development over ADTfrom ABAP
  26. sapdumpmcpMCP server reading ABAP short dumps over ADTfrom ABAP
  27. ABAP remote filesystemVS Code extension editing ABAP systems over ADT as a filesystemfrom ABAP
  28. mcp-abap-abap-adt-apiWrite-oriented MCP server over abap-adt-apifrom ABAP
  29. mcp-abap-adtRead-oriented MCP server fetching ABAP programs, classes, tablesfrom ABAP
  30. SAP MCP Connection ManagerWindows desktop manager handing SAP connections to assistants over MCPfrom ABAP
  31. ABAPilotMCP connector for ECC and on-premise S/4HANA with a licensed SAP sidefrom ABAP
  32. vibing-steampunkADT-to-MCP bridge in Go reaching past what ADT exposesfrom ABAP
  33. ADT MCP ServerLocal HTTP MCP server started from ABAP Development Tools for VS Codefrom ABAP
  34. ABAP Development Tools for VS CodeSAP's ABAP tools in VS Code for editing, debugging, ATC and transportsfrom ABAP
  35. SAP Joule for Developers, ABAP AI capabilitiesSAP's AI for ABAP development in ADT for Eclipse and VS Codefrom ABAP
  36. @sap/mdk-mcp-serverMCP server with five tools for Mobile Development Kit workfrom BTP/BAIP
  37. @sap-ux/fiori-mcp-serverMCP server for creating and editing Fiori applicationsfrom UI5
  38. ABAPDocMCPMCP server turning a transport request into a WRICEF specificationfrom ABAP
  39. claude-sap-kitClaude Code plugin adding Custom_* tools to arc-1from ABAP
  40. Skybuffer AI MCP serverABAP add-on serving business data and transactions as MCP toolsfrom ABAP
  41. @ui5/mcp-serverMCP server for UI5 development with ten toolsfrom UI5
  42. abap-adt-cliCLI that pulls and pushes ABAP packages as local files over ADTfrom ABAP
  43. workskong/mcp-abap-adtLight MCP adapter for ABAP over ADT, documented in Koreanfrom ABAP
  44. KlystronMCP server in ABAP inside the application server, with agent skillsfrom ABAP
  45. pyrfc-mcpMCP server calling RFC-enabled function modules behind an allowlistfrom ABAP
  46. ABAP-AI-CODE-TOOLSabapGit package adding create, modify and delete tools to ABAP AI Codefrom ABAP
  47. ABAP AI CodeAgentic coding assistant in ABAP that runs as an SAP GUI reportfrom ABAP
  48. VERTEXADT extension for Eclipse and VS Code showing three SAP GUI toolsfrom ABAP

Details

Sources3
GitHub APIdiscovered herechecked
github.com/ClementRingot/ADAMtree, 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
deploymentCloud Foundry, local
discovered viaGitHub API
first seen in the atlas
ecosystem and domainabap, ai-and-agents
Flavors2
Standard ABAP
“- An SAP system reachable over HTTP(S) with ADT enabled: SAP NetWeaver / S/4HANA on-premise (SAP_BASIS 7.50 or later), or the SAP BTP ABAP Environment.” — ClementRingot/ADAM — README, Requirementschecked
ABAP Cloud
“- An SAP system reachable over HTTP(S) with ADT enabled: SAP NetWeaver / S/4HANA on-premise (SAP_BASIS 7.50 or later), or the SAP BTP ABAP Environment.” — ClementRingot/ADAM — README, Requirementschecked
History in the atlas1
  1. First seen.
For your agent
Ref
artifact:clementringot-adam
JSON
/artifacts/clementringot-adam.json
MCP
Connecting an agent