PluginBench
MCP Server
Active
Apache-2.0

io.github.marianfoo/mcp-sap-docs MCP Server

io.github.marianfoo/mcp-sap-docs

Fast unified SAP docs search (SAPUI5, CAP, ABAP, BTP) with BM25 full-text + semantic indexing

What is the io.github.marianfoo/mcp-sap-docs MCP server?

The MCP SAP Docs server gives AI assistants access to SAP documentation through a unified search and fetch interface. It combines a local full-text and semantic index over SAP docs (ABAP, UI5, CAP, BTP, AI, Terraform) with optional live queries to SAP Help, SAP Community, and Software Heroes. Search uses hybrid BM25 + semantic embeddings via Reciprocal Rank Fusion for both keyword and natural-language queries.

This server indexes 15+ offline SAP documentation sources (ABAP keyword docs, RAP examples, SAPUI5, CAP, BTP, architecture guides, and more) and optionally queries live SAP Help, SAP Community, and Software Heroes content. Use it to quickly find ABAP syntax, RAP patterns, UI5 APIs, CAP examples, BTP services, and best practices without leaving your AI assistant. Hybrid search handles both exact keyword matches and paraphrase queries (e.g., "check user permission" finds AUTHORITY-CHECK docs).

How to install io.github.marianfoo/mcp-sap-docs

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-sap-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-sap-docs"
      ]
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • search — Unified hybrid search (BM25 + semantic embeddings) across offline docs and optional online sources. Supports query, k, includeOnline, includeSamples, abapFlavor, and sources parameters.
  • fetch — Retrieve full document content by ID returned from search.
  • abap_feature_matrix — Check ABAP feature availability across SAP releases (7.40–LATEST) using the Software Heroes feature matrix.
  • sap_community_search — Dedicated SAP Community search via Khoros LiQL API — returns full content of top posts for specific errors or workarounds.
  • sap_search_objects — Search SAP released objects (classes, interfaces, tables, CDS views) by name/component/type from the official SAP release state repo for clean core compliance discovery.
  • sap_get_object_details — Full release state details for a specific SAP object including clean core level, successor objects, and compliance verdict.
  • sap_discovery_center_search — Search the SAP Discovery Center service catalog for BTP services by keyword, category, or license model (sap-docs variant only).
  • sap_discovery_center_service — Get comprehensive BTP service details: pricing plans, product roadmap, documentation links, and key features (sap-docs variant only).
  • ui5_version_diff — List FEATURE/FIX/DEPRECATED changes and SAPUI5 What's New entries for a version or range (sap-docs variant only).
  • abap_lint — Run static code analysis on ABAP source code using abaplint with auto-detection of file type (abap variant only).

Use cases

  • Search ABAP keyword documentation and RAP patterns across on-premise and cloud syntax variants
  • Find SAPUI5/OpenUI5 API documentation, examples, and version upgrade guides
  • Discover CAP (Cloud Application Programming Model) patterns and best practices
  • Look up BTP services, pricing, and deployment options via SAP Discovery Center
  • Analyze ABAP code for style guide violations and best practices using abap_lint
  • Check feature availability across SAP releases and find workarounds in SAP Community

io.github.marianfoo/mcp-sap-docs MCP server FAQ

What is the MCP SAP Docs server?

It's an MCP server that indexes 15+ SAP documentation sources (ABAP, UI5, CAP, BTP, AI, Terraform) and provides hybrid BM25 + semantic search, plus live queries to SAP Help, SAP Community, and Software Heroes. It also includes tools for ABAP feature matrix lookup, SAP object release state, and BTP service discovery.

Is it free to use?

