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é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

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 del 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 y ejemplos prácticos de código ABAP/RAP
abap-fiori-showcaseDemostración de funciones de RAP + OData V4 + Fiori Elements basada en 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, desarrollo, seguridad y administración de SAP BTP
sap-artificial-intelligenceDocumentación de SAP AI Core y SAP AI Launchpad
ui5Documentación del framework SAPUI5 / OpenUI5
capDocumentación de SAP Cloud Application Programming Model (CAP)
cloud-sdkDocumentación de SAP Cloud SDK
terraform-provider-btpSAP Terraform Provider para BTP: recursos y fuentes de datos
architecture-centerArquitecturas de referencia y guías de 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 versiones de SAP (7.40–LATEST) usando la matriz de funciones de Software Heroes.
sap_community_searchBú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_objectsBusca 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_detailsDetalles 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

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_serviceObté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_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; 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

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 Reciprocal Rank Fusion (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. 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
  • includeSamples puede eliminar fuentes con muchos ejemplos
  • abapFlavor (standard / cloud / auto) filtra bibliotecas oficiales de documentos ABAP mientras mantiene fuentes que no son ABAP
  • sources puede 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=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)

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

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.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

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:

  1. Enviar a mcp-sap-docs/main
  2. El flujo de trabajo clona abap-mcp-server
  3. Los archivos upstream rastreados se sincronizan (con reglas de exclusión)
  4. Se aplica la superposición ABAP
  5. .mcp-variant se fuerza a abap
  6. Se corrige la identidad del paquete ABAP
  7. 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ón
  • abap-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.md
  • docs/DEV.md
  • docs/TESTS.md
  • docs/UPSTREAM-ONE-WAY-SYNC-IMPLEMENTATION.md
  • REMOTE_SETUP.md