ARC-1
ARC-1 — Servidor MCP para SAP ADT
ARC-1 (pronunciado arc one [ɑːrk wʌn]) — Servidor MCP preparado para entornos empresariales para sistemas SAP ABAP. Seguro por defecto, desplegable en BTP o local (on-premise), y reforzado con una amplia cobertura de pruebas unitarias, de integración y E2E.
ARC-1 conecta asistentes de IA (Claude, GitHub Copilot, Copilot Studio y cualquier cliente MCP) a sistemas SAP a través de la API REST de ADT. Se distribuye como un paquete npm y una imagen de Docker.
Documentación completa | Guía de configuración | Referencia de herramientas
¿Por qué ARC-1?
Creado para organizaciones que necesitan desarrollo SAP asistido por IA con medidas de seguridad. Inspirado en el trabajo pionero de abap-adt-api, mcp-abap-adt y vibing-steampunk — ARC-1 añade lo necesario para ejecutarse en producción:
Seguridad y controles administrativos
Seguro por defecto — solo lectura, sin SQL libre, sin vista previa de tablas, sin transportes de forma predeterminada. Utilice
--profile developero flags explícitos para habilitar capacidades.Listas de permitidos/bloqueados de operaciones — controle exactamente qué tipos de operaciones (lectura, escritura, búsqueda, consulta, activación, transporte) están permitidas.
Restricciones de paquetes — limite las operaciones de escritura de la IA (crear, actualizar, eliminar) a paquetes específicos con comodines (
--allowed-packages "Z*,$TMP"). Las operaciones de lectura no están restringidas por paquete; utilice la autorización nativa de SAP para el control de acceso a nivel de lectura.Control de acceso a datos — habilite la vista previa de datos de tablas (
--block-data=false) o SQL de forma libre (--block-free-sql=false).Seguridad de transporte — requiera asignaciones de transporte, restrinja a transportes específicos o haga que los transportes sean de solo lectura. Las operaciones de actualización/eliminación utilizan automáticamente el número de corrección de bloqueo cuando no se proporciona un transporte explícito.
Perfiles de seguridad — roles preconfigurados:
viewer,viewer-data,viewer-sql,developer,developer-data,developer-sql.Escrituras restringidas a
$TMPcuando están habilitadas — solo objetos locales/temporales; escribir en paquetes transportables requiere--allowed-packagesexplícito.
Autenticación
Clave de API — token Bearer simple para despliegues internos.
OIDC / JWT — Entra ID, Keycloak o cualquier proveedor de OpenID Connect.
OAuth 2.0 — inicio de sesión basado en navegador para BTP ABAP Environment.
XSUAA — autenticación nativa de SAP BTP con proxy de token automático para clientes MCP.
Propagación de identidad (Principal Propagation) — identidad por usuario reenviada a través de Cloud Connector (cada acción de SAP se ejecuta como el usuario real, no como una cuenta técnica).
Despliegue en BTP Cloud Foundry
Despliegue ARC-1 como una aplicación Cloud Foundry en SAP BTP con integración completa de la plataforma:
Servicio de Destinos (Destination Service) — conéctese a sistemas SAP a través de destinos gestionados.
Cloud Connector — alcance sistemas locales (on-premise) a través del proxy de conectividad.
Propagación de identidad — identidad de usuario reenviada de extremo a extremo mediante certificados X.509.
Proxy OAuth XSUAA — los clientes MCP se autentican mediante OAuth estándar, ARC-1 gestiona el intercambio de tokens de BTP.
Registro de auditoría — eventos estructurados a stderr, archivo o al servicio de registro de auditoría de BTP.
Eficiencia de tokens
11 herramientas basadas en intenciones (~5K tokens de esquema) en lugar de más de 200 herramientas individuales — mantiene pequeña la ventana de contexto del LLM.
Lectura/edición a nivel de método — lea o actualice un solo método de clase, no todo el código fuente (hasta 20 veces menos tokens).
Compresión de contexto —
SAPContextdevuelve contratos de API pública de todas las dependencias en una sola llamada (compresión de 7-30x).
Caché de objetos integrada
Caché de fuente automática — cada lectura de objeto SAP se almacena en caché en memoria (stdio) o SQLite (http-streamable). Las lecturas repetidas devuelven resultados al instante sin llamar a SAP.
Caché de grafo de dependencias — resolución de dependencias de
SAPContextindexada por hash de fuente; los objetos sin cambios omiten todas las llamadas ADT en ejecuciones posteriores.Precalentamiento — inicie con
ARC1_CACHE_WARMUP=truepara preindexar todos los objetos personalizados al inicio, permitiendo la búsqueda de dependencias inversas (SAPContext(action="usages")).Invalidación de escritura — cuando
SAPWritemodifica un objeto, su entrada en caché se elimina automáticamente; la siguiente lectura obtiene la fuente actualizada.
Consulte docs/caching.md para la documentación completa.
Pruebas
Más de 1.367 pruebas unitarias (53 archivos de prueba unitaria, HTTP simulado).
~160 pruebas de integración contra sistemas SAP reales, con razones explícitas de omisión cuando faltan credenciales o fixtures.
~70 pruebas E2E que ejecutan llamadas reales a herramientas MCP contra un servidor ARC-1 en ejecución y un sistema SAP real.
Ciclo de vida CRUD y carriles de humo (smoke lanes) de BTP incluidos (
test:integration:crud,test:integration:btp:smoke).Matriz de CI en Node
22y24; integración + E2E ejecutados enpushamainy PRs internos.Telemetría de fiabilidad + cobertura publicados como señales informativas de CI (no bloqueantes).
Herramientas refinadas para el uso en el mundo real
Las 11 herramientas están diseñadas a partir de comentarios de interacción real con LLMs:
Herramienta | Qué hace |
SAPRead | Lee código fuente ABAP, datos de tablas, vistas CDS, extensiones de metadatos (DDLX), enlaces de servicio (SRVB), clases de mensajes, objetos BOR, aplicaciones UI5/Fiori desplegadas (BSP, BSP_DEPLOY). El formato estructurado para clases devuelve metadatos + includes descompuestos como JSON |
SAPSearch | Búsqueda de objetos + búsqueda de texto completo en código fuente en todo el sistema |
SAPWrite | Crea/actualiza/elimina código fuente ABAP y metadatos DDIC con bloqueo/desbloqueo automático (PROG, CLAS, INTF, FUNC, INCL, DDLS, DDLX, BDEF, SRVD, DOMA, DTEL). Creación por lotes para flujos de trabajo de múltiples objetos (p. ej., pila RAP o dominio+elemento de datos en una sola llamada) |
SAPActivate | Activa objetos ABAP — individual o por lotes (esencial para pilas RAP). Publica/despublica enlaces de servicio OData (SRVB) |
SAPNavigate | Ir a la definición, buscar referencias, autocompletado de código |
SAPQuery | Ejecuta SQL de ABAP con sugerencias de tabla no encontrada |
SAPTransport | Gestión de transporte CTS (listar, crear, liberar) |
SAPContext | Contexto de dependencia comprimido — una llamada reemplaza N llamadas de SAPRead |
SAPLint | Lint de ABAP local (ajustes preestablecidos conscientes del sistema, corrección automática, validación previa a la escritura) |
SAPDiagnose | Verificación de sintaxis, pruebas unitarias ABAP, calidad de código ATC, volcados cortos (short dumps), trazas de perfilador |
SAPManage | Sondeo de características — detecta qué admite el sistema antes de actuar |
Las definiciones de herramientas se adaptan automáticamente al sistema de destino (BTP vs local), eliminando tipos no disponibles y ajustando las descripciones para que el LLM nunca intente operaciones no admitidas.
Detección de características
ARC-1 sondea el sistema SAP al inicio y adapta su comportamiento:
Detecta HANA, abapGit, RAP/CDS, AMDP, UI5 y disponibilidad de transporte.
Autodetecta sistemas BTP vs locales.
Asigna la versión de SAP_BASIS a la versión correcta del lenguaje ABAP.
Cada característica puede forzarse a encendido/apagado o dejarse en autodetección.
Related MCP server: SAP ERP MCP Server by CData
Inicio rápido
npx arc-1@latest --url https://your-sap-host:44300 --user YOUR_USERPara Docker, despliegue en BTP, configuración de cliente (Claude Desktop, Claude Code, VS Code, Copilot Studio) y todos los métodos de autenticación, consulte la Guía de configuración.
Documentación
La documentación completa está disponible en marianfoo.github.io/arc-1.
Guía | Descripción |
Opciones de despliegue, métodos de autenticación, configuración de cliente | |
Referencia completa de las 11 herramientas | |
Arquitectura del sistema con diagramas | |
Referencia de despliegue en Docker | |
Todos los métodos de autenticación | |
Despliegue en Cloud Foundry en SAP BTP | |
Patrones de flujo de trabajo de agentes y mejores prácticas |
Desarrollo
npm ci && npm run build && npm testConsulte CLAUDE.md para conocer la estructura del código base, los comandos de prueba y las pautas de contribución.
Créditos
Proyecto | Autor | Contribución |
oisee | Servidor MCP original en Go — punto de partida de ARC-1 | |
Marcello Urbani | Biblioteca ADT en TypeScript, referencia definitiva de API | |
Mario Andreschak | Primer servidor MCP para ABAP ADT | |
Lars Hvam | Analizador/linter de ABAP (utilizado a través de @abaplint/core) |
Licencia
MIT
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 gradedqualityFmaintenanceMCP Server for Nutanix Prism Central14MIT
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to SAP ERP data from Claude Desktop through CData JDBC Drivers. For full CRUD support, check out our MCP Server for SAP ERP (https://www.cdata.com/drivers/sap/download/mcp).6MIT
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to SAP Business One data from Claude Desktop through CData JDBC Drivers. For full CRUD support, check out the first managed MCP platform: CData Connect AI (https://www.cdata.com/ai/).14MIT
- AlicenseAqualityAmaintenanceABAP Development Tools MCP server with comprehensive tooling and documentation for SAP systems1001,08577MIT
Related MCP Connectors
MEOK MCP Hardening MCP — automated security red-team for any MCP server. Maps OWASP LLM Top 10
MCP Server for agents to onboard, pay, and provision services autonomously with InFlow
MCP server for fcc-ecfs
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/arc-mcp/arc-1'
If you have feedback or need assistance with the MCP directory API, please join our Discord server