SAP Documentation

Fornece acesso offline à documentação SAP e conteúdo em tempo real da Comunidade SAP.

Documentação

MCP SAP Docs (Upstream)

Um servidor MCP que dá a assistentes de IA (Claude, Cursor, ChatGPT, etc.) acesso à documentação SAP através de uma interface unificada de busca e recuperação. Ele combina um índice local de texto completo + semântico sobre documentação SAP clonada via git com consultas opcionais ao vivo para SAP Help, SAP Community e Software Heroes — tudo exposto como ferramentas MCP.

Instalação

Add to Werkbank

Ou adicione a qualquer cliente MCP que suporte HTTP streamable:

{
  "mcpServers": {
    "sap-docs": {
      "type": "http",
      "url": "https://mcp-sap-docs.marianzeis.de/mcp"
    }
  }
}

Nenhuma chave de API ou login é necessária — o servidor é público e somente leitura.

Endpoint Público Hospedado

Pronto para usar — sem necessidade de configuração

VarianteURL
SAP Docshttp://mcp-sap-docs.marianzeis.de/mcp
ABAPhttps://mcp-abap.marianzeis.de/mcp

Variantes

mcp-sap-docs é o repositório upstream para duas variantes de servidor MCP que compartilham uma base de código e diferem por configuração (MCP_VARIANT / .mcp-variant):

VarianteEscopoFerramentas extras
sap-docsDocumentação SAP ampla: UI5, CAP, Cloud SDK, ABAP, BTP, AI, TerraformFerramentas do Discovery Center
abapFocada em ABAP: documentação de palavras-chave ABAP, RAP, cheat sheets, guias de estiloabap_lint

Fontes de Documentação

Fontes offline (índice local, sempre disponível)

FonteDescrição
abap-docs-standardDocumentação oficial de palavras-chave ABAP — on-premise / sintaxe completa
abap-docs-cloudDocumentação oficial de palavras-chave ABAP — ABAP Cloud / BTP (sintaxe restrita)
abap-cheat-sheetsTrechos e exemplos práticos de código ABAP/RAP
abap-fiori-showcaseDemonstração de recursos RAP + OData V4 + Fiori Elements orientada por anotações
abap-platform-rap-opensapAmostras do curso openSAP "Building Apps with RAP"
cloud-abap-rapProjetos de exemplo ABAP Cloud + RAP
abap-platform-reuse-servicesExemplos de serviços de reutilização RAP (faixas de números, e-mail, Adobe Forms, …)
sap-styleguidesSAP Clean ABAP Style Guide e melhores práticas
dsag-abap-leitfadenDiretrizes de desenvolvimento DSAG ABAP Leitfaden (alemão)
btp-cloud-platformConceitos, desenvolvimento, segurança e administração do SAP BTP
sap-artificial-intelligenceDocumentação do SAP AI Core e SAP AI Launchpad
ui5Documentação do framework SAPUI5 / OpenUI5
capDocumentação do SAP Cloud Application Programming Model (CAP)
cloud-sdkDocumentação do SAP Cloud SDK
terraform-provider-btpSAP Terraform Provider para BTP — recursos e fontes de dados
architecture-centerArquiteturas de referência e orientações do SAP Architecture Center
wdi5Documentação do framework de testes wdi5 (WebdriverIO + UI5)

Fontes online (consultas ao vivo, habilitadas por padrão)

FonteDescrição
SAP Help PortalDocumentação oficial de produtos SAP (escopo amplo)
SAP CommunityBlogs da comunidade, perguntas e respostas, e posts de solução de problemas
Software HeroesArtigos e tutoriais ABAP/RAP (EN + DE, deduplicados)

Ferramentas Disponíveis

Ferramentas compartilhadas (ambas as variantes)

