Sap Adt MCP
Resumen
Descripción del creador (original en inglés)
Give Claude live access to SAP ABAP via ADT: read, search, check, test, and edit objects.
Los tres pilares de PopNx MCP
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
- Opinión de usuariosiAún no hay reseñasLas reseñas se abrirán junto con las cuentas en una etapa posterior
- Nuestras revisiones básicasi1 de 1 superadasRevisado con información pública; el código aún no se ha escaneado
- UsoiMuy nuevo↓ 138/sem · ★ –
Qué puedes hacer con él
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
- Conexión: Se ejecuta en tu computadora
- Transporte: stdio
- Categoría: Búsqueda y memoria de IA
Instalación
Elige la app de IA que usas y copia la configuración.
Antes de instalar
- Revisiones básicas: 1 de 1 superadas
- Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
- Debes completar tú:
SAP_ADT_MCP_CONFIG
Necesitas
- npmNode.js instalado (para el comando npx)
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"sap-adt": {
"command": "npx",
"args": [
"-y",
"sap-adt-mcp"
],
"env": {
"SAP_ADT_MCP_CONFIG": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add sap-adt --env SAP_ADT_MCP_CONFIG=your-value -- npx -y sap-adt-mcpCompleta los valores vacíos antes de ejecutarlo.
O copia la configuración tú
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"sap-adt": {
"command": "npx",
"args": [
"-y",
"sap-adt-mcp"
],
"env": {
"SAP_ADT_MCP_CONFIG": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
O copia la configuración tú
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"sap-adt": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"sap-adt-mcp"
],
"env": {
"SAP_ADT_MCP_CONFIG": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Valores que debes completar
SAP_ADT_MCP_CONFIGenvAbsolute path to your config.json (host/client/user/password per SAP system). Defaults to ~/.sap-adt-mcp/config.json. See config.example.json in the repo.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Qué puede hacer
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisiones básicasi
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 9 nov 2026
- ✓ Superada
El creador coincide con el repo
El nombre en el registro se verificó con la cuenta de GitHub yzonur, dueña del repo
- … Aún sin revisar
Sigue en mantenimiento
Todavía no hemos leído este repo en GitHub
- … Aún sin revisar
Tiene licencia
Todavía no hemos leído este repo en GitHub
- – No aplica
El endpoint responde
Este se ejecuta en tu computadora; no hay endpoint en internet
- – No aplica
Inicio de sesión con OAuth
Se ejecuta en tu computadora y usa ajustes locales en su lugar
- … Aún sin revisar
Sin instrucciones ocultas en las descripciones de herramientas
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con otros en Búsqueda y memoria de IAi
- Más estrellas que el 0% de los otros 5764 servidores de esta categoría
- Publicado en el registro más recientemente que el 28% de los otros 5764 servidores de esta categoría
- Revisiones básicas iguales o mejores que el 100% de los otros 5764 servidores de esta categoría
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Preguntas frecuentes
¿Es seguro Sap Adt MCP?
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
¿Qué claves o códigos necesita?
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
¿Se ejecuta en mi computadora o en la nube?
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
¿Sigue en mantenimiento?
El repo de GitHub cambió por última vez –, y la última versión (0.8.57) llegó al registro hace 3 meses.
¿Qué apps pueden usarlo?
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
¿Qué puedo usar en su lugar?
En la misma categoría: Context7, Codebase Memory, Exa
Alternativas
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
README del creador
Abrir el README
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
sap-adt-mcp
MCP server giving Claude (and any MCP-compatible client) live access to SAP systems via ADT.
Read source, search the repository, run syntax checks, run unit tests, run
ATC, diff the same object across landscapes, edit and activate ABAP — all
from a chat window or an autonomous agent. No add-on installation on the SAP
stack required.
Why
SAP development is full of repetitive read-the-source / check-the-callers / diff-the-system work. AI assistants are great at exactly that kind of task — but only if they can reach the system. ADT (ABAP Development Tools) is the HTTP API that Eclipse uses; it ships with every modern NetWeaver and S/4 system. This server speaks ADT on behalf of the agent so the agent can do real work against your real systems, with the same auth and scoping you'd give a developer in Eclipse.
What's in the box
50+ high-level tools wrapped around the most common ADT endpoints, plus a generic escape hatch for anything else, plus 5 user-invokable Clean Core prompts that turn the tool surface into outcome-shaped slash commands (see Clean Core prompts below).
| Category | Tools |
|---|---|
| Connection | adt_list_systems, adt_ping, adt_system_info |
| Source CRUD | adt_get_source, adt_set_source |
| Quality | adt_syntax_check, adt_pretty_print, adt_run_unit_tests, adt_run_atc, adt_run_atc_package, adt_run_atc_transport |
| Lifecycle | adt_create_object, adt_delete_object, adt_activate, adt_lock, adt_unlock, adt_list_inactive_objects |
| Versions | adt_list_versions, adt_compare_versions |
| Discovery | adt_browse_package, adt_list_packages, adt_search_objects, adt_grep_source, adt_where_used |
| CDS | adt_cds_data_preview, adt_cds_dependencies, adt_list_released_apis |
| Cross-system | adt_compare_source, adt_transport_diff |
| Transports | adt_list_transports, adt_get_transport, adt_create_transport, adt_release_transport, adt_transport_queue |
| Runtime errors | adt_list_dumps, adt_get_dump |
| Debugger | adt_debug_set_breakpoint, adt_debug_delete_breakpoint, adt_debug_listen, adt_debug_stack, adt_debug_variables, adt_debug_step, adt_debug_goto_stack, adt_debug_set_variable, adt_debug_set_watchpoint, adt_debug_delete_watchpoint, adt_debug_stop |
| Data | adt_read_table, adt_value_help |
| Generation | adt_rap_scaffold |
| Experimental¹ | adt_get_note, adt_check_note_status, adt_implement_note, adt_list_locks, adt_schedule_job, adt_read_spool |
| Escape hatch | adt_request |
¹ Experimental tools target ADT endpoints (SNOTE, SM12 enqueues, SM36/SP01) that classic NetWeaver does not expose; on such systems they return available:false with a fall-back hint rather than failing. They work where the backing service exists (typically S/4HANA).
Multi-system aware. One config, many SAP systems (DEV / QAS / PRD or landscape-wide); switch with the system argument or compare across two with adt_compare_source / adt_transport_diff.
Safe by default. A readOnly flag (global or per-system) blocks every write method. Read-only POST queries (search, where-used, package tree) remain allowed so agents can still discover.
Robust. Per-request timeout. CSRF token negotiation with auto-retry on
- Self-signed cert opt-out. Optional debug tracing to stderr.
Structured errors. ADT's envelopes are parsed into { type, message, namespace } so failed calls don't dump XML into the agent's context window.
Install
Previously published as
claude-for-abap— that package still works but is
deprecated; new installs should use
sap-adt-mcp.
# global
npm install -g sap-adt-mcp
or run without installing
npx sap-adt-mcp
Requires Node.js 22.19+ (undici v8, used as the HTTP client, requires this minimum).
Configure
Create your config:
mkdir -p ~/.sap-adt-mcp
cp config.example.json ~/.sap-adt-mcp/config.json $EDITOR ~/.sap-adt-mcp/config.json
The server searches in this order:
$SAP_ADT_MCP_CONFIG(absolute path)~/.sap-adt-mcp/config.json./config.json(cwd at server start)
Sample config
{
"defaultSystem": "DEV", "readOnly": false, "systems": { "DEV": { "host": "https://sap-dev.example.com:44300", "client": "100", "language": "EN", "user": "DEVELOPER", "password": "env:SAP_DEV_PASSWORD", "rejectUnauthorized": false }, "QAS": { "host": "https://sap-qas.example.com:44300", "client": "200", "user": "DEVELOPER", "password": "env:SAP_QAS_PASSWORD" }, "PRD": { "host": "https://sap-prd.example.com:44300", "client": "300", "user": "READONLY", "password": "env:SAP_PRD_PASSWORD", "readOnly": true } } }
Per-system options
| Field | Meaning |
|---|---|
host | Base URL including scheme + ICM HTTPS port (e.g. https://...:44300). |
client | SAP client (sets sap-client query param). |
language | Optional logon language (sets sap-language). |
user | RFC user. |
password | Either a literal string or env:VAR_NAME to read from environment. |
rejectUnauthorized | Set false to skip TLS validation for self-signed certs. Default true. |
readOnly | Block POST / PUT / DELETE / PATCH for this system (read-only POST queries still work). |
timeoutMs | Override default 30 s request timeout. |
Read-only mode
readOnly: true (top-level or per-system) refuses any unsafe HTTP method. Whitelisted read-only POST endpoints (nodestructure, search, usagereferences, parsers, checkruns) remain available so agents can still discover and analyze without being able to modify.
Recommended: set readOnly: true for QAS and PRD profiles. Keep DEV writable.
Self-signed certificates
Many internal SAP systems use self-signed certs. "rejectUnauthorized": false disables TLS validation for that profile only. Don't set this on PRD.
Audit log
Every write the server performs against SAP (POST/PUT/DELETE/PATCH — locks, source updates, activations, transport operations) is appended to a local JSONL file, including which MCP tool triggered it and, for blocked attempts in read-only mode, the violation itself. Reads and read-only queries are not logged. Nothing leaves your machine — this is your local answer to "what exactly did the AI change?".
Default location: ~/.sap-adt-mcp/audit.log. One JSON object per line:
{"ts":"2026-06-11T12:00:00.000Z","tool":"adt_set_source","host":"https://...","sapUser":"DEVELOPER","method":"PUT","path":"/sap/bc/adt/programs/programs/ztest/source/main","status":200,"ok":true,"transport":"E4DK900123"}
Configure or disable:
{ "audit": { "enabled": false, "path": "/var/log/sap-adt-mcp/audit.log" } }
…or set SAP_ADT_MCP_AUDIT=0 (also accepts false/no/off).
Result cache
Agents repeat the same discovery calls while they reason. Results of the read-only tools adt_search_objects, adt_browse_package, adt_list_packages, adt_where_used, adt_system_info and adt_value_help are cached in memory for 60 seconds per system and argument set. Any write this server performs drops the whole cache, so you never read back a stale result of your own change; changes made elsewhere (SAP GUI, Eclipse) can be up to one TTL old. A cached result carries _meta["sap-adt-mcp/cache"] = { hit: true, ageMs }.
{ "cache": { "ttlMs": 120000 } }
"ttlMs": 0 (or SAP_ADT_MCP_CACHE_TTL_MS=0) turns it off.
Automatic error reporting
The server sends small, redacted reports to the maintainer so defects get found and fixed. This is on by default and the server prints a notice saying so on startup. There are three channels:
- Crash — a tool handler throws an unexpected error.
- ADT error — a tool returns a non-2xx ADT response that the classifier flags as a likely tool bug (406/415 content negotiation, malformed requests, server dispatcher blow-ups). User/business-side responses (401/403/404, lock and enqueue conflicts, data-preview SQL errors) are not reported.
- Agent-reported — the calling agent files a defect the other two channels can't see (wrong data in a successful response, an ignored parameter, a missing capability) via the `adt_report_issue` tool.
What is sent: the sap-adt-mcp version, Node version, OS, the tool name, and the error/finding with a fingerprint for de-duplication, plus an anonymous install id (random bytes, cached at ~/.sap-adt-mcp/install-id) that lets repeat reports from the same install be grouped for triage — it identifies neither you nor your system. Before anything leaves your machine it is scrubbed of hostnames, users, passwords, tokens, IPs, and emails; tool arguments and free-text fields are redacted the same way. Reports go to a relay the maintainer owns, which files/de-dups a GitHub issue — the relay holds the GitHub credentials, never this package.
Turn it all off:
{ "reporting": { "enabled": false } }
…or set SAP_ADT_MCP_REPORT=0 (also accepts false/no/off). Finer control:
| Key | Default | Effect |
|---|---|---|
reporting.enabled | true | Master switch for all three channels. |
reporting.adtErrors | true | Channel 2 (auto-report flagged ADT errors). |
reporting.allowManual | true | Channel 3 (the adt_report_issue tool). |
reporting.includeArgs | true | Include redacted tool args / repro args. Note: object names can appear here. |
reporting.endpoint | relay URL | Point at your own relay (see worker/). |
Connect a client
Claude Code (CLI)
claude mcp add sap-adt -- npx sap-adt-mcp
Pass secrets through the registration:
claude mcp add sap-adt \
--env SAP_DEV_PASSWORD=... \ --env SAP_PRD_PASSWORD=... \ -- npx sap-adt-mcp
Claude Desktop
Edit claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": { "sap-adt": { "command": "npx", "args": ["-y", "sap-adt-mcp"], "env": { "SAP_DEV_PASSWORD": "..." } } } }
Quit and restart Claude Desktop fully (system tray → Quit) for the change to apply.
Validate before connecting
npx sap-adt-mcp --validate-config
Loads the config and pings every system; exits non-zero if any are unreachable or rejecting credentials. Run this first when troubleshooting.
Tools
Object-source CRUD
| Tool | Purpose | Notes |
|---|---|---|
adt_get_source | Fetch ABAP source by object name + type. | Returns plain text. For classes, pick the include via include: main (default), definitions, implementations, macros, testclasses. Function modules require group. For large objects, pass outputFile to write the source straight to disk (response omits inline source). |
adt_set_source | Replace source. Orchestrates lock → PUT → unlock. | Supply the new source inline via source, or via sourceFile (a local path the MCP reads itself) for large objects that exceed the per-call I/O cap. Optional transport assigns the change to a TR (corrNr); optional lockHandle reuses an externally-acquired lock. Refused under readOnly: true. |
| adt_create_object | Create a new ABAP object in a package. | Supported types: program, class, interface, include, functiongroup, function, cds, accesscontrol, metadataext, beh
Solo se muestra el principio; lee el resto en el repo