mcp-abap-abap-adt-api — Claude Code MCP server for ABAP ADT
An MCP server that puts SAP ABAP work inside your AI client: object lookup, source edits, transports, debugging. Useful when you develop ABAP and want the agent to touch the system directly.
claude mcp add --env SAP_URL=<SAP_URL> --env SAP_USER=<SAP_USER> --env SAP_PASSWORD=<SAP_PASSWORD> --env SAP_CLIENT=<SAP_CLIENT> --env SAP_LANGUAGE=<SAP_LANGUAGE> --transport stdio mcp-abap-abap-adt-api -- npx -y mcp-abap-abap-adt-apiWhat mcp-abap-abap-adt-api does
The server wraps abap-adt-api and hands the agent a toolset for SAP: finding objects, reading and writing source, locks, activation, transports, debugging, refactoring, Git and analysis. Everything runs through a single SAP session held by a local stdio client. What that session may read or change is decided by SAP authorizations.
You build it yourself. Node 22.22.2+ or 24.15.0+ is required, then npm ci and npm run build, and the client launches node pointing at the absolute path of dist/index.js. Credentials arrive from the MCP client environment: SAP_URL is an origin with no path and no embedded login, alongside SAP_USER and SAP_PASSWORD. With a private CA, set NODE_EXTRA_CA_CERTS before Node starts. TLS verification stays on.
One operation runs at a time; anything overlapping gets a busy error. SAP_REQUEST_TIMEOUT_MS defaults to 60000 and accepts 100..120000. The client ignores redirects, does not pick up environment proxies, and never retries a mutating call. A write cut short may already have landed in SAP, so check locks and writes, then call login, dropSession or logout to recover. Treat it as a tool for a trusted operator, not a sandbox or a shared service.
What it helps with
- locate an ABAP object by class name and get its URI
- pull a program's source and run a syntax check
- push edited code back into the system
- sort out transports when moving changes
- attach the debugger to a running program
Example prompts for the agent
- Find the ABAP class
zcl_invoice_xml_gen_modeland show me its source - Run a syntax check on the code you just read from the system
- Show transport information for this object
How to install mcp-abap-abap-adt-api
Platform CLI
claude mcp add --env SAP_URL=<SAP_URL> --env SAP_USER=<SAP_USER> --env SAP_PASSWORD=<SAP_PASSWORD> --env SAP_CLIENT=<SAP_CLIENT> --env SAP_LANGUAGE=<SAP_LANGUAGE> --transport stdio mcp-abap-abap-adt-api -- npx -y mcp-abap-abap-adt-apiReplace <…> with your own values. 1 more environment variable is in the server README
Platform CLI
codex mcp add mcp-abap-abap-adt-api --env SAP_URL=<SAP_URL> --env SAP_USER=<SAP_USER> --env SAP_PASSWORD=<SAP_PASSWORD> --env SAP_CLIENT=<SAP_CLIENT> --env SAP_LANGUAGE=<SAP_LANGUAGE> -- npx -y mcp-abap-abap-adt-apiReplace <…> with your own values. 1 more environment variable is in the server README
Config file
{
"mcpServers": {
"mcp-abap-abap-adt-api": {
"command": "npx",
"args": [
"-y",
"mcp-abap-abap-adt-api"
],
"env": {
"SAP_URL": "<SAP_URL>",
"SAP_USER": "<SAP_USER>",
"SAP_PASSWORD": "<SAP_PASSWORD>",
"SAP_CLIENT": "<SAP_CLIENT>",
"SAP_LANGUAGE": "<SAP_LANGUAGE>"
}
}
}
}Replace <…> with your own values. 1 more environment variable is in the server README
Config file
{
"servers": {
"mcp-abap-abap-adt-api": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-abap-abap-adt-api"
],
"env": {
"SAP_URL": "<SAP_URL>",
"SAP_USER": "<SAP_USER>",
"SAP_PASSWORD": "<SAP_PASSWORD>",
"SAP_CLIENT": "<SAP_CLIENT>",
"SAP_LANGUAGE": "<SAP_LANGUAGE>"
}
}
}
}Replace <…> with your own values. 1 more environment variable is in the server README
Platform CLI
gemini mcp add -e SAP_URL=<SAP_URL> -e SAP_USER=<SAP_USER> -e SAP_PASSWORD=<SAP_PASSWORD> -e SAP_CLIENT=<SAP_CLIENT> -e SAP_LANGUAGE=<SAP_LANGUAGE> mcp-abap-abap-adt-api npx -y mcp-abap-abap-adt-apiReplace <…> with your own values. 1 more environment variable is in the server README
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about mcp-abap-abap-adt-api
How do I install mcp-abap-abap-adt-api in Claude Code?
Run `claude mcp add mcp-abap-abap-adt-api -e SAP_URL=<SAP_URL> -e SAP_USER=<SAP_USER> -e SAP_PASSWORD=<SAP_PASSWORD> -- npx -y mcp-abap-abap-adt-api. A second form spells out the stdio transport and adds SAP_CLIENT and SAP_LANGUAGE: claude mcp add --env SAP_URL=<SAP_URL> --env SAP_USER=<SAP_USER> --env SAP_PASSWORD=<SAP_PASSWORD> --env SAP_CLIENT=<SAP_CLIENT> --env SAP_LANGUAGE=<SAP_LANGUAGE> --transport stdio mcp-abap-abap-adt-api -- npx -y mcp-abap-abap-adt-api`.
What does mcp-abap-abap-adt-api do?
It gives the agent SAP tools over the ADT API: searching and reading ABAP objects, editing source, locks, activation, transports, debugging and analysis. All of it shares one SAP session, and access is bounded by your authorizations in the system.
What do I need before running the server?
Node 22.22.2+ or 24.15.0+, plus a build via npm ci and npm run build. The client environment needs SAP_URL, SAP_USER and SAP_PASSWORD; for a private CA, set NODE_EXTRA_CA_CERTS before Node starts.