FerramentaDescrição
searchBusca híbrida unificada (BM25 + semântica) em documentos offline e fontes online opcionais. Suporta parâmetros query, k, includeOnline, includeSamples, abapFlavor, sources.
fetchRecupera o conteúdo completo do documento pelo ID retornado por search.
abap_feature_matrixVerifica a disponibilidade de recursos ABAP entre versões SAP (7.40–LATEST) usando a matriz de recursos do Software Heroes.
sap_community_searchBusca dedicada na SAP Community via API Khoros LiQL — retorna o conteúdo completo dos principais posts. Use quando os resultados de search forem insuficientes para erros específicos ou workarounds.
sap_search_objectsBusca objetos SAP liberados (classes, interfaces, tabelas, visões CDS, …) por nome/componente/tipo a partir do repositório oficial de estado de release SAP/abap-atc-cr-cv-s4hc. Útil para descoberta de conformidade clean core.
sap_get_object_detailsDetalhes completos do estado de release para um objeto SAP específico, incluindo nível clean core (A/B/C/D), objetos sucessores e veredito opcional de conformidade.

Somente variante sap-docs

FerramentaDescrição
sap_discovery_center_searchBusca o catálogo de serviços do SAP Discovery Center para serviços BTP por palavra-chave, categoria ou modelo de licença.
sap_discovery_center_serviceObtém detalhes abrangentes de serviços BTP: planos de preço, roadmap do produto, links de documentação e recursos principais. Aceita um UUID ou nome de serviço.
ui5_version_diffLista todas as alterações correspondentes de FEATURE / FIX / DEPRECATED e entradas do What's New do SAPUI5 para uma versão ou intervalo a partir de um pacote local de todas as alterações (dist/data/ui5-lib-diff/all-changes.json). npm run setup o atualiza automaticamente; use npm run download:ui5-lib-diff durante a configuração/rebuild para uma atualização manual. Combine com a habilidade ui5-version-upgrade e @ui5/mcp-server para um fluxo de trabalho completo de upgrade.

Somente variante abap

FerramentaDescrição
abap_lintExecuta análise estática de código em código-fonte ABAP usando abaplint. Detecta automaticamente o tipo de arquivo a partir de padrões de código. Retorna achados com números de linha, severidade e chaves de regra.

Visão Geral da Arquitetura

  • Fonte de verdade upstream: mcp-sap-docs
  • Destino de sincronização unidirecional: abap-mcp-server
  • A busca usa fusão Híbrida BM25 + Semântica (embedding) via Reciprocal Rank Fusion (RRF)
  • Modelo de embeddings: Xenova/all-MiniLM-L6-v2 (~90 MB, armazenado em cache em dist/models/)

Seleção de Variante

Ordem de resolução:

  1. Variável de ambiente MCP_VARIANT
  2. Arquivo .mcp-variant na raiz do repositório
  3. fallback: sap-docs

Exemplos:

# 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

Comportamento de Busca

search realiza recuperação fundida sobre:

  • Índice FTS offline (conteúdo local de submódulos)
  • Fontes online opcionais (includeOnline=true):
    • SAP Help
    • SAP Community
    • Busca de conteúdo do Software Heroes (mesclagem EN/DE + deduplicação)

Destaques de classificação e filtragem:

  • Busca híbrida BM25 + Semântica (embedding) — palavra-chave e significado, fundidos via RRF
  • Reciprocal Rank Fusion (RRF) entre fontes offline e online
  • Reforços em nível de fonte a partir de metadados
  • includeSamples pode remover fontes com muitos exemplos
  • abapFlavor (standard / cloud / auto) filtra bibliotecas oficiais de documentação ABAP mantendo fontes não-ABAP
  • sources pode restringir bibliotecas offline explicitamente

Busca Híbrida

A busca offline combina BM25 (correspondência de palavras-chave FTS5) com similaridade semântica (embeddings densos via Xenova/all-MiniLM-L6-v2). Isso permite consultas em linguagem natural e paráfrases para encontrar documentos relevantes mesmo quando as palavras-chave exatas estão ausentes.

Exemplo: "como verificar se um usuário tem permissão" encontra documentos AUTHORITY-CHECK.

Os embeddings são pré-computados no momento da construção e armazenados em docs.sqlite. O modelo (~90 MB) é armazenado em cache em dist/models/ (gitignored, dentro do projeto).