Yes. The public hosted endpoint (http://mcp-sap-docs.marianzeis.de/mcp) requires no API key or login and is read-only. You can also self-host via npm or Docker.

How do I install it in Cursor or Claude?

Add the public HTTP endpoint to your MCP client config: {"type": "http", "url": "https://mcp-sap-docs.marianzeis.de/mcp"}. Or install locally via npm (mcp-sap-docs) and run npm start to expose it as stdio or HTTP.

Does it work offline?

Yes. Run npm setup and npm build to index local docs, then call search with includeOnline=false. Docker supports air-gapped mode with --network none.

What authentication is required?

None. The server is public and read-only. No API keys, logins, or credentials needed.

What are the two variants?

sap-docs (broad SAP docs: UI5, CAP, Cloud SDK, ABAP, BTP, AI, Terraform, plus Discovery Center tools) and abap (ABAP-focused: keyword docs, RAP, cheat sheets, style guides, plus abap_lint). Set MCP_VARIANT environment variable to choose.

README (reference)

Source of truth, from the repository.

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

Install

Add to Werkbank

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.

Public Hosted Endpoint

Ready to use — no setup required

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

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):

VariantScopeExtra tools
sap-docsBroad SAP docs: UI5, CAP, Cloud SDK, ABAP, BTP, AI, TerraformDiscovery Center tools
abapABAP-focused: ABAP keyword docs, RAP, cheat sheets, style guidesabap_lint

Documentation Sources

Offline sources (local index, always available)

SourceDescription
abap-docs-standardOfficial ABAP Keyword Documentation — on-premise / full syntax
abap-docs-cloudOfficial ABAP Keyword Documentation — ABAP Cloud / BTP (restricted syntax)
abap-cheat-sheetsPractical ABAP/RAP code snippets and examples
abap-fiori-showcaseAnnotation-driven RAP + OData V4 + Fiori Elements feature showcase
abap-platform-rap-opensapopenSAP "Building Apps with RAP" course samples
cloud-abap-rapABAP Cloud + RAP example projects
abap-platform-reuse-servicesRAP reuse services examples (number ranges, mail, Adobe Forms, …)
sap-styleguidesSAP Clean ABAP Style Guide and best practices
dsag-abap-leitfadenDSAG ABAP Leitfaden (German) development guidelines
btp-cloud-platformSAP BTP concepts, development, security, administration
sap-artificial-intelligenceSAP AI Core and SAP AI Launchpad documentation
ui5SAPUI5 / OpenUI5 framework documentation
capSAP Cloud Application Programming Model (CAP) documentation
cloud-sdkSAP Cloud SDK documentation
terraform-provider-btpSAP Terraform Provider for BTP — resources and data sources
architecture-centerSAP Architecture Center reference architectures and guidance
wdi5wdi5 (WebdriverIO + UI5) testing framework documentation

Online sources (live queries, enabled by default)

SourceDescription
SAP Help PortalOfficial SAP product documentation (broad scope)
SAP CommunityCommunity blogs, Q&A, and troubleshooting posts
Software HeroesABAP/RAP articles and tutorials (EN + DE, deduplicated)

Available Tools

Shared tools (both variants)

ToolDescription
searchUnified hybrid search (BM25 + semantic) across offline docs and optional online sources. Supports query, k, includeOnline, includeSamples, abapFlavor, sources parameters.
fetchRetrieve full document content by ID returned from search.
abap_feature_matrixCheck ABAP feature availability across SAP releases (7.40–LATEST) using the Software Heroes feature matrix.
sap_community_searchDedicated SAP Community search via the Khoros LiQL API — returns full content of top posts. Use when search results are insufficient for specific errors or workarounds.
sap_search_objectsSearch SAP released objects (classes, interfaces, tables, CDS views, …) by name/component/type from the official SAP/abap-atc-cr-cv-s4hc release state repo. Useful for clean core compliance discovery.
sap_get_object_detailsFull release state details for a specific SAP object including clean core level (A/B/C/D), successor objects, and optional compliance verdict.

sap-docs variant only

