
Mcp Sap Docs
io.github.marianfoo由 GitHub 账号 marianfoo 发布v0.3.9更新于 Oct 24, 2026
Fast MCP server for unified SAP docs search (SAPUI5, CAP, OpenUI5, wdi5) with BM25 full-text search
概览
让助手通过统一索引搜索并获取 SAP 文档,涵盖 ABAP、UI5、CAP、BTP 及社区来源。
- 可以做什么
- 提供对本地索引的 SAP 文档以及可选的在线来源(如 SAP Help、SAP Community 和 Software Heroes)的统一混合搜索(BM25 加语义嵌入)。工具包括 search、fetch、ABAP 功能矩阵、SAP Community 搜索,以及带 clean core 信息的 SAP 已发布对象查询。sap-docs 变体额外提供 Discovery Center 服务搜索和 UI5 版本差异;abap 变体额外提供 abaplint 静态分析。
- 适用场景
- 适合助手需要回答 SAP 开发问题、查询 ABAP 或 UI5 API、确认版本可用性,或查找社区解决方案的场景。若你从事 SAP 技术工作并需要文档检索而非通用网页搜索,可考虑使用。
- 运行要求
- 作为本地 Node.js 进程(npm 包 mcp-sap-docs)通过 stdio 运行,也可通过公开托管的 HTTP 端点访问。本地使用需要执行 npm 安装、setup 和 build 步骤,以克隆文档子模块并构建 SQLite 索引;嵌入模型会缓存在本地。未声明需要 API 密钥或登录。
安装
在 SourceWeft 中
- 打开 控制台中的 Mcp Sap Docs,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
MCP SAP Docs (Upstream)
An MCP server that gives AI assistants (Claude, Cursor, ChatGPT, etc.) access to SAP documentation through a unified search and fetch interface. It combines local full-text search and optional semantic ranking over git-cloned SAP docs with optional live queries to SAP Help, SAP Community, and Software Heroes — all exposed as MCP tools.
Install
Or add it to any MCP client that supports streamable HTTP:
No API key or login required — the server is public and read-only.
Public Hosted Endpoint
Ready to use — no setup required
Variants
mcp-sap-docs is the upstream repository for two MCP server variants that share one codebase and differ by configuration (MCP_VARIANT / .mcp-variant):
Documentation Sources
Offline sources (local index, always available)
Additional SAP Docs sources
The sap-docs profile also indexes the following official documentation. These sources use the existing Markdown/MDX pipeline and link to their upstream files.
Integration Suite indexes docs/ISuite_Integrations_APIs and docs/ISuite_Event_Mesh. Parallel Cloud Integration/API Management guide copies are excluded to avoid repeated content and mixed navigation terminology. Python SDK sources include current docs-python content; historical version folders are excluded.
SAP-docs repositories carry CC-BY-4.0 notices; SAP Cloud SDK, AI SDK, and OData vocabularies carry Apache-2.0 notices. The source checkouts retain their upstream license files, and search/fetch results link to the original documents. See source expansion plan for validation and scope.
Online sources (live queries, enabled by default)
Available Tools
Shared tools (both variants)
sap-docs variant only
abap variant only
Architecture Overview
- Upstream source of truth:
mcp-sap-docs - One-way sync target:
abap-mcp-server - Search defaults to BM25 keyword ranking; optional semantic scores are combined via Reciprocal Rank Fusion (RRF)
- Embeddings model:
Xenova/all-MiniLM-L6-v2(~90 MB, cached indist/models/)
Variant Selection
Resolution order:
MCP_VARIANTenvironment variable.mcp-variantfile in repo root- fallback:
sap-docs
Examples:
Search Behavior
search performs fused retrieval over:
- Offline FTS index (local submodule content)
- Optional online sources (
includeOnline=true):- SAP Help
- SAP Community
- Software Heroes content search (EN/DE merge + dedupe)
Ranking and filtering highlights:
- BM25 search with optional semantic ranking — keyword and meaning, fused via RRF
- Reciprocal Rank Fusion (RRF) across offline and online sources
- Source-level boosts from metadata
includeSamplescan remove sample-heavy sourcesabapFlavor(standard/cloud/auto) filters official ABAP docs libraries while keeping non-ABAP sourcessourcescan restrict offline libraries explicitly
Fetch content limits
Community post bodies are returned as Markdown, including code, links, images and tables. Clients that previously parsed raw Community HTML must consume Markdown. Document IDs, source URLs and response schemas are unchanged. If conversion fails, that post keeps its original HTML with a notice; other posts in the same batch are still returned.
SAP Help and Community fetches default to 75,000 characters. Shortened results
include metadata.truncation with exact loss counts. Self-hosted servers can set
MAX_CONTENT_LENGTH before startup; see content size limits.
Hybrid Search
Offline search defaults to BM25 keyword ranking. Optional semantic ranking uses
Xenova/all-MiniLM-L6-v2 to reorder the lexical candidates; it does not search outside
that candidate pool. Enable it explicitly with EMBEDDING_WEIGHT=0.7 after building
complete document and section embeddings and evaluating your own queries.
Embeddings are stored in docs.sqlite, with the model cached in dist/models/.
Old or partial embedding artifacts fall back to lexical ranking with a rebuild warning.
See docs/HYBRID-SEARCH.md for setup, limitations and costs.
Offline-Only Mode
search includes online sources by default. To run offline-only, use:
- local index/submodules only (
npm run setup+npm run build) includeOnline=falsein eachsearchrequest
Example search request body:
Docker (offline-only)
Run the container with host binding and call search with includeOnline=false:
For strict air-gapped execution, disable container networking:
Notes:
- With
--network none, online fetches are impossible by runtime isolation. - Startup may log warnings for online prefetch attempts (for example ABAP feature matrix); this does not prevent offline
searchusage.
Quick Start (Local)
npm run setup updates the selected variant's documentation sources to their
configured branch tips and builds the index, including embeddings. Nested
submodules stay at the commits recorded by those sources. To omit optional nested
repositories (for example when their upstream URLs require SSH credentials), use
SKIP_NESTED_SUBMODULES=1 npm run setup in Bash, including Git Bash on Windows.
npm run setup:submodules instead checks out the repository's recorded source
commits. It does not fetch the latest documentation or apply variant filtering.
Run npm run setup when refreshing an existing installation.
Start server modes:
Default ports by variant:
sap-docs: HTTP3001, streamable3122abap: HTTP3002, streamable3124
Health checks:
Use variant-specific ports when running abap profile.
Build and Setup Scripts
Script names remain shared (setup, build, start, start:streamable).
Behavior changes by variant config:
setup.shonly initializes variant-allowed submodulesbuild-indexonly includes variant-allowed librariesbuild-ftsonly indexes variant-allowed libraries
This keeps abap faster and smaller without maintaining a separate build script set.
Docker
Build image for a variant:
Run streamable server:
SAP BTP Cloud Foundry
For BTP CF, the recommended sap-docs path is to deploy the maintained
ghcr.io/marianfoo/mcp-sap-docs:sap-docs image with MTA. Cloud Foundry only
pulls and runs the prepared image, including embedding artifacts. Ranking remains
lexical unless a positive EMBEDDING_WEIGHT is explicitly configured.
See docs/BTP-CF-DEPLOYMENT.md for the public-first
deployment guide. Start with
Deployment Options and Tradeoffs
to choose between MTA, direct cf push, custom registry images, and refresh
setup.
One-Way Sync to abap-mcp-server
This repository contains direct sync automation:
- Workflow:
.github/workflows/sync-to-abap-main.yml - Script:
scripts/sync-to-abap.sh
Flow:
- Release Please publishes a release in
mcp-sap-docsafter its release PR is merged - The release workflow explicitly dispatches the ABAP sync workflow
- The sync workflow clones
abap-mcp-server - Tracked upstream files are synced (with exclude rules), then the ABAP overlay is applied
.mcp-variantis forced toabapand ABAP package identity is patched- A sync commit is pushed to
abap-mcp-server/main - That push triggers the ABAP deployment workflow
The sync workflow also supports manual runs, including dry runs and a custom target branch.
Only pushes to the downstream main branch trigger automatic deployment.
Required secret in mcp-sap-docs repo:
ABAP_REPO_SYNC_TOKEN: a dedicated token with access to push code and workflow changes toabap-mcp-server. Keep this separate fromGITHUB_TOKEN, whose pushes do not trigger subsequent workflows.
Deployment Model
mcp-sap-docs: owns release versions and dispatches its deployment and ABAP sync when a release is createdabap-mcp-server: deploys on pushes tomain, including upstream sync commits, or viaworkflow_dispatch
The downstream repository does not publish GitHub releases. Its deployment must
therefore listen for sync pushes, not release: published. Upstream releases
control when automatic syncs occur.
The ABAP deployment workflow is maintained in
sync/abap.overlay/.github/workflows/deploy-abap-mcp-server.yml. Change that
upstream overlay so the fix persists across future syncs.
After merging a deployment fix, publish the next upstream release or manually run
sync-to-abap-main.yml against upstream main. Confirm that the downstream deploy
run succeeds and that https://mcp-abap.marianzeis.de/health reports the version in
the synced ABAP package.json; a successful sync alone does not confirm deployment.
PM2 Runtime
ecosystem.config.cjs is variant-aware and resolves:
- process names
- ports
- deploy path
from config/variants/*.json.
Validation Commands
Additional Docs
docs/ARCHITECTURE.mddocs/DEV.mddocs/TESTS.mddocs/UPSTREAM-ONE-WAY-SYNC-IMPLEMENTATION.mdREMOTE_SETUP.md
Curated SAP tutorials
The SAP Docs profile includes 32 additional official tutorials in
sap-tutorials-ai, sap-tutorials-hana, and sap-tutorials-integration:
AI Core orchestration V2 and grounding, HANA Cloud SQLScript and CAP, Integration
Suite MCP Gateway, and Cloud Transport Management. The existing Fiori OPA guide
is still available separately.
Use product and task terms, for example SAP HANA Cloud SQLScript stored procedure tutorial or SAP Integration Suite MCP Gateway tutorial. Use sources to narrow
an ambiguous search; leave it unset for cross-source discovery. Tutorials provide
worked examples and retain their prerequisites; product and SDK documentation
remain the reference for detailed API behavior.
The explicit selection is in config/tutorials.json.
Fetched tutorials include readable option labels, absolute asset/prerequisite
links, and their published page URL. The unpublished transport overview links to
its official GitHub source. Source content and its original attribution are
preserved; the original tutorial repository's license still applies.
来源:README.md,提交 0d0ba07
工具
0版本历史
1- v0.3.9最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分