SAP Documentation
Provides offline access to SAP documentation and real-time SAP Community content.
MCP SAP Docs (Upstream)
Public Hosted Endpoint
Ready to use — no setup required
Variant URL SAP Docs http://mcp-sap-docs.marianzeis.de/mcpABAP https://mcp-abap.marianzeis.de/mcp
mcp-sap-docs is the upstream repository for two MCP server variants:
sap-docsvariant: broad SAP docs scope (UI5, CAP, Cloud SDK, ABAP docs, etc.)abapvariant: ABAP-focused scope (fewer sources, ABAP lint enabled)
Both variants run from the same codebase and differ by configuration (MCP_VARIANT / .mcp-variant).
Current State
- Upstream source of truth:
mcp-sap-docs - One-way sync target:
abap-mcp-server - Search API is unified across variants:
query,k,includeOnline,includeSamples,abapFlavor,sources
- Shared tools in both variants:
search— unified search across offline docs + optional online sources (SAP Help, SAP Community, Software Heroes)fetch— retrieve full document or community post content by IDabap_feature_matrix— check ABAP feature availability across SAP releasessap_community_search— dedicated SAP Community search (blogs, Q&A); use whensearchresults are insufficient, especially for specific errors or workaroundssap_search_objects— search SAP released objects by name/component/type from the official SAP/abap-atc-cr-cv-s4hc API release state repo; use for clean core compliance discoverysap_get_object_details— full release state details for a specific SAP object (class, table, interface, etc.) including clean core level, successor objects, and optional compliance verdict
- ABAP-only tool:
abap_lint(enabled only when variant isabap)
Variant Selection
Resolution order:
MCP_VARIANTenvironment variable.mcp-variantfile in repo root- 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:
- 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
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:
{
"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
searchusage.
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: HTTP3001, streamable3122abap: HTTP3002, streamable3124
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.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:
# 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
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:
- Push to
mcp-sap-docs/main - Workflow clones
abap-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 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 triggerabap-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: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.mddocs/DEV.mddocs/TESTS.mddocs/UPSTREAM-ONE-WAY-SYNC-IMPLEMENTATION.mdREMOTE_SETUP.md
관련 서버
Scout Monitoring MCP
스폰서Put performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
스폰서Access financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
40ants MCP
A framework for building Model Context Protocol (MCP) servers in Common Lisp.
MCP SBOM Server
Performs a Trivy scan to produce a Software Bill of Materials (SBOM) in CycloneDX format.
xMCP Server
A streamable HTTP MCP server that proxies requests to stdio MCP servers within a container, providing a consistent command environment.
Tempo MCP Server
An MCP server for querying distributed tracing data from Grafana Tempo.
AI Agent with MCP
An AI agent using the Model Context Protocol (MCP) with a Node.js server providing REST resources for users and messages.
ArchiveNet
A context insertion and search server for Claude Desktop and Cursor IDE, using configurable API endpoints.
SYKE - AI Code Impact Analysis
Live dependency graph and impact analysis MCP server for AI coding agents. Runs PASS/WARN/FAIL build gates before code changes to prevent cascade failures. Supports TS, Python, Dart, Go, Rust, Java, C++, Ruby.
Rossum MCP & Agent
MCP server and AI agent toolkit for intelligent document processing with Rossum.
SonarCloud
Fetch SonarCloud issues related to pull requests.
MCP Gateway
Integrates multiple MCP servers into a single interface with a management Web UI and real-time status updates.