ToolDescription
sap_discovery_center_searchSearch the SAP Discovery Center service catalog for BTP services by keyword, category, or license model.
sap_discovery_center_serviceGet comprehensive BTP service details: pricing plans, product roadmap, documentation links, and key features. Accepts a service UUID or name.
ui5_version_diffList all matching FEATURE / FIX / DEPRECATED changes and SAPUI5 What's New entries for a version or range from a local all-changes bundle (dist/data/ui5-lib-diff/all-changes.json). npm run setup refreshes it automatically; use npm run download:ui5-lib-diff during setup/rebuild for a manual refresh. Pair with the ui5-version-upgrade skill and @ui5/mcp-server for a full upgrade workflow.

abap variant only

ToolDescription
abap_lintRun static code analysis on ABAP source code using abaplint. Auto-detects file type from code patterns. Returns findings with line numbers, severity, and rule keys.

Architecture Overview

  • Upstream source of truth: mcp-sap-docs
  • One-way sync target: abap-mcp-server
  • Search uses Hybrid BM25 + Semantic (embedding) fusion via Reciprocal Rank Fusion (RRF)
  • Embeddings model: Xenova/all-MiniLM-L6-v2 (~90 MB, cached in dist/models/)

Variant Selection

Resolution order:

  1. MCP_VARIANT environment variable
  2. .mcp-variant file in repo root
  3. fallback: sap-docs

Examples:

# 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

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:

  • 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
  • includeSamples can remove sample-heavy sources
  • abapFlavor (standard / cloud / auto) filters official ABAP docs libraries while keeping non-ABAP sources
  • sources can restrict offline libraries explicitly

Hybrid Search

The offline search combines BM25 (FTS5 keyword matching) with semantic similarity (dense embeddings via Xenova/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" finds AUTHORITY-CHECK docs.

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

See docs/HYBRID-SEARCH.md for full details, size impact, and tuning.

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=false in each search request

Example search request body:

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

Docker (offline-only)

Run the container with host binding and call search with 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

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

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 search usage.

Quick Start (Local)

npm ci
npm run setup
npm run build

Start server modes:

# MCP stdio
npm start

# HTTP status/dev server
npm run start:http

# MCP streamable HTTP
npm run start:streamable

Default ports by variant:

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

Health checks:

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 running abap profile.

Build and Setup Scripts

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

  • setup.sh only initializes variant-allowed submodules
  • build-index only includes variant-allowed libraries
  • build-fts only indexes variant-allowed libraries

This keeps abap faster and smaller without maintaining a separate build script set.

Docker

Build image for a variant:

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

Run streamable 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

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 semantic image.

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:

  1. Push to mcp-sap-docs/main
  2. Workflow clones abap-mcp-server
  3. Tracked upstream files are synced (with exclude rules)
  4. ABAP overlay is applied
  5. .mcp-variant is forced to abap
  6. ABAP package identity is patched
  7. Commit is pushed to abap-mcp-server/main

Required secret in mcp-sap-docs repo:

  • ABAP_REPO_SYNC_TOKEN

Commit message controls:

  • [skip-sync] skips sync workflow

Deployment Model

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

PM2 Runtime

ecosystem.config.cjs is variant-aware and resolves:

  • process names
  • ports
  • deploy path

from config/variants/*.json.

Validation Commands

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

Additional Docs

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

Related MCP servers

ARARC-1 logo

ARC-1

Active

Enterprise-ready MCP server for SAP ABAP systems with secure AI-assisted development via ADT REST API.

165
TypeScript
MIT
View repository →

MCP server giving AI agents safe access to filesystem, databases, processes, and APIs.

3
TypeScript
MIT
View repository →

MCP server for ABAP development workflows via SAP ADT API—lock, edit, check syntax, and manage transports.

180
TypeScript
MIT
View repository →

Connect Claude and Cline to your SAP ABAP system via ADT to read programs, classes, tables, and CDS objects.

174
TypeScript
MIT
View repository →

A digital audio workstation MCP App with sequencing, mixing, effects, automation, and rendering.

0
TypeScript
MIT
View repository →

A self-contained parametric CAD studio MCP server with an interactive MCP App.

1
TypeScript
MIT
View repository →