SAP Documentation
Proporciona acceso sin conexión a la documentación de SAP y contenido en tiempo real de la Comunidad SAP.
Documentación
MCP SAP Docs (Upstream)
Un servidor MCP que brinda a los asistentes de IA (Claude, Cursor, ChatGPT, etc.) acceso a la documentación de SAP a través de una interfaz unificada de búsqueda y recuperación. Combina un índice local de texto completo + semántico sobre documentos de SAP clonados con git, con consultas en vivo opcionales a SAP Help, SAP Community y Software Heroes, todo expuesto como herramientas MCP.
Instalación
O agréguelo a cualquier cliente MCP que admita HTTP transmisible:
{
"mcpServers": {
"sap-docs": {
"type": "http",
"url": "https://mcp-sap-docs.marianzeis.de/mcp"
}
}
}
No se requiere clave API ni inicio de sesión: el servidor es público y de solo lectura.
Endpoint Público Alojado
Listo para usar: no se requiere configuración
Variante URL SAP Docs http://mcp-sap-docs.marianzeis.de/mcpABAP https://mcp-abap.marianzeis.de/mcp
Variantes
mcp-sap-docs es el repositorio upstream de dos variantes de servidor MCP que comparten un mismo código base y se diferencian por configuración (MCP_VARIANT / .mcp-variant):
| Variante | Alcance | Herramientas adicionales |
|---|---|---|
sap-docs | Documentación amplia de SAP: UI5, CAP, Cloud SDK, ABAP, BTP, AI, Terraform | Herramientas de Discovery Center |
abap | Enfocada en ABAP: documentación de palabras clave ABAP, RAP, hojas de referencia, guías de estilo | abap_lint |
Fuentes de Documentación
Fuentes sin conexión (índice local, siempre disponible)
| Fuente | Descripción |
|---|---|
abap-docs-standard | Documentación oficial de palabras clave ABAP: on-premise / sintaxis completa |
abap-docs-cloud | Documentación oficial de palabras clave ABAP: ABAP Cloud / BTP (sintaxis restringida) |
abap-cheat-sheets | Fragmentos de código y ejemplos prácticos de ABAP/RAP |
abap-fiori-showcase | Demostración de funciones de RAP + OData V4 + Fiori Elements impulsada por anotaciones |
abap-platform-rap-opensap | Muestras del curso openSAP "Building Apps with RAP" |
cloud-abap-rap | Proyectos de ejemplo de ABAP Cloud + RAP |
abap-platform-reuse-services | Ejemplos de servicios de reutilización RAP (rangos de números, correo, Adobe Forms, …) |
sap-styleguides | Guía de estilo SAP Clean ABAP y mejores prácticas |
dsag-abap-leitfaden | Guía de desarrollo DSAG ABAP Leitfaden (alemán) |
btp-cloud-platform | Conceptos de SAP BTP, desarrollo, seguridad, administración |
sap-artificial-intelligence | Documentación de SAP AI Core y SAP AI Launchpad |
ui5 | Documentación del framework SAPUI5 / OpenUI5 |
cap | Documentación del modelo de programación de aplicaciones en la nube de SAP (CAP) |
cloud-sdk | Documentación de SAP Cloud SDK |
terraform-provider-btp | Proveedor de Terraform de SAP para BTP: recursos y fuentes de datos |
architecture-center | Arquitecturas de referencia y orientación del SAP Architecture Center |
wdi5 | Documentación del framework de pruebas wdi5 (WebdriverIO + UI5) |
Fuentes en línea (consultas en vivo, habilitadas por defecto)
| Fuente | Descripción |
|---|---|
| SAP Help Portal | Documentación oficial de productos SAP (alcance amplio) |
| SAP Community | Blogs de la comunidad, preguntas y respuestas, y publicaciones de solución de problemas |
| Software Heroes | Artículos y tutoriales de ABAP/RAP (EN + DE, deduplicados) |
Herramientas Disponibles
Herramientas compartidas (ambas variantes)
| Herramienta | Descripción |
|---|---|
search | Búsqueda híbrida unificada (BM25 + semántica) en documentos sin conexión y fuentes en línea opcionales. Admite los parámetros query, k, includeOnline, includeSamples, abapFlavor, sources. |
fetch | Recupera el contenido completo del documento por ID devuelto por search. |
abap_feature_matrix | Verifica la disponibilidad de funciones ABAP en las versiones de SAP (7.40–LATEST) usando la matriz de funciones de Software Heroes. |
sap_community_search | Búsqueda dedicada en SAP Community a través de la API Khoros LiQL: devuelve el contenido completo de las publicaciones principales. Úsela cuando los resultados de search sean insuficientes para errores específicos o soluciones alternativas. |
sap_search_objects | Busca objetos publicados de SAP (clases, interfaces, tablas, vistas CDS, …) por nombre/componente/tipo desde el repositorio oficial de estado de versiones SAP/abap-atc-cr-cv-s4hc. Útil para el descubrimiento de cumplimiento de clean core. |
sap_get_object_details | Detalles completos del estado de versión de un objeto SAP específico, incluido el nivel de clean core (A/B/C/D), objetos sucesores y veredicto de cumplimiento opcional. |
Solo variante sap-docs
| Herramienta | Descripción |
|---|---|
sap_discovery_center_search | Busca en el catálogo de servicios de SAP Discovery Center los servicios de BTP por palabra clave, categoría o modelo de licencia. |
sap_discovery_center_service | Obtiene detalles completos del servicio de BTP: planes de precios, hoja de ruta del producto, enlaces de documentación y funciones clave. Acepta un UUID o nombre de servicio. |
ui5_version_diff | Lista todos los cambios coincidentes de FEATURE / FIX / DEPRECATED y las entradas de What's New de SAPUI5 para una versión o rango desde un paquete local de todos los cambios (dist/data/ui5-lib-diff/all-changes.json). npm run setup lo actualiza automáticamente; use npm run download:ui5-lib-diff durante la configuración/reconstrucción para una actualización manual. Combínelo con la habilidad ui5-version-upgrade y @ui5/mcp-server para un flujo de trabajo completo de actualización. |
Solo variante abap
| Herramienta | Descripción |
|---|---|
abap_lint | Ejecuta análisis estático de código en código fuente ABAP usando abaplint. Detecta automáticamente el tipo de archivo a partir de patrones de código. Devuelve hallazgos con números de línea, severidad y claves de regla. |
Resumen de Arquitectura
- Fuente de verdad upstream:
mcp-sap-docs - Destino de sincronización unidireccional:
abap-mcp-server - La búsqueda usa fusión Híbrida BM25 + Semántica (embeddings) mediante fusión por rango recíproco (RRF)
- Modelo de embeddings:
Xenova/all-MiniLM-L6-v2(~90 MB, almacenado en caché endist/models/)
Selección de Variante
Orden de resolución:
- Variable de entorno
MCP_VARIANT - Archivo
.mcp-varianten la raíz del repositorio - Alternativa:
sap-docs
Ejemplos:
# Run as full sap-docs profile
MCP_VARIANT=sap-docs npm run setup
MCP_VARIANT=sap-docs npm run build
MCP_VARIANT=sap-docs npm run start:streamable
# Run as ABAP profile
MCP_VARIANT=abap npm run setup
MCP_VARIANT=abap npm run build
MCP_VARIANT=abap npm run start:streamable
Comportamiento de Búsqueda
search realiza recuperación fusionada sobre:
- Índice FTS sin conexión (contenido local de submódulos)
- Fuentes en línea opcionales (
includeOnline=true):- SAP Help
- SAP Community
- Búsqueda de contenido de Software Heroes (fusión EN/DE + deduplicación)
Aspectos destacados de clasificación y filtrado:
- Búsqueda híbrida BM25 + semántica (embeddings) — palabras clave y significado, fusionados mediante RRF
- Fusión por rango recíproco (RRF) entre fuentes sin conexión y en línea
- Refuerzos a nivel de fuente a partir de metadatos
includeSamplespuede eliminar fuentes con muchos ejemplosabapFlavor(standard/cloud/auto) filtra las bibliotecas oficiales de documentos ABAP mientras mantiene las fuentes que no son ABAPsourcespuede restringir explícitamente las bibliotecas sin conexión
Búsqueda Híbrida
La búsqueda sin conexión combina BM25 (coincidencia de palabras clave FTS5) con similitud semántica
(embeddings densos mediante Xenova/all-MiniLM-L6-v2). Esto permite que las consultas en lenguaje natural y
las paráfrasis encuentren documentos relevantes incluso cuando faltan las palabras clave exactas.
Ejemplo: "cómo verificar si un usuario tiene permiso" encuentra documentos de AUTHORITY-CHECK.
Los embeddings se precalculan en el momento de la compilación y se almacenan en docs.sqlite.
El modelo (~90 MB) se almacena en caché en dist/models/ (ignorado por git, dentro del proyecto).
Consulte docs/HYBRID-SEARCH.md para obtener detalles completos, impacto de tamaño y ajuste.
Modo Solo Sin Conexión
search incluye fuentes en línea por defecto. Para ejecutar solo sin conexión, use:
- solo índice/submódulos locales (
npm run setup+npm run build) includeOnline=falseen cada solicitud desearch
Ejemplo de cuerpo de solicitud de search:
{
"query": "RAP draft",
"k": 8,
"includeOnline": false
}
Docker (solo sin conexión)
Ejecute el contenedor con enlace al host y llame a search con includeOnline=false:
docker run --rm -p 3122:3122 \
-e MCP_VARIANT=sap-docs \
-e MCP_PORT=3122 \
-e MCP_HOST=0.0.0.0 \
mcp-sap-docs
Para una ejecución estricta en entorno aislado, deshabilite la red del contenedor:
docker run --rm --network none -p 3122:3122 \
-e MCP_VARIANT=sap-docs \
-e MCP_PORT=3122 \
-e MCP_HOST=0.0.0.0 \
mcp-sap-docs
Notas:
- Con
--network none, las recuperaciones en línea son imposibles por aislamiento en tiempo de ejecución. - El inicio puede registrar advertencias por intentos de precarga en línea (por ejemplo, la matriz de funciones ABAP); esto no impide el uso de
searchsin conexión.
Inicio Rápido (Local)
npm ci
npm run setup
npm run build
Inicie los modos del servidor:
# MCP stdio
npm start
# HTTP status/dev server
npm run start:http
# MCP streamable HTTP
npm run start:streamable
Puertos predeterminados por variante:
sap-docs: HTTP3001, transmisible3122abap: HTTP3002, transmisible3124
Comprobaciones de salud:
curl -sS http://127.0.0.1:3122/health | jq .
curl -sS http://127.0.0.1:3001/status | jq .
Use los puertos específicos de la variante al ejecutar el perfil abap.
Scripts de Compilación y Configuración
Los nombres de los scripts permanecen compartidos (setup, build, start, start:streamable).
El comportamiento cambia según la configuración de la variante:
setup.shsolo inicializa los submódulos permitidos por la variantebuild-indexsolo incluye las bibliotecas permitidas por la variantebuild-ftssolo indexa las bibliotecas permitidas por la variante
Esto mantiene abap más rápido y más pequeño sin mantener un conjunto separado de scripts de compilación.
Docker
Compile la imagen para una variante:
# sap-docs image
docker build --build-arg MCP_VARIANT=sap-docs -t mcp-sap-docs .
# abap image
docker build --build-arg MCP_VARIANT=abap -t abap-mcp-server .
Ejecute el servidor transmisible:
# sap-docs
docker run --rm -p 3122:3122 \
-e MCP_VARIANT=sap-docs \
-e MCP_PORT=3122 \
mcp-sap-docs
# abap
docker run --rm -p 3124:3124 \
-e MCP_VARIANT=abap \
-e MCP_PORT=3124 \
abap-mcp-server
SAP BTP Cloud Foundry
Para BTP CF, la ruta recomendada de sap-docs es implementar la imagen
mantenida de ghcr.io/marianfoo/mcp-sap-docs:sap-docs con MTA. Cloud Foundry solo
extrae y ejecuta la imagen semántica preparada.
Consulte docs/BTP-CF-DEPLOYMENT.md para la guía de
implementación pública. Comience con
Opciones de implementación y compensaciones
para elegir entre MTA, cf push directo, imágenes de registro personalizadas y configuración
de actualización.
Sincronización Unidireccional a abap-mcp-server
Este repositorio contiene automatización de sincronización directa:
- Flujo de trabajo:
.github/workflows/sync-to-abap-main.yml - Script:
scripts/sync-to-abap.sh
Flujo:
- Release Please publica una versión en
mcp-sap-docsdespués de que se fusiona su PR de versión - El flujo de trabajo de versión envía explícitamente el flujo de trabajo de sincronización ABAP
- El flujo de trabajo de sincronización clona
abap-mcp-server - Los archivos upstream rastreados se sincronizan (con reglas de exclusión) y luego se aplica la superposición ABAP
.mcp-variantse fuerza aabapy se corrige la identidad del paquete ABAP- Se envía una confirmación de sincronización a
abap-mcp-server/main - Ese envío activa el flujo de trabajo de implementación ABAP
El flujo de trabajo de sincronización también admite ejecuciones manuales, incluidas ejecuciones de prueba y una rama de destino personalizada.
Solo los envíos a la rama main descendente activan la implementación automática.
Secreto requerido en el repositorio mcp-sap-docs:
ABAP_REPO_SYNC_TOKEN: un token dedicado con acceso para enviar cambios de código y flujo de trabajo aabap-mcp-server. Manténgalo separado deGITHUB_TOKEN, cuyos envíos no activan flujos de trabajo posteriores.
Modelo de Implementación
mcp-sap-docs: posee las versiones y envía su implementación y sincronización ABAP cuando se crea una versiónabap-mcp-server: implementa en envíos amain, incluidos los commits de sincronización upstream, o medianteworkflow_dispatch
El repositorio descendente no publica versiones de GitHub. Su implementación debe,
por lo tanto, escuchar los envíos de sincronización, no release: published. Las versiones upstream
controlan cuándo ocurren las sincronizaciones automáticas.
El flujo de trabajo de implementación ABAP se mantiene en
sync/abap.overlay/.github/workflows/deploy-abap-mcp-server.yml. Cambie esa
superposición upstream para que la corrección persista en futuras sincronizaciones.
Después de fusionar una corrección de implementación, publique la próxima versión upstream o ejecute manualmente
sync-to-abap-main.yml contra upstream main. Confirme que la ejecución de implementación descendente
tenga éxito y que https://mcp-abap.marianzeis.de/health informe la versión en
el package.json ABAP sincronizado; una sincronización exitosa por sí sola no confirma la implementación.
Tiempo de Ejecución PM2
ecosystem.config.cjs es consciente de la variante y resuelve:
- nombres de procesos
- puertos
- ruta de implementación
desde config/variants/*.json.
Comandos de Validación
npm run build:tsc
npm run test:url-generation
npm run test:integration
npm run test:software-heroes
npm run test:discovery-center # mocked Discovery Center REST contract tests
npm run test:discovery-center:live # opt-in live API smoke test
npm run test:sap-objects # SAP Released Objects unit tests
# Variant-specific build checks
MCP_VARIANT=sap-docs npm run build:index
MCP_VARIANT=abap npm run build:index
MCP_VARIANT=sap-docs npm run build:fts
MCP_VARIANT=abap npm run build:fts
Documentación Adicional
docs/ARCHITECTURE.mddocs/DEV.mddocs/TESTS.mddocs/UPSTREAM-ONE-WAY-SYNC-IMPLEMENTATION.mdREMOTE_SETUP.md