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

Add to Werkbank

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

VarianteURL
SAP Docshttp://mcp-sap-docs.marianzeis.de/mcp
ABAPhttps://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):

VarianteAlcanceHerramientas adicionales
sap-docsDocumentación amplia de SAP: UI5, CAP, Cloud SDK, ABAP, BTP, AI, TerraformHerramientas de Discovery Center
abapEnfocada en ABAP: documentación de palabras clave ABAP, RAP, hojas de referencia, guías de estiloabap_lint

Fuentes de Documentación

Fuentes sin conexión (índice local, siempre disponible)

FuenteDescripción
abap-docs-standardDocumentación oficial de palabras clave ABAP: on-premise / sintaxis completa
abap-docs-cloudDocumentación oficial de palabras clave ABAP: ABAP Cloud / BTP (sintaxis restringida)
abap-cheat-sheetsFragmentos de código y ejemplos prácticos de ABAP/RAP
abap-fiori-showcaseDemostración de funciones de RAP + OData V4 + Fiori Elements impulsada por anotaciones
abap-platform-rap-opensapMuestras del curso openSAP "Building Apps with RAP"
cloud-abap-rapProyectos de ejemplo de ABAP Cloud + RAP
abap-platform-reuse-servicesEjemplos de servicios de reutilización RAP (rangos de números, correo, Adobe Forms, …)
sap-styleguidesGuía de estilo SAP Clean ABAP y mejores prácticas
dsag-abap-leitfadenGuía de desarrollo DSAG ABAP Leitfaden (alemán)
btp-cloud-platformConceptos de SAP BTP, desarrollo, seguridad, administración
sap-artificial-intelligenceDocumentación de SAP AI Core y SAP AI Launchpad
ui5Documentación del framework SAPUI5 / OpenUI5
capDocumentación del modelo de programación de aplicaciones en la nube de SAP (CAP)
cloud-sdkDocumentación de SAP Cloud SDK
terraform-provider-btpProveedor de Terraform de SAP para BTP: recursos y fuentes de datos
architecture-centerArquitecturas de referencia y orientación del SAP Architecture Center
wdi5Documentación del framework de pruebas wdi5 (WebdriverIO + UI5)

Fuentes en línea (consultas en vivo, habilitadas por defecto)

FuenteDescripción
SAP Help PortalDocumentación oficial de productos SAP (alcance amplio)
SAP CommunityBlogs de la comunidad, preguntas y respuestas, y publicaciones de solución de problemas
Software HeroesArtículos y tutoriales de ABAP/RAP (EN + DE, deduplicados)

Herramientas Disponibles

Herramientas compartidas (ambas variantes)

HerramientaDescripción
searchBú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.
fetchRecupera el contenido completo del documento por ID devuelto por search.
abap_feature_matrixVerifica la disponibilidad de funciones ABAP en las versiones de SAP (7.40–LATEST) usando la matriz de funciones de Software Heroes.
sap_community_searchBú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_objectsBusca 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_detailsDetalles 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

HerramientaDescripción
sap_discovery_center_searchBusca 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_serviceObtiene 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_diffLista 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

HerramientaDescripción
abap_lintEjecuta 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é en dist/models/)

Selección de Variante

Orden de resolución:

  1. Variable de entorno MCP_VARIANT
  2. Archivo .mcp-variant en la raíz del repositorio
  3. 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
  • includeSamples puede eliminar fuentes con muchos ejemplos
  • abapFlavor (standard / cloud / auto) filtra las bibliotecas oficiales de documentos ABAP mientras mantiene las fuentes que no son ABAP
  • sources puede 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=false en cada solicitud de search

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 search sin 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: HTTP 3001, transmisible 3122
  • abap: HTTP 3002, transmisible 3124

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.sh solo inicializa los submódulos permitidos por la variante
  • build-index solo incluye las bibliotecas permitidas por la variante
  • build-fts solo 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:

  1. Release Please publica una versión en mcp-sap-docs después de que se fusiona su PR de versión
  2. El flujo de trabajo de versión envía explícitamente el flujo de trabajo de sincronización ABAP
  3. El flujo de trabajo de sincronización clona abap-mcp-server
  4. Los archivos upstream rastreados se sincronizan (con reglas de exclusión) y luego se aplica la superposición ABAP
  5. .mcp-variant se fuerza a abap y se corrige la identidad del paquete ABAP
  6. Se envía una confirmación de sincronización a abap-mcp-server/main
  7. 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 a abap-mcp-server. Manténgalo separado de GITHUB_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ón
  • abap-mcp-server: implementa en envíos a main, incluidos los commits de sincronización upstream, o mediante workflow_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.md
  • docs/DEV.md
  • docs/TESTS.md
  • docs/UPSTREAM-ONE-WAY-SYNC-IMPLEMENTATION.md
  • REMOTE_SETUP.md