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
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
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 por 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, cheat sheets, 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 e exemplos práticos de código 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 de números, e-mail, Adobe Forms, …) |
sap-styleguides | SAP Clean ABAP Style Guide 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 por search. |
abap_feature_matrix | Verifica a disponibilidade de recursos ABAP entre 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 workarounds. |
sap_search_objects | Busca 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_details | Detalhes 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
| 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 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_diff | Lista 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
| 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 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 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 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
includeSamplespode remover fontes com muitos exemplosabapFlavor(standard/cloud/auto) filtra bibliotecas oficiais de documentação 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: "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=falseem cada requisiçãosearch
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: HTTP3001, streamable3122abap: HTTP3002, streamable3124
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.shapenas inicializa submódulos permitidos pela variantebuild-indexapenas inclui bibliotecas permitidas pela variantebuild-ftsapenas 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:
- Push para
mcp-sap-docs/main - O workflow clona
abap-mcp-server - Arquivos upstream rastreados são sincronizados (com regras de exclusão)
- A camada ABAP é aplicada
.mcp-varianté forçado paraabap- A identidade do pacote ABAP é corrigida
- 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çãoabap-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.mddocs/DEV.mddocs/TESTS.mddocs/UPSTREAM-ONE-WAY-SYNC-IMPLEMENTATION.mdREMOTE_SETUP.md