sap-adt-mcp
sap-adt-mcp
Servidor MCP y cliente Python para la API REST de SAP ADT (ABAP Development Tools). Da a tu asistente de IA las mismas operaciones que usa Eclipse ADT — buscar en el repositorio, leer y escribir código fuente, activar, verificar sintaxis y trabajar con solicitudes de transporte — hablando con los mismos endpoints /sap/bc/adt/*.
Documentación técnica completa también en inglés: docs/PROJECT_DOCUMENTATION.md.
Lo que se puede hacer
Buscar y navegar — objetos por comodín (
Z*,ZCL_*), contenido de paquetes (incluido con namespace/ACME/PKG) y metadatosLeer y escribir fuente — con bloqueo, asignación de transporte y activación en una sola llamada; opcionalmente guardando/leyendo archivos locales
Activar y verificar sintaxis — con mensajes de error por línea y columna
Transportes — listar, crear, liberar y comprobar si un objeto necesita uno
Crear objetos — programas, clases, interfaces y paquetes (locales o transportables)
Exportar DDIC en Markdown — tablas, elementos de datos, dominios y vistas se convierten en contexto legible para la IA
Funcionar en releases antiguos — los media types se negocian por endpoint y
sap_system_infoindica qué soporta ese sistema
Las credenciales quedan en el administrador de credenciales del sistema operativo; ninguna contraseña se guarda en archivos del proyecto.
Related MCP server: mcp-abap-abap-adt-api
Requisitos
Requisito | Mínimo | Verificación |
Python | 3.10+ |
|
Sistema SAP | NetWeaver 7.31 SP04+ con el nodo ICF |
|
Cliente MCP | Cursor, Claude Code, Claude Desktop, VS Code u otro con soporte MCP | — |
Red | acceso al host y puerto del SAP | — |
Los requisitos previos del lado SAP (servicios ICF, roles y objetos de autorización) se detallan en la sección 6 de la referencia de comandos.
Instalación
Directamente desde GitHub (recomendada)
pip install git+https://github.com/engoetz/sap-adt-mcpEsto registra dos comandos en el PATH:
Comando | Para qué |
| gestionar conexiones desde el terminal (contraseña en prompt oculto) |
| ejecutar el servidor MCP (stdio) |
Sin instalar nada permanentemente, con uv:
uvx --from git+https://github.com/engoetz/sap-adt-mcp sap-adt-mcpDesde el código fuente (para desarrollar)
git clone https://github.com/engoetz/sap-adt-mcp
cd sap-adt-mcp
python -m venv .venv && .venv/Scripts/activate # Linux/macOS: source .venv/bin/activate
pip install -e ".[dev]"
python -m pytest tests -qConfigurar en el cliente MCP
Después de la instalación, el comando sap-adt-mcp ya está en el PATH — no hace falta ruta absoluta:
{
"mcpServers": {
"sap-adt": {
"command": "sap-adt-mcp",
"args": []
}
}
}Dónde colocar este bloque:
Cliente | Archivo |
Cursor (global) |
|
Cursor (por proyecto) |
|
Claude Code |
|
Claude Desktop |
|
Si prefieres ejecutarlo directamente desde el código fuente, sin instalar el paquete, cámbialo por "command": "python", "args": ["/caminho/para/sap-adt-mcp/scripts/run_mcp.py"].
Verificar
En Cursor, el servidor aparece como user-sap-adt en Settings > MCP. Para probar en cualquier cliente, pide sap_list_environments() — debe devolver la lista de conexiones guardadas.
Problema | Solución |
El servidor no aparece | Comprueba la ruta del archivo de configuración y reabre el cliente |
Servidor en rojo | Ejecuta |
| El paquete se instaló en otro entorno virtual |
| Ejecuta |
| Ejecuta |
Credenciales
Desde el terminal (recomendado)
sap-adt add DEVEl comando pregunta host, puerto, mandante, usuario, idioma y HTTPS (Enter acepta el valor sugerido) y, por último, la contraseña — escrita dos veces, sin eco en pantalla. Así no entra en el historial del shell ni en el historial de la conversación con la IA.
sap-adt list # conexões salvas e se têm senha
sap-adt edit DEV --port 8020 # alterar campos sem tocar na senha
sap-adt password DEV # trocar apenas a senha
sap-adt test DEV # conectar e sondar os endpoints ADT
sap-adt delete DEV # remover conexão e senhaNo existe el parámetro
--password: por definición, la contraseña solo se introduce por prompt. Para automatización, se acepta la variableSAP_PASSWORD.
La contraseña va al keyring del SO (Windows Credential Manager, macOS Keychain, Linux Secret Service). Los demás parámetros quedan en ~/.sap-adt/environments.json, fuera del proyecto.
Desde el chat
sap_save_password(system_id="DEV", host="...", port=8000, client="100", user="username", password="...") hace lo mismo — pero la contraseña queda registrada en la conversación. Prefiere el terminal.
Primer uso
sap_connect(system_id="DEV")
sap_system_info() # o que este sistema suporta (rode em release antiga)
sap_search(query="Z*", object_type="CLAS")
sap_read_source(object_name="ZCL_MINHA_CLASSE", object_type="CLAS")
sap_write_source(
object_name="ZCL_MINHA_CLASSE",
object_type="CLAS",
source_code="...",
transport_request="DEVK900123"
)Fuera del cliente MCP, sap-adt test DEV hace el mismo diagnóstico desde el terminal.
Compatibilidad entre releases
Los sistemas más antiguos (ECC, NetWeaver 7.3x) exponen un subconjunto del ADT y no siempre entienden las mismas versiones de media type. El cliente lo gestiona solo:
Media types negociados por endpoint, del más nuevo al más antiguo, memorizando lo que funcionó
Discovery con alternativas cuando
/sap/bc/adt/discoveryno está activo en SICFTransporte enviado de las dos formas (
corrNren la query y headersap-transportrequest)sap_system_infosondea los endpoints e indica qué herramientas no funcionarán allí
Detalles en la sección 6.7 de la referencia.
Herramientas MCP (25)
Conexión y credenciales
Herramienta | Descripción |
| Autenticar en el sistema SAP (admite entornos guardados) |
| Cerrar la conexión actual (permite cambiar de sistema) |
| Diagnóstico: qué endpoints ADT soporta el sistema |
| Listar servicios ADT disponibles |
| Almacenar credenciales en el administrador de credenciales del SO |
| Eliminar credenciales guardadas |
| Listar entornos SAP guardados |
Repositorio
Herramienta | Descripción |
| Buscar objetos ABAP (CLAS, PROG, INTF, FUGR, TABL) |
| Listar contenido de paquetes (admite namespaces) |
| Obtener detalles de un objeto (nombre, tipo, paquete, responsable) |
| Exportar metadatos DDIC como Markdown |
Código fuente
Herramienta | Descripción |
| Leer código fuente ABAP (opcional: guardar en archivo local) |
| Escribir fuente con bloqueo automático, transporte y activación |
| Compilar/activar objetos |
| Verificación de sintaxis sin activar |
Transportes
Herramienta | Descripción |
| Verificar el estado de bloqueo del objeto |
| Listar solicitudes de transporte abiertas |
| Crear una nueva solicitud de transporte |
| Liberar una solicitud de transporte |
| Verificar si el objeto necesita transporte |
Creación y eliminación
Herramienta | Descripción |
| Crear un nuevo programa ABAP |
| Crear una nueva clase ABAP |
| Crear una nueva interfaz ABAP |
| Crear un nuevo paquete ABAP (DEVC), local o transportable |
| Eliminar objeto ABAP (requiere |
Parámetros, ejemplos y retornos de cada una: docs/MCP_COMMAND_REFERENCE.md
Arquitectura
Cliente MCP → servidor MCP (stdio/JSON-RPC) → cliente REST ADT → SAP /sap/bc/adt/*src/sap_adt/
├── client.py # HTTP: autenticação, CSRF, sessões stateful, negociação de media type
├── credential_store.py # ~/.sap-adt/environments.json + keyring do SO
├── repository.py # pesquisa, navegação de pacotes, metadados
├── source.py # leitura/escrita de fonte com bloqueio
├── activation.py # ativação e verificação de sintaxe
├── transport.py # transport requests (CTS)
├── ddic_export.py # DDIC → Markdown
├── cli.py # comando `sap-adt`
├── models.py # dataclasses
├── exceptions.py # hierarquia de exceções
└── mcp_server.py # servidor MCP com as 25 ferramentasDependencia | Finalidad |
| cliente HTTP de la API REST ADT |
| SDK del Model Context Protocol (FastMCP) |
| parsing de XML |
| credenciales en el administrador del SO |
Desarrollo
pip install -e ".[dev]"
python -m pytest tests -qLas pruebas son offline: no se necesita ningún sistema SAP ni red. Cubren la resolución de URI, los parsers de XML alimentados con respuestas estáticas (incluido el formato de releases antiguos) y el CLI. El CI ejecuta la suite en Linux y Windows, Python 3.10 y 3.13, y verifica que el paquete compila.
Las contribuciones y los informes de problemas son bienvenidos a través de las issues. Al abrir una issue, no pegues hostname, usuario, mandante ni fragmentos de código propietario — describe el comportamiento y, si es posible, incluye la salida de sap_system_info.
Documentación
Documento | Contenido |
Referencia de comandos: parámetros, ejemplos, requisitos previos de SAP y el manual del CLI | |
Documentación técnica completa (inglés) | |
Documentación técnica completa (portugués) | |
Reglas de trabajo para el asistente que usa las herramientas |
Licencia
Proyecto independiente, sin afiliación, patrocinio ni respaldo de SAP SE. SAP, ABAP y SAP NetWeaver son marcas de SAP SE. La herramienta solo consume la API ADT documentada públicamente, con las credenciales del propio usuario.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to access SAP ADT APIs for reading, writing, debugging, deploying, and testing ABAP code through natural language or DSL automation.448MIT
- AlicenseCqualityCmaintenanceEnables interaction with SAP ABAP systems through ADT APIs, allowing management of ABAP objects, transport requests, and code analysis via natural language.100148MIT
- AlicenseCqualityCmaintenanceFacilitates interaction with SAP ABAP systems via ADT APIs, enabling object management, transport handling, and code analysis.100148MIT
- FlicenseAqualityCmaintenanceEnables AI agents to read, write, activate, and transport ABAP code in SAP systems via ABAP ADT REST API, without needing SAP GUI.424
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/engoetz/sap-adt-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server