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á aos assistentes de IA (Claude, Cursor, ChatGPT, etc.) acesso à documentação SAP por meio 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
Ou adicione-o a qualquer cliente MCP que suporte HTTP transmissível:
{
"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 — nenhuma configuração necessária
Variante URL SAP Docs http://mcp-sap-docs.marianzeis.de/mcpABAP https://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 pela configuração (MCP_VARIANT / .mcp-variant):
| Variante | Escopo | Ferramentas extras |
|---|---|---|
sap-docs | Documentação SAP ampla: UI5, CAP, Cloud SDK, ABAP, BTP, AI, Terraform | Ferramentas do Discovery Center |
abap | Focada em ABAP: documentação de palavras-chave ABAP, RAP, folhas de dicas, guias de estilo | abap_lint |
Fontes de Documentação
Fontes offline (índice local, sempre disponível)
| Fonte | Descrição |
|---|---|
abap-docs-standard | Documentação oficial de palavras-chave ABAP — on-premise / sintaxe completa |
abap-docs-cloud | Documentação oficial de palavras-chave ABAP — ABAP Cloud / BTP (sintaxe restrita) |
abap-cheat-sheets | Trechos de código e exemplos práticos de ABAP/RAP |
abap-fiori-showcase | Demonstração de recursos RAP + OData V4 + Fiori Elements orientada por anotações |
abap-platform-rap-opensap | Amostras do curso openSAP "Building Apps with RAP" |
cloud-abap-rap | Projetos de exemplo ABAP Cloud + RAP |
abap-platform-reuse-services | Exemplos de serviços de reutilização RAP (faixas numéricas, e-mail, Adobe Forms, …) |
sap-styleguides | Guia de estilo SAP Clean ABAP e melhores práticas |
dsag-abap-leitfaden | Diretrizes de desenvolvimento DSAG ABAP Leitfaden (alemão) |
btp-cloud-platform | Conceitos, desenvolvimento, segurança e administração do SAP BTP |
sap-artificial-intelligence | Documentação do SAP AI Core e SAP AI Launchpad |
ui5 | Documentação do framework SAPUI5 / OpenUI5 |
cap | Documentação do SAP Cloud Application Programming Model (CAP) |
cloud-sdk | Documentação do SAP Cloud SDK |
terraform-provider-btp | SAP Terraform Provider para BTP — recursos e fontes de dados |
architecture-center | Arquiteturas de referência e orientações do SAP Architecture Center |
wdi5 | Documentação do framework de testes wdi5 (WebdriverIO + UI5) |
Fontes online (consultas ao vivo, habilitadas por padrão)
| Fonte | Descrição |
|---|---|
| SAP Help Portal | Documentação oficial de produtos SAP (escopo amplo) |
| SAP Community | Blogs da comunidade, perguntas e respostas e posts de solução de problemas |
| Software Heroes | Artigos e tutoriais ABAP/RAP (EN + DE, deduplicados) |
Ferramentas Disponíveis
Ferramentas compartilhadas (ambas as variantes)
| Ferramenta | Descrição |
|---|---|
search | Busca híbrida unificada (BM25 + semântica) em documentos offline e fontes online opcionais. Suporta parâmetros query, k, includeOnline, includeSamples, abapFlavor, sources. |
fetch | Recupera o conteúdo completo do documento pelo ID retornado de search. |
abap_feature_matrix | Verifica a disponibilidade de recursos ABAP nas versões SAP (7.40–LATEST) usando a matriz de recursos do Software Heroes. |
sap_community_search | Busca 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 soluções alternativas. |
sap_search_objects | Busca objetos liberados da SAP (classes, interfaces, tabelas, visualizações CDS, …) por nome/componente/tipo no repositório oficial de estado de liberação SAP/abap-atc-cr-cv-s4hc. Útil para descoberta de conformidade clean core. |
sap_get_object_details | Detalhes completos do estado de liberação de um objeto SAP específico, incluindo nível clean core (A/B/C/D), objetos sucessores e veredito de conformidade opcional. |
Somente variante sap-docs
| Ferramenta | Descrição |
|---|---|
sap_discovery_center_search | Busca 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_service | Obtém detalhes abrangentes do serviço BTP: planos de preços, roadmap do produto, links de documentação e recursos principais. Aceita um UUID ou nome de serviço. |
ui5_version_diff | Lista todas as alterações FEATURE / FIX / DEPRECATED correspondentes e entradas do What's New do SAPUI5 para uma versão ou intervalo 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/reconstrução para uma atualização manual. Combine com a habilidade ui5-version-upgrade e @ui5/mcp-server para um fluxo de trabalho completo de atualização. |
Somente variante abap
| Ferramenta | Descrição |
|---|---|
abap_lint | Executa 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 descobertas 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 emdist/models/)
Seleção de Variante
Ordem de resolução:
- Variável de ambiente
MCP_VARIANT - Arquivo
.mcp-variantna raiz do repositório - 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 executa 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
includeSamplespode remover fontes com muitos exemplosabapFlavor(standard/cloud/auto) filtra bibliotecas oficiais de documentos ABAP mantendo fontes não-ABAPsourcespode 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: "how to check if a user has permission" 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/ (ignorado pelo git, dentro do projeto).
Consulte docs/HYBRID-SEARCH.md para detalhes completos, impacto de tamanho e ajuste.
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=falseem cada solicitaçãosearch
Exemplo de corpo de solicitaçã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 isolada (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
Observações:
- Com
--network none, buscas online são impossíveis por isolamento de tempo de execução. - 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: HTTP3001, transmissível3122abap: HTTP3002, transmissível3124
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 Construção e Configuração
Os nomes dos scripts permanecem compartilhados (setup, build, start, start:streamable).
O comportamento muda conforme a configuração da variante:
setup.shinicializa apenas submódulos permitidos pela variantebuild-indexinclui apenas bibliotecas permitidas pela variantebuild-ftsindexa apenas bibliotecas permitidas pela variante
Isso mantém abap mais rápido e menor sem manter um conjunto separado de scripts de construção.
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 transmissível:
# 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. Comece com
Deployment Options and 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:
- Fluxo de trabalho:
.github/workflows/sync-to-abap-main.yml - Script:
scripts/sync-to-abap.sh
Fluxo:
- Release Please publica uma versão em
mcp-sap-docsapós a mesclagem do PR de versão - O fluxo de trabalho de versão despacha explicitamente o fluxo de trabalho de sincronização ABAP
- O fluxo de trabalho de sincronização clona
abap-mcp-server - Os arquivos upstream rastreados são sincronizados (com regras de exclusão), então a sobreposição ABAP é aplicada
.mcp-varianté forçado paraabape a identidade do pacote ABAP é corrigida- Um commit de sincronização é enviado para
abap-mcp-server/main - Esse push aciona o fluxo de trabalho de implantação ABAP
O fluxo de trabalho de sincronização também suporta execuções manuais, incluindo execuções de teste (dry runs) e um branch de destino personalizado.
Apenas pushes para o branch main downstream acionam implantação automática.
Segredo necessário no repositório mcp-sap-docs:
ABAP_REPO_SYNC_TOKEN: um token dedicado com acesso para enviar código e alterações de fluxo de trabalho paraabap-mcp-server. Mantenha-o separado deGITHUB_TOKEN, cujos pushes não acionam fluxos de trabalho subsequentes.
Modelo de Implantação
mcp-sap-docs: possui versões de lançamento e despacha sua implantação e sincronização ABAP quando uma versão é criadaabap-mcp-server: implanta em pushes paramain, incluindo commits de sincronização upstream, ou viaworkflow_dispatch
O repositório downstream não publica versões do GitHub. Sua implantação deve,
portanto, ouvir pushes de sincronização, não release: published. As versões upstream
controlam quando as sincronizações automáticas ocorrem.
O fluxo de trabalho de implantação ABAP é mantido em
sync/abap.overlay/.github/workflows/deploy-abap-mcp-server.yml. Altere essa
sobreposição upstream para que a correção persista em sincronizações futuras.
Após mesclar uma correção de implantação, publique a próxima versão upstream ou execute manualmente
sync-to-abap-main.yml contra o upstream main. Confirme que a execução de implantação
downstream é bem-sucedida e que https://mcp-abap.marianzeis.de/health relata a versão em
package.json ABAP sincronizado; uma sincronização bem-sucedida por si só não confirma a implantação.
Runtime PM2
ecosystem.config.cjs é ciente da 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.mddocs/DEV.mddocs/TESTS.mddocs/UPSTREAM-ONE-WAY-SYNC-IMPLEMENTATION.mdREMOTE_SETUP.md