SAP Documentation

by marianfoo

Not rated
GitHub

About

Provides offline access to SAP documentation and real-time SAP Community content.

Details

Author
marianfoo
Categories
Developer Tools, Other, Knowledge Base

Setup

Install SAP Documentation in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/marianfoo/mcp-sap-docs

Follow the installation instructions in the repository README, then restart your MCP client.

Provides offline access to SAP documentation and real-time SAP Community content.

An MCP server that gives AI assistants (Claude, Cursor, ChatGPT, etc.) access to SAP documentation through a unified search and fetch interface. It combines a local full-text + semantic index over git-cloned SAP docs with optional live queries to SAP Help, SAP Community, and Software Heroes — all exposed as MCP tools.

Or add it to any MCP client that supports streamable HTTP:

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

No API key or login required — the server is public and read-only.

mcp-sap-docsis the upstream repository for two MCP server variants that share one codebase and differ by configuration (MCP_VARIANT/.mcp-variant):

Offline sources (local index, always available)

Online sources (live queries, enabled by default)

- Upstream source of truth:mcp-sap-docs
- One-way sync target:abap-mcp-server
- Search usesHybrid BM25 + Semantic (embedding)fusion via Reciprocal Rank Fusion (RRF)
- Embeddings model:Xenova/all-MiniLM-L6-v2(~90 MB, cached indist/models/)
- MCP_VARIANTenvironment variable
- .mcp-variantfile in repo root
- fallback:sap-docs

# 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

- Offline FTS index (local submodule content)
- Optional online sources (includeOnline=true):

- SAP Help
- SAP Community
- Software Heroes content search (EN/DE merge + dedupe)

- Hybrid BM25 + Semantic (embedding) search— keyword and meaning, fused via RRF
- Reciprocal Rank Fusion (RRF) across offline and online sources
- Source-level boosts from metadata
- includeSamplescan remove sample-heavy sources
- abapFlavor(standard/cloud/auto) filters official ABAP docs libraries while keeping non-ABAP sources
- sourcescan restrict offline libraries explicitly

The offline search combines BM25 (FTS5 keyword matching) with semantic similarity (dense embeddings viaXenova/all-MiniLM-L6-v2). This allows natural-language and paraphrase queries to find relevant docs even when the exact keywords are missing.

Example:"how to check if a user has permission"findsAUTHORITY-CHECKdocs.

Embeddings are pre-computed at build time and stored indocs.sqlite. The model (~90 MB) is cached indist/models/(gitignored, in-project).

Seedocs/HYBRID-SEARCH.mdfor full details, size impact, and tuning.

searchincludes online sources by default. To run offline-only, use:

- local index/submodules only (npm run setup+npm run build)
- includeOnline=falsein eachsearchrequest

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

Run the container with host binding and callsearchwithincludeOnline=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

For strict air-gapped execution, disable container networking:

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

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

# MCP stdio npm start # HTTP status/dev server npm run start:http # MCP streamable HTTP npm run start:streamable

- sap-docs: HTTP3001, streamable3122
- abap: HTTP3002, streamable3124

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

Use variant-specific ports when runningabapprofile.

Script names remain shared (setup,build,start,start:streamable). Behavior changes by variant config:

- setup.shonly initializes variant-allowed submodules
- build-indexonly includes variant-allowed libraries
- build-ftsonly indexes variant-allowed libraries

This keepsabapfaster and smaller without maintaining a separate build script set.

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

For BTP CF, the recommendedsap-docspath is to deploy the maintainedghcr.io/marianfoo/mcp-sap-docs:sap-docsimage with MTA. Cloud Foundry only pulls and runs the prepared semantic image.

Seedocs/BTP-CF-DEPLOYMENT.mdfor the public-first deployment guide. Start withDeployment Options and Tradeoffsto choose between MTA, directcf push, custom registry images, and refresh setup.

This repository contains direct sync automation:

- Workflow:.github/workflows/sync-to-abap-main.yml
- Script:scripts/sync-to-abap.sh
- Push tomcp-sap-docs/main
- Workflow clonesabap-mcp-server
- Tracked upstream files are synced (with exclude rules)
- ABAP overlay is applied
- .mcp-variantis forced toabap
- ABAP package identity is patched
- Commit is pushed toabap-mcp-server/main

- mcp-sap-docs: upstream implementation + sync trigger
- abap-mcp-server: deployment trigger remains push-to-main in that repository

This preserves ABAP deployment automation while keeping one shared upstream codebase.

ecosystem.config.cjsis variant-aware and resolves:

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

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

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Create and read feature flags, review experiments, generate flag types, search docs, and interact with GrowthBook's feature flagging and experimentation platform.

Search and evaluate MCP servers from your AI agent: quality grades, live verification status, install commands and client compatibility for 5,000+ servers.

Search Apple's Developer Documentation with smart search and wildcard support.

Access technical documentation for libraries and frameworks, formatted in clean markdown for LLM consumption.

Access documentation from the Awesome-llms-txt repository directly in your conversations.

Search, compare, and get docs for 210+ APIs ranked by CLI and agent relevance

Query Rust crates from crates.io and docs.rs. Search for crates, get info, versions, dependencies, and documentation.

Apple Documentation MCP Server - Search Apple docs, Swift Evolution, and sample code

Optimize any site for AI search: get DeepRank methodology, optimization steps, and suggestions (llms.txt, JSON-LD, audit checklist) so your AI assistant can implement AI visibility in the repo.

Finds relevant code snippets, developer articles, and blog posts based on your queries.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.