ADT MCP Server
Un servidor MCP para ABAP Development Tools (ADT) que expone varias herramientas de lectura del repositorio ABAP a través de una interfaz estandarizada.
Documentación
Servidor ADT MCP
Este repositorio proporciona un servidor de Protocolo de Contexto de Modelo (MCP) para Herramientas de Desarrollo ABAP (ADT), exponiendo varias herramientas de lectura del repositorio ABAP (programa, clase, función, include, interfaz, estructura, tabla, where-used, etc.) a través de una interfaz MCP estandarizada.
🆕 ¡Ahora incluye soporte para SAP BTP (Plataforma de Tecnología de Negocios) con autenticación JWT y utilidades de claves de servicio!
📚 Inicio rápido: Consulte QUICK_START.md para instrucciones de configuración inmediatas.
🔌 Conexiones de clientes: Consulte MCP_CLIENT_CONNECTIONS.md para conectarse a Cline, Claude Desktop y otros clientes MCP.
📖 Documentación: La documentación completa está disponible en la carpeta doc/.
Requisitos previos
- Python 3.9+
- pip (el instalador de paquetes de Python)
- Un sistema SAP ABAP en ejecución con servicios ADT habilitados
- Un archivo
.enven la raíz del proyecto con su configuración de conexión SAP (ver más abajo)
Configuración
-
Clonar el repositorio
git clone https://github.com/<your-org>/<your-repo>.git cd <your-repo>Nota: El servidor MCP ahora puede ejecutarse desde cualquier directorio, no solo desde el directorio del proyecto. Consulte REMOTE_CONNECTION_GUIDE.md para más detalles.
Opciones de transporte: El servidor admite múltiples protocolos de transporte: STDIO (predeterminado), SSE y HTTP Streamable.
-
Crear y activar un entorno virtual
python -m venv .venv source .venv/bin/activate # Linux/macOS .\.venv\Scripts\activate # Windows -
Instalar dependencias
pip install mcp "mcp[cli]"Luego instale:
pip install -r requirements.txt -
Configurar variables de entorno
Copie el ejemplo
.env.examplea.envy complete sus credenciales SAP:Para sistemas On-Premise (Autenticación básica)
SAP_AUTH_TYPE=basic SAP_URL=https://my.sap.system:443 SAP_CLIENT=100 SAP_USER=YOUR_USER SAP_PASS=YOUR_PASS SAP_VERIFY_SSL=true # Optional timeout configuration (in seconds) SAP_TIMEOUT_DEFAULT=45 # Default timeout (45 seconds) SAP_TIMEOUT_CSRF=15 # CSRF token timeout (15 seconds) SAP_TIMEOUT_LONG=60 # Long operations timeout (60 seconds)Para sistemas BTP (Autenticación JWT)
SAP_AUTH_TYPE=jwt SAP_URL=https://your-system.abap.region.hana.ondemand.com SAP_JWT_TOKEN=eyJhbGciOiJSUzI1NiIsImp... SAP_VERIFY_SSL=true # Optional timeout configuration (in seconds) SAP_TIMEOUT_DEFAULT=45 # Default timeout (45 seconds) SAP_TIMEOUT_CSRF=15 # CSRF token timeout (15 seconds) SAP_TIMEOUT_LONG=60 # Long operations timeout (60 seconds)💡 Consejo: ¡Use las utilidades BTP incluidas para generar archivos .env automáticamente a partir de claves de servicio!
🚀 Integración BTP
Este servidor ahora incluye soporte integral para SAP BTP con:
- Autenticación de token JWT para sistemas ABAP BTP
- Análisis de claves de servicio y análisis
- Generación automática de .env a partir de claves de servicio BTP
- Utilidad CLI para una fácil gestión de configuración
Configuración rápida de BTP
- Descargue su clave de servicio desde el cockpit de BTP
- Genere el archivo .env usando la utilidad CLI:
python btp_env_generator.py --service-key service-key.json --username your-user@company.com --prompt-password - Use el archivo .env generado en su proyecto
Para detalles completos de integración BTP, consulte BTP_INTEGRATION_GUIDE.md.
Herramientas disponibles
Herramientas del repositorio ABAP
get_program_source_mcp– Recuperar código fuente de programa ABAPget_class_source_mcp– Recuperar código fuente de clase ABAPget_function_group_source_mcp– Recuperar código fuente de grupo de funcionesget_function_source_mcp– Recuperar código fuente de módulo de funcionesget_include_source_mcp– Recuperar código fuente de includeget_interface_source_mcp– Recuperar código fuente de interfazget_structure_source_mcp– Recuperar definición de estructuraget_table_source_mcp– Recuperar definición de tablaget_table_contents_mcp– Obtener datos de tabla (máximo de filas predeterminado 100)get_package_structure_mcp– Recuperar metadatos de paqueteget_type_info_mcp– Recuperar información de tipoget_transaction_properties_mcp– Recuperar propiedades de transacciónget_search_objects_mcp– Búsqueda rápida de objetos del repositorioget_usage_references_mcp– Recuperar referencias where-used para cualquier objetoget_cds_source_mcp– Recuperar código fuente de vista CDSget_metadata_extension_source_mcp– Recuperar código fuente de extensión de metadatosget_sql_query_mcp– Ejecutar consultas SQL de estilo libreget_enhancements_mcp– Descubrir implementaciones de mejoras
🆕 Herramientas BTP
generate_env_from_service_key_file_mcp– Generar .env desde archivo de clave de serviciogenerate_env_from_service_key_json_mcp– Generar .env desde JSON de clave de servicioparse_btp_service_key_mcp– Analizar y examinar claves de servicioget_btp_connection_status_mcp– Verificar configuración BTP actual
Solución de problemas
Error "MCP error -32000: Connection closed"
Si recibe este error al conectarse desde otro directorio:
-
Asegúrese de usar la ruta completa al servidor:
python /full/path/to/mcp-adt/mcp_server.py -
Verifique la configuración del cliente MCP:
{ "mcpServers": { "adt-server": { "command": "python", "args": ["/full/path/to/mcp-adt/mcp_server.py"] } } } -
Ejecute la prueba de conexión:
python /path/to/mcp-adt/test_remote_connection.py -
Revise los registros:
- El archivo de registro se crea en el directorio del proyecto:
mcp_server.log - Verifique si hay errores de importación o configuración
- El archivo de registro se crea en el directorio del proyecto:
Otros problemas comunes
- ModuleNotFoundError: Asegúrese de que todas las dependencias estén instaladas:
pip install -r requirements.txt - Problemas con el archivo .env: El archivo se busca automáticamente en el directorio del proyecto
- Problemas de permisos: En Linux/macOS puede necesitar
chmod +x mcp_server.py
Para información detallada consulte REMOTE_CONNECTION_GUIDE.md