Consulte docs/HYBRID-SEARCH.md para detalhes completos, impacto de tamanho e ajustes.

Modo Somente Offline

search inclui fontes online por padrão. Para executar somente offline, use:

  • apenas índice/submódulos locais (npm run setup + npm run build)
  • includeOnline=false em cada requisição search

Exemplo de corpo de requisição search:

{
  "query": "RAP draft",
  "k": 8,
  "includeOnline": false
}

Docker (somente offline)

Execute o contêiner com vinculação de host e chame search com 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 execução estritamente air-gapped, desabilite a rede do contêiner:

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:

  • Com --network none, buscas online são impossíveis por isolamento de runtime.
  • A inicialização pode registrar avisos para tentativas de pré-busca online (por exemplo, matriz de recursos ABAP); isso não impede o uso offline de search.

Início Rápido (Local)

npm ci
npm run setup
npm run build

Inicie os modos do servidor:

# MCP stdio
npm start

# HTTP status/dev server
npm run start:http

# MCP streamable HTTP
npm run start:streamable

Portas padrão por variante:

  • sap-docs: HTTP 3001, streamable 3122
  • abap: HTTP 3002, streamable 3124

Verificações de saúde:

curl -sS http://127.0.0.1:3122/health | jq .
curl -sS http://127.0.0.1:3001/status | jq .

Use portas específicas da variante ao executar o perfil abap.

Scripts de Build e Configuração

Os nomes dos scripts permanecem compartilhados (setup, build, start, start:streamable). O comportamento muda conforme a configuração da variante:

  • setup.sh apenas inicializa submódulos permitidos pela variante
  • build-index apenas inclui bibliotecas permitidas pela variante
  • build-fts apenas indexa bibliotecas permitidas pela variante

Isso mantém abap mais rápido e menor sem manter um conjunto separado de scripts de build.

Docker

Construa a imagem para uma 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 .

Execute o servidor streamable:

# 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, o caminho sap-docs recomendado é implantar a imagem ghcr.io/marianfoo/mcp-sap-docs:sap-docs mantida com MTA. O Cloud Foundry apenas puxa e executa a imagem semântica preparada.

Consulte docs/BTP-CF-DEPLOYMENT.md para o guia de implantação público-primeiro. Comece com Opções de Implantação e Tradeoffs para escolher entre MTA, cf push direto, imagens de registro personalizadas e configuração de atualização.

Sincronização Unidirecional para abap-mcp-server

Este repositório contém automação de sincronização direta:

  • Workflow: .github/workflows/sync-to-abap-main.yml
  • Script: scripts/sync-to-abap.sh

Fluxo:

  1. Push para mcp-sap-docs/main
  2. O workflow clona abap-mcp-server
  3. Arquivos upstream rastreados são sincronizados (com regras de exclusão)
  4. A camada ABAP é aplicada
  5. .mcp-variant é forçado para abap
  6. A identidade do pacote ABAP é corrigida
  7. O commit é enviado para abap-mcp-server/main

Segredo necessário no repositório mcp-sap-docs:

  • ABAP_REPO_SYNC_TOKEN

Controles da mensagem de commit:

  • [skip-sync] pula o workflow de sincronização

Modelo de Implantação

  • mcp-sap-docs: implementação upstream + gatilho de sincronização
  • abap-mcp-server: o gatilho de implantação permanece push-to-main nesse repositório

Isso preserva a automação de implantação ABAP mantendo uma base de código upstream compartilhada.

Runtime PM2

ecosystem.config.cjs é ciente de variante e resolve:

  • nomes de processos
  • portas
  • caminho de implantação

a partir de config/variants/*.json.

Comandos de Validação

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

Documentação Adicional

  • docs/ARCHITECTURE.md
  • docs/DEV.md
  • docs/TESTS.md
  • docs/UPSTREAM-ONE-WAY-SYNC-IMPLEMENTATION.md
  • REMOTE_SETUP.md