mcp-abap-adt-ro — Claude Code MCP server: read-only ABAP ADT access
Gives an agent read-only access to ABAP repositories through ADT: object analysis, search and repository navigation.
claude mcp add --env MCP_ENV_PATH=<MCP_ENV_PATH> --env AUTH_BROKER_PATH=<AUTH_BROKER_PATH> --env MCP_BROWSER=<MCP_BROWSER> --env MCP_BROWSER_AUTH_PORT=<MCP_BROWSER_AUTH_PORT> --env MCP_UNSAFE=<MCP_UNSAFE> --transport stdio mcp-abap-adt-ro -- npx -y @mcp-abap-adt/core-roWhat mcp-abap-adt-ro does
The server connects to SAP ECC/S/4HANA (on-premise) and SAP BTP ABAP Cloud and exposes read-only tools: where-used, object metadata, repository navigation, structure and dependency analysis. Nothing gets written back — that is the point, since analysis should rest on what the system actually contains rather than on what the model assumes.
It runs through npx -y @mcp-abap-adt/core-ro. Auth is destination-based: a service key file sits in the service-keys directory, and you pass its filename without the extension as --mcp=<destination>. Three options exist — basic over HTTP or RFC, SNC over RFC without a password, and JWT with a browser login. A JWT you already have goes in the x-sap-jwt-token header of mcp-abap-adt-http / mcp-abap-adt-sse. Transports are stdio, HTTP and SSE.
HTTP asks for nothing beyond Node.js 22 or 24. Pick RFC or SNC and you also need the SAP NW RFC library: the 64-bit sapnwrfc.dll from SAP GUI on Windows, otherwise the SAP NW RFC SDK. Without it the server will not start in that mode. Legacy BASIS < 7.50 systems are out of scope.
What it helps with
- trace every usage of an ABAP object before touching it
- inspect the structure of a class or function module
- map dependencies between objects across the repository
- pull object metadata straight from the system
- judge the impact of a change on related artifacts
Example prompts for the agent
- Show me where class
ZCL_ORDER_HANDLERis used - Walk through the structure of function module
Z_GET_PRICE - Find every repository object that depends on this CDS view
How to install mcp-abap-adt-ro
Platform CLI
claude mcp add --env MCP_ENV_PATH=<MCP_ENV_PATH> --env AUTH_BROKER_PATH=<AUTH_BROKER_PATH> --env MCP_BROWSER=<MCP_BROWSER> --env MCP_BROWSER_AUTH_PORT=<MCP_BROWSER_AUTH_PORT> --env MCP_UNSAFE=<MCP_UNSAFE> --transport stdio mcp-abap-adt-ro -- npx -y @mcp-abap-adt/core-roReplace <…> with your own values. 3 more environment variables are in the server README
Platform CLI
codex mcp add mcp-abap-adt-ro --env MCP_ENV_PATH=<MCP_ENV_PATH> --env AUTH_BROKER_PATH=<AUTH_BROKER_PATH> --env MCP_BROWSER=<MCP_BROWSER> --env MCP_BROWSER_AUTH_PORT=<MCP_BROWSER_AUTH_PORT> --env MCP_UNSAFE=<MCP_UNSAFE> -- npx -y @mcp-abap-adt/core-roReplace <…> with your own values. 3 more environment variables are in the server README
Config file
{
"mcpServers": {
"mcp-abap-adt-ro": {
"command": "npx",
"args": [
"-y",
"@mcp-abap-adt/core-ro"
],
"env": {
"MCP_ENV_PATH": "<MCP_ENV_PATH>",
"AUTH_BROKER_PATH": "<AUTH_BROKER_PATH>",
"MCP_BROWSER": "<MCP_BROWSER>",
"MCP_BROWSER_AUTH_PORT": "<MCP_BROWSER_AUTH_PORT>",
"MCP_UNSAFE": "<MCP_UNSAFE>"
}
}
}
}Replace <…> with your own values. 3 more environment variables are in the server README
Config file
{
"servers": {
"mcp-abap-adt-ro": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@mcp-abap-adt/core-ro"
],
"env": {
"MCP_ENV_PATH": "<MCP_ENV_PATH>",
"AUTH_BROKER_PATH": "<AUTH_BROKER_PATH>",
"MCP_BROWSER": "<MCP_BROWSER>",
"MCP_BROWSER_AUTH_PORT": "<MCP_BROWSER_AUTH_PORT>",
"MCP_UNSAFE": "<MCP_UNSAFE>"
}
}
}
}Replace <…> with your own values. 3 more environment variables are in the server README
Platform CLI
gemini mcp add -e MCP_ENV_PATH=<MCP_ENV_PATH> -e AUTH_BROKER_PATH=<AUTH_BROKER_PATH> -e MCP_BROWSER=<MCP_BROWSER> -e MCP_BROWSER_AUTH_PORT=<MCP_BROWSER_AUTH_PORT> -e MCP_UNSAFE=<MCP_UNSAFE> mcp-abap-adt-ro npx -y @mcp-abap-adt/core-roReplace <…> with your own values. 3 more environment variables are 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-adt-ro
How do I install mcp-abap-adt-ro in Claude Code?
Run claude mcp add mcp-abap-adt-ro -e SAP_SYSTEM_TYPE=<SAP_SYSTEM_TYPE> -- npx -y @mcp-abap-adt/core-ro. For extra environment variables use the second form: `claude mcp add --env MCP_ENV_PATH=<MCP_ENV_PATH> --env AUTH_BROKER_PATH=<AUTH_BROKER_PATH> --env MCP_BROWSER=<MCP_BROWSER> --env MCP_BROWSER_AUTH_PORT=<MCP_BROWSER_AUTH_PORT> --env MCP_UNSAFE=<MCP_UNSAFE> --transport stdio mcp-abap-adt-ro -- npx -y @mcp-abap-adt/core-ro`.
What does mcp-abap-adt-ro do?
It hands the agent read-only ABAP ADT tools: search, metadata, repository navigation and dependency analysis. Creating, editing or deleting objects is not part of it.
What do I need for RFC or SNC?
The SAP NW RFC library: the 64-bit sapnwrfc.dll from SAP GUI on Windows, or the SAP NW RFC SDK elsewhere. Plain HTTP needs only Node.js 22 or 24.