ABAP Development Tools (ADT)

Un servidor MCP para interactuar con sistemas SAP utilizando ABAP Development Tools (ADT).

Documentación

mcp-abap-adt: Tu puerta de entrada a ABAP Development Tools (ADT)

Este proyecto proporciona un servidor que te permite interactuar con sistemas SAP ABAP utilizando el Model Context Protocol (MCP). Piénsalo como un puente que permite a herramientas como FLUJO, Claude o Cline (una extensión de VS Code) comunicarse con tu sistema ABAP y recuperar información como código fuente, estructuras de tablas y más. ¡Es como tener un control remoto para tu entorno de desarrollo ABAP!

El servidor está publicado en npm como mcp-abap-adt y listado en el MCP Registry como io.github.mario-andreschak/mcp-abap-adt, por lo que la mayoría de los clientes MCP pueden instalarlo con un solo comando.

Esta guía está diseñada para principiantes, así que repasaremos todo paso a paso. Cubriremos:

  1. Requisitos previos: Lo que necesitas antes de comenzar.
  2. Instalación y configuración: Poner todo en marcha.
  3. Ejecutar el servidor: Iniciar el servidor en diferentes modos.
  4. Integración con FLUJO: La forma más fácil: instalación con un clic desde Spotlight/Marketplace.
  5. Integración con Cline: Conectar este servidor a la extensión Cline de VS Code.
  6. Integración con Claude Desktop: Añadir el servidor a la aplicación Claude Desktop.
  7. Integración con Claude Code: Añadir el servidor mediante .mcp.json o el CLI.
  8. Solución de problemas: Problemas comunes y soluciones.
  9. Herramientas disponibles: Una lista de los comandos que puedes usar.

1. Requisitos previos

