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égalo 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 del 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 y ejemplos prácticos de código ABAP/RAP |
abap-fiori-showcase | Demostración de funciones de RAP + OData V4 + Fiori Elements basada en 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, desarrollo, seguridad y administración de SAP BTP |
sap-artificial-intelligence | Documentación de SAP AI Core y SAP AI Launchpad |
ui5 | Documentación del framework SAPUI5 / OpenUI5 |
cap | Documentación de SAP Cloud Application Programming Model (CAP) |
cloud-sdk | Documentación de SAP Cloud SDK |
terraform-provider-btp | SAP Terraform Provider para BTP: recursos y fuentes de datos |
architecture-center | Arquitecturas de referencia y guías de 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 versiones de SAP (7.40–LATEST) usando la matriz de funciones de Software Heroes. |
sap_community_search | Búsqueda dedicada en SAP Community mediante la API Khoros LiQL: devuelve el contenido completo de las publicaciones principales. Úsala cuando los resultados de search sean insuficientes para errores o soluciones específicas. |
sap_search_objects | Busca objetos liberados de SAP (clases, interfaces, tablas, vistas CDS, …) por nombre/componente/tipo desde el repositorio oficial de estado de liberación SAP/abap-atc-cr-cv-s4hc. Útil para el descubrimiento de cumplimiento de clean core. |
sap_get_object_details | Detalles completos del estado de liberació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 | Obtén 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; usa npm run download:ui5-lib-diff durante la configuración/reconstrucción para una actualización manual. Combínalo con la habilidad ui5-version-upgrade y @ui5/mcp-server para un flujo de trabajo de actualización completo. |
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 Reciprocal Rank Fusion (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 - Respaldo:
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
- Reciprocal Rank Fusion (RRF) entre fuentes sin conexión y en línea
- Refuerzos a nivel de fuente desde metadatos
includeSamplespuede eliminar fuentes con muchos ejemplosabapFlavor(standard/cloud/auto) filtra bibliotecas oficiales de documentos ABAP mientras mantiene fuentes que no son ABAPsourcespuede restringir bibliotecas sin conexión explícitamente
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 consultas en lenguaje natural y
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).
Consulta 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, usa:
- 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)
Ejecuta el contenedor con enlace al host y llama 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 ejecución estricta en entorno aislado, deshabilita 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
Inicia 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
Verificaciones de salud:
curl -sS http://127.0.0.1:3122/health | jq .
curl -sS http://127.0.0.1:3001/status | jq .
Usa puertos específicos de 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
Compila 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 .
Ejecuta 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.
Consulta docs/BTP-CF-DEPLOYMENT.md para la guía de
implementación pública. Comienza con
Deployment Options and Tradeoffs
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:
- Enviar a
mcp-sap-docs/main - El flujo de trabajo clona
abap-mcp-server - Los archivos upstream rastreados se sincronizan (con reglas de exclusión)
- Se aplica la superposición ABAP
.mcp-variantse fuerza aabap- Se corrige la identidad del paquete ABAP
- El commit se envía a
abap-mcp-server/main
Secreto requerido en el repositorio mcp-sap-docs:
ABAP_REPO_SYNC_TOKEN
Controles del mensaje de commit:
[skip-sync]omite el flujo de trabajo de sincronización
Modelo de Implementación
mcp-sap-docs: implementación upstream + disparador de sincronizaciónabap-mcp-server: el disparador de implementación sigue siendo push-to-main en ese repositorio
Esto preserva la automatización de implementación de ABAP mientras mantiene un código base upstream compartido.
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