Antes de comenzar, necesitarás algunas cosas:

  • Un sistema SAP ABAP: Este servidor se conecta a un sistema ABAP existente. Necesitarás:

    • La URL del sistema (por ejemplo, https://my-sap-system.com:8000)
    • Un nombre de usuario y contraseña válidos para ese sistema.
    • El número de cliente SAP (por ejemplo, 100).
    • Asegúrate de que tu sistema SAP permita conexiones mediante ADT (ABAP Development Tools). Esto normalmente implica asegurarse de que los servicios necesarios estén activados en la transacción SICF. Tu administrador de basis puede ayudarte con esto. Específicamente, necesitarás que los siguientes servicios estén activos:
      • /sap/bc/adt
  • Node.js y npm: Node.js es un entorno de ejecución de JavaScript que te permite ejecutar código JavaScript fuera de un navegador web. npm (Node Package Manager) está incluido con Node.js y se usa para instalar paquetes (bibliotecas de código).

    • Descargar Node.js. Elige la versión LTS (Long Term Support). Esta es la versión más estable. Sigue las instrucciones de instalación para tu sistema operativo. Asegúrate de incluir npm en la instalación (normalmente viene incluido por defecto).
    • Verificar instalación: Después de instalar Node.js, abre una nueva terminal (símbolo del sistema en Windows, Terminal en macOS/Linux) y escribe:
      node -v
      npm -v
      
      Deberías ver números de versión tanto para Node.js como para npm. Si ves un error, Node.js podría no estar instalado correctamente, o podría no estar en la variable PATH de tu sistema. (Ver Solución de problemas abajo).
  • Git (o GitHub Desktop) (opcional en la mayoría de los casos): Usaremos Git para descargar el código del proyecto. Tienes dos opciones:

    • Git: La herramienta de línea de comandos. Descargar Git. Elige la versión para tu sistema operativo (Windows, macOS, Linux). Sigue las instrucciones de instalación.
    • GitHub Desktop: Una interfaz gráfica de usuario para Git. ¡Más fácil para principiantes! Descargar GitHub Desktop. Sigue las instrucciones de instalación.

2. Instalación y configuración

Ahora, obtengamos el código del proyecto y configurémoslo:

Instalar con FLUJO (recomendado)

Ver Integración con FLUJO

Instalar desde npm

El servidor está publicado en npm, por lo que no necesitas clonar ni compilar nada. La mayoría de los clientes MCP pueden ejecutarlo directamente con npx:

npx -y mcp-abap-adt

Normalmente lo configurarás dentro de tu cliente MCP en lugar de ejecutarlo manualmente: apunta el cliente al comando npx con argumentos ["-y", "mcp-abap-adt"] y proporciona tus credenciales SAP como variables de entorno (SAP_URL, SAP_USERNAME, SAP_PASSWORD, SAP_CLIENT; opcionalmente SAP_LANGUAGE, TLS_REJECT_UNAUTHORIZED). Consulta las secciones de integración abajo para y Cline.

Para instalarlo globalmente en su lugar:

npm install -g mcp-abap-adt

Instalación manual (desde el código fuente)

  1. Clonar el repositorio:

    • Usando Git (línea de comandos):
      1. Abre una terminal (símbolo del sistema o Terminal).
      2. Navega al directorio donde quieras almacenar el proyecto. Por ejemplo, para ponerlo en tu escritorio:
        cd Desktop
        
      3. Clona el repositorio:
        git clone https://github.com/mario-andreschak/mcp-abap-adt
        
      4. Cambia al directorio del proyecto:
        cd mcp-abap-adt  # Or whatever the folder name is
        
    • Usando GitHub Desktop:
      1. Abre GitHub Desktop.
      2. Haz clic en "File" -> "Clone Repository...".
      3. En la pestaña "URL", pega la URL del repositorio.
      4. Elige una ruta local (donde quieras guardar el proyecto en tu computadora).
      5. Haz clic en "Clone".
  2. Instalar dependencias: Esto descarga todas las bibliotecas necesarias que requiere el proyecto. En la terminal, dentro del directorio raíz, ejecuta:

    npm install
    

    Esto podría tomar unos minutos.

  3. Compilar el proyecto: Esto compila el código a un formato ejecutable.

    npm run build
    
  4. Crear un archivo .env: Este archivo almacena información sensible como tus credenciales SAP. Es muy importante mantener este archivo seguro.

    1. En el directorio raíz, crea un nuevo archivo llamado .env (sin extensión).
    2. Abre el archivo .env en un editor de texto (como Notepad, VS Code, etc.).
    3. Añade las siguientes líneas, reemplazando los marcadores con la información real de tu sistema SAP: Importante: Si tu contraseña contiene el carácter "#", asegúrate de encerrar tu contraseña entre comillas.
      SAP_URL=https://your-sap-system.com:8000  # Your SAP system URL
      SAP_USERNAME=your_username              # Your SAP username
      SAP_PASSWORD=your_password              # Your SAP password
      SAP_CLIENT=100                         # Your SAP client
      
      Importante: Nunca compartas tu archivo .env con nadie, y nunca lo incluyas en un repositorio de Git.

3. Ejecutar el servidor

Para ser justos, normalmente no "ejecutas" este servidor por sí solo. Está diseñado para integrarse en un cliente MCP como Claude, FLUJO, Cline, etc. Pero puedes ejecutar el servidor manualmente de dos formas principales:

  • Modo independiente: Esto ejecuta el servidor directamente y mostrará mensajes en la terminal. El servidor arrancará y esperará conexiones de clientes, de modo que podría resultar inútil excepto para ver si arranca.
  • Modo desarrollo/depuración: Esto ejecuta el servidor con el MCP Inspector. Puedes abrir la URL que genera en tu navegador y empezar a experimentar.

3.1 Modo independiente

Para ejecutar el servidor en modo independiente, usa el siguiente comando en la terminal (desde el directorio raíz):

npm run start

Deberías ver mensajes en la terminal indicando que el servidor está en ejecución. Escuchará conexiones de clientes MCP. El servidor seguirá ejecutándose hasta que lo detengas (normalmente con Ctrl+C).

3.2 Modo desarrollo/depuración (con Inspector)

Este modo es útil para depurar.

  1. Inicia el servidor en modo depuración:
    npm run dev
    
    Esto iniciará el servidor y mostrará un mensaje como: 🔍 MCP Inspector is up and running at http://localhost:5173 🚀. Esta es la URL que usarás para abrir el inspector MCP en tu navegador.

4. Integración con

FLUJO es la forma más fácil de usar este servidor: sin clonar, compilar ni editar configuraciones JSON. mcp-abap-adt es un servidor de Spotlight seleccionado, por lo que se instala con un solo clic:

  1. En FLUJO, navega a MCP.
  2. Haz clic en Add Server.
  3. En la pestaña Spotlight, haz clic en mcp-abap-adt (o cambia a la pestaña Marketplace y búscalo allí).
  4. FLUJO obtiene el paquete automáticamente y abre la pestaña Local Server. Introduce tu URL de SAP, Usuario y Contraseña (y cliente), luego haz clic en Save.

Eso es todo: FLUJO descarga y ejecuta el paquete npm por ti.

Transporte Streamable HTTP (a través de FLUJO)

mcp-abap-adt se ejecuta sobre stdio. Si necesitas alcanzarlo a través de streamable HTTP — por ejemplo, desde otra aplicación en tu máquina o un cliente que solo hable HTTP — deja que FLUJO lo re-aloje: instala el servidor en FLUJO como se indicó antes, luego activa "Expose to external apps" en el servidor. El mcp-proxy integrado de FLUJO entonces lo sirve a través de HTTP en http://localhost:4200/mcp-proxy/mcp-abap-adt, y cualquier cliente MCP capaz de HTTP puede conectarse con una configuración como:

{
  "mcpServers": {
    "mcp-abap-adt": {
      "type": "http",
      "url": "http://localhost:4200/mcp-proxy/mcp-abap-adt"
    }
  }
}

FLUJO mantiene tus credenciales SAP con el servidor instalado, por lo que la configuración HTTP no lleva ninguna.

5. Integración con Cline

Cline es una extensión de VS Code que usa servidores MCP para proporcionar soporte de idiomas. Aquí se explica cómo conectar este servidor ABAP a Cline:

  1. Instalar Cline: Si aún no lo has hecho, instala la extensión "Cline" en VS Code.

  2. Abrir la configuración de Cline:

    • Abre la configuración de VS Code (File -> Preferences -> Settings, o Ctrl+,).
    • Busca "Cline MCP Settings".
    • Haz clic en "Edit in settings.json". Esto abrirá el archivo cline_mcp_settings.json. La ruta completa suele ser algo como: C:\Users\username\AppData\Roaming\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json (reemplaza username con tu nombre de usuario de Windows).
  3. Añadir la configuración del servidor: Debes añadir una entrada al objeto mcpServers en el archivo cline_mcp_settings.json. La forma recomendada es ejecutar el paquete npm publicado a través de npx y pasar tus credenciales SAP como variables de entorno — sin necesidad de compilación local:

    {
      "mcpServers": {
        "mcp-abap-adt": {
          "command": "npx",
          "args": ["-y", "mcp-abap-adt"],
          "env": {
            "SAP_URL": "https://your-sap-system.com:8000",
            "SAP_USERNAME": "your_username",
            "SAP_PASSWORD": "your_password",
            "SAP_CLIENT": "100"
          },
          "disabled": false,
          "autoApprove": []
        }
        // ... other server configurations ...
      }
    }
    

    Si instalaste desde el código fuente (ver Instalación manual), apunta command a node con una ruta absoluta a la salida de compilación, por ejemplo "args": ["C:/PATH_TO/mcp-abap-adt/dist/index.js"], y configura las credenciales a través del archivo .env.

  4. Probar la conexión:

    • Cline debería conectarse automáticamente al servidor. Verás el servidor aparecer en el panel "MCP Servers" (en la extensión de Cline, encontrarás diferentes botones en la parte superior).
    • Pide a Cline que obtenga el código fuente de un programa y debería mencionar el servidor MCP e intentar usar las herramientas correspondientes.

6. Integración con Claude Desktop

Claude Desktop puede ejecutar este servidor directamente a través del paquete npm publicado.

  1. Abre Claude Desktop → SettingsDeveloperEdit Config. Esto abre claude_desktop_config.json. El archivo se encuentra en:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  2. Añade una entrada mcp-abap-adt bajo mcpServers, completando tus credenciales SAP:

    {
      "mcpServers": {
        "mcp-abap-adt": {
          "command": "npx",
          "args": ["-y", "mcp-abap-adt"],
          "env": {
            "SAP_URL": "https://your-sap-system.com:8000",
            "SAP_USERNAME": "your_username",
            "SAP_PASSWORD": "your_password",
            "SAP_CLIENT": "100"
          }
        }
      }
    }
    
  3. Guarda el archivo y reinicia Claude Desktop. Las herramientas de ABAP aparecen en el menú de herramientas (🔨).

Consejo para Windows: si npx no se encuentra, establece "command": "npx.cmd", o usa la ruta completa a node con la ruta absoluta a dist/index.js desde una instalación desde el código fuente.

7. Integración con Claude Code

Claude Code lee servidores MCP de un archivo .mcp.json en la raíz de tu proyecto (compartido con tu equipo) o desde el ámbito de usuario/proyecto a través del CLI.

Opción A — .mcp.json en la raíz de tu proyecto:

{
  "mcpServers": {
    "mcp-abap-adt": {
      "command": "npx",
      "args": ["-y", "mcp-abap-adt"],
      "env": {
        "SAP_URL": "https://your-sap-system.com:8000",
        "SAP_USERNAME": "your_username",
        "SAP_PASSWORD": "your_password",
        "SAP_CLIENT": "100"
      }
    }
  }
}

Debido a que este archivo se compromete en tu repositorio, evita poner contraseñas reales en él — usa valores de marcador de posición que cada desarrollador complete localmente, o referencia variables de entorno (Claude Code expande ${VAR} en .mcp.json), por ejemplo "SAP_PASSWORD": "${SAP_PASSWORD}".

Opción B — añadirlo desde el CLI:

claude mcp add mcp-abap-adt \
  --env SAP_URL=https://your-sap-system.com:8000 \
  --env SAP_USERNAME=your_username \
  --env SAP_PASSWORD=your_password \
  --env SAP_CLIENT=100 \
  -- npx -y mcp-abap-adt

Añade --scope project para escribirlo en el .mcp.json compartido, o --scope user para hacerlo disponible en todos tus proyectos. Verifica con claude mcp list.

8. Solución de problemas

  • node -v o npm -v da error:
    • Asegúrate de que Node.js esté instalado correctamente. Primero intenta cerrar la Terminal/Powershell/cmd.exe en la que estabas ejecutando el comando. Intenta reiniciar tu computadora. Intenta reinstalarlo.
    • Asegúrate de que el directorio de instalación de Node.js esté en la variable de entorno PATH de tu sistema. En Windows, puedes editar las variables de entorno a través de Propiedades del Sistema (busca "variables de entorno" en el Menú Inicio).
  • npm install falla:
    • Asegúrate de tener conexión a internet.
    • Intenta eliminar la carpeta node_modules y ejecutar npm install nuevamente.
    • Si estás detrás de un proxy, es posible que necesites configurar npm para usar el proxy. Busca en línea "npm proxy settings".
  • Cline no se conecta al servidor:
    • Verifica dos veces la configuración en cline_mcp_settings.json. Debe ser la ruta absoluta correcta al directorio root-server, y usar dobles barras invertidas en Windows.
    • Asegúrate de que el servidor esté corriendo (usa npm run start para verificar).
    • Reinicia VS Code.
    • Alternativamente:
    • Navega a la carpeta raíz de mcp-abap-adt en tu Explorador, haz Shift+Clic derecho y selecciona "Abrir Powershell aquí". (O abre un Powershell y navega a la carpeta usando cd C:/PATH_TO/mcp-abap-adt/
    • Ejecuta "npm install"
    • Ejecuta "npm run build"
    • Ejecuta "npx @modelcontextprotocol/inspector node dist/index.js"
    • Abre tu navegador en la URL que genere. Haz clic en "connect" en el lado izquierdo.
    • Haz clic en "Tools" en la parte superior, luego haz clic en "List Tools"
    • Haz clic en GetProgram y escribe "SAPMV45A" o cualquier otro nombre de Reporte como Program Name en el lado derecho
    • Prueba y observa cuál es la salida
  • Errores de conexión SAP:
    • Verifica tus credenciales de SAP en el archivo .env.
    • Asegúrate de que el sistema SAP esté en ejecución y sea accesible desde tu red.
    • Asegúrate de que tu usuario de SAP tenga las autorizaciones necesarias para acceder a los servicios de ADT.
    • Verifica que los servicios de ADT requeridos estén activados en la transacción SICF.
    • Si estás usando certificados autofirmados o hay un problema con la configuración http de tu sistema SAP, asegúrate de configurar TLS_REJECT_UNAUTHORIZED como se describió anteriormente.

9. Herramientas disponibles

Este servidor proporciona las siguientes herramientas, que se pueden usar a través de FLUJO, Cline, Claude Desktop, Claude Code o cualquier otro cliente MCP:

Nombre de herramientaDescripciónParámetros de entradaEjemplo de uso (en Cline)
GetProgramObtener el código fuente de un programa ABAP.program_name (cadena): Nombre del programa ABAP.@tool GetProgram program_name=ZMY_PROGRAM
GetClassObtener el código fuente de una clase ABAP.class_name (cadena): Nombre de la clase ABAP.@tool GetClass class_name=ZCL_MY_CLASS
GetFunctionGroupObtener el código fuente de un grupo de funciones ABAP.function_group (cadena): Nombre del grupo de funciones@tool GetFunctionGroup function_group=ZMY_FUNCTION_GROUP
GetFunctionObtener el código fuente de un módulo de función ABAP.function_name (cadena), function_group (cadena)@tool GetFunction function_name=ZMY_FUNCTION function_group=ZFG
GetStructureObtener una estructura ABAP.structure_name (cadena): Nombre de la estructura DDIC.@tool GetStructure structure_name=ZMY_STRUCT
GetTableObtener la estructura de una tabla ABAP.table_name (cadena): Nombre de la tabla de base de datos ABAP.@tool GetTable table_name=ZMY_TABLE
GetTableContentsObtener el contenido de una tabla ABAP.table_name (cadena), max_rows (número, opcional, predeterminado 100)@tool GetTableContents table_name=ZMY_TABLE max_rows=50
GetCDSViewObtener el código fuente de una vista CDS (fuente DDL).cds_view_name (cadena): Nombre de la vista CDS (nombre del fuente DDL).@tool GetCDSView cds_view_name=I_CURRENCY
GetPackageObtener detalles de un paquete ABAP.package_name (cadena): Nombre del paquete ABAP.@tool GetPackage package_name=ZMY_PACKAGE
GetTypeInfoObtener información de tipos ABAP.type_name (cadena): Nombre del tipo ABAP.@tool GetTypeInfo type_name=ZMY_TYPE
GetIncludeObtener el código fuente de un include ABAPinclude_name (cadena): nombre del include ABAP`@tool GetInclude include_name=ZMY_INCLUDE
SearchObjectBuscar objetos ABAP usando búsqueda rápida.query (cadena), maxResults (número, opcional, predeterminado 100)@tool SearchObject query=ZMY* maxResults=20
GetInterfaceObtener el código fuente de una interfaz ABAP.interface_name (cadena): Nombre de la interfaz ABAP.@tool GetInterface interface_name=ZIF_MY_INTERFACE
GetTransactionObtener detalles de una transacción ABAP.transaction_name (cadena): Nombre de la transacción ABAP.@tool GetTransaction transaction_name=ZMY_TRANSACTION
GetBehaviorDefinitionObtener el fuente de una Definición de Comportamiento RAP (BDEF). Requiere ~NW 7.54 / S/4HANA.behavior_definition_name (cadena): Nombre de la Definición de Comportamiento RAP.@tool GetBehaviorDefinition behavior_definition_name=ZMY_ENTITY
GetServiceDefinitionObtener el fuente de una Definición de Servicio RAP (SRVD). Requiere ~NW 7.54 / S/4HANA.service_definition_name (cadena): Nombre de la Definición de Servicio RAP.@tool GetServiceDefinition service_definition_name=ZMY_SERVICE
ABAP ADT MCP server