
SAP Documentation
STDIOMCP server providing offline SAP documentation and real-time Community content access.
MCP server providing offline SAP documentation and real-time Community content access.
A fast, lightweight MCP server that provides unified access to official SAP documentation (SAPUI5, CAP, OpenUI5 APIs & samples, wdi5) using efficient BM25 full-text search. Use it remotely (hosted URL) or run it locally and point your client to STDIO.
Public server STDIO: https://mcp-sap-docs.marianzeis.de/sse
Public server Streamable HTTP: https://mcp-sap-docs.marianzeis.de/mcp
Streamable HTTP (default: 3122, configurable via MCP_PORT): http://127.0.0.1:3122/mcp
Local HTTP status: http://127.0.0.1:3001/status
Proxy status (SSE gateway): http://127.0.0.1:18080/status
Point your MCP client to the SSE URL:
https://mcp-sap-docs.marianzeis.de/sse
or the Streamable HTTP URL:
https://mcp-sap-docs.marianzeis.de/mcp
Verify from a shell:
# Should return JSON with api_last_activity curl -sS https://mcp-sap-docs.marianzeis.de/status | jq . # Should return an SSE line like: "event: endpoint" with a /messages path curl -i -H 'Accept: text/event-stream' https://mcp-sap-docs.marianzeis.de/sse | head
# From repo root npm ci ./setup.sh # execute this script to clone the github documentation submodules npm run build # Start the MCP server (STDIO) node dist/src/server.js # OR start the Streamable HTTP server npm run start:streamable
Local health checks
# MCP proxy (SSE gateway) curl -sS http://127.0.0.1:18080/status | jq . # HTTP server curl -sS http://127.0.0.1:3001/status | jq . # Streamable HTTP server (local & deployment default) curl -sS http://127.0.0.1:3122/health | jq .
✅ Remote URL: use the public SSE endpoint or Streamable HTTP endpoint
✅ Local/STDIO: run node dist/src/server.js
and point the client to a command + args
✅ Local/Streamable HTTP: run npm run start:streamable
and point the client to http://127.0.0.1:3122/mcp
Below are copy-paste setups for popular clients. Each block has remote, local, and streamable HTTP options.
https://mcp-sap-docs.marianzeis.de/sse
(Claude documents the Remote MCP flow for SSE connectors here.)
Docs: Model Context Protocol "Connect to Remote MCP Servers" (shows how Claude connects to SSE).
Point Claude to the command and args:
command: node
args: ["<absolute-path-to-your-repo>/dist/src/server.js"]
Claude's user quickstart shows how to add local servers by specifying a command/args pair.
For the latest MCP protocol (2025-03-26) with Streamable HTTP support:
npm run start:streamable
http://127.0.0.1:3122/mcp
This provides better performance and supports the latest MCP features including session management and resumability.
Create or edit ~/.cursor/mcp.json
:
{ "mcpServers": { "sap-docs-remote": { "url": "https://mcp-sap-docs.marianzeis.de/sse" } } }
~/.cursor/mcp.json
:
{ "mcpServers": { "sap-docs": { "command": "node", "args": ["/absolute/path/to/dist/src/server.js"] } } }
Eclipse users can integrate the SAP Docs MCP server with GitHub Copilot for seamless access to SAP development documentation.
⚠️ Important Limitation: GitHub Copilot did not support Eclipse ADT (ABAP Development Tools) due to the
semanticfs
URI scheme used for ABAP development. See GitHub Issue #171406 for details.Workaround: Make sure your Copilot Version in Eclipse is up to date to make it work!
Install GitHub Copilot Extension
Open MCP Configuration
Add SAP Docs MCP Server
{ "name": "SAP Docs MCP", "description": "Comprehensive SAP development documentation with ABAP keyword documentation", "url": "https://mcp-sap-docs.marianzeis.de/sse" }
Verify Configuration
Once configured, you can use Copilot Chat in Eclipse with enhanced SAP documentation:
Example queries:
How do I implement a Wizard control in UI5?
What is the syntax for inline declarations in ABAP 7.58?
Show me best practices for RAP development
Find wdi5 testing examples for OData services
Available Tools:
sap_docs_search
- Unified search for all SAP development (UI5, CAP, ABAP, testing) with intelligent ABAP version filteringsap_community_search
- SAP Community integrationsap_help_search
- SAP Help Portal accesssap_docs_get
- Retrieve complete documentation for any source{ "name": "SAP Docs MCP (Local)", "description": "Local SAP documentation server", "command": "npm", "args": ["start"], "cwd": "/absolute/path/to/your/sap-docs-mcp", "env": { "NODE_ENV": "production" } }
Prerequisites for local setup:
npm run setup
to initialize all documentation sourcesnpm start
Prerequisites: VS Code 1.102+ with MCP support enabled (enabled by default).
Create .vscode/mcp.json
in your workspace:
{ "servers": { "sap-docs": { "type": "http", "url": "https://mcp-sap-docs.marianzeis.de/mcp" } } }
Alternative (SSE): Use "type": "sse"
with "url": "https://mcp-sap-docs.marianzeis.de/sse"
if HTTP doesn't work.
.vscode/mcp.json
file in your workspaceBenefits:
Note: You'll be prompted to trust the remote MCP server when connecting for the first time.
{ "servers": { "sap-docs-local": { "type": "stdio", "command": "node", "args": ["<absolute-path>/dist/src/server.js"] } } }
{ "servers": { "sap-docs-http": { "type": "http", "url": "http://127.0.0.1:3122/mcp" } } }
(Start local server with npm run start:streamable
first)
MCP: Add Server
→ choose server type → provide details → select scopeMCP: Open User Configuration
for global setup across all workspacesSee Microsoft's "Use MCP servers in VS Code" for complete documentation.
Open Raycast → Open Command "Manage Servers (MCP) → Import following JSON
{ "mcpServers": { "sap-docs": { "command": "npx", "args": ["mcp-remote@latest", "https://mcp-sap-docs.marianzeis.de/sse"] } } }
Open Raycast → Open Command "Manage Servers (MCP) → Import following JSON
{ "mcpServers": { "sap-docs": { "command": "node", "args": ["/absolute/path/to/dist/src/server.js"] } } }
Raycast by default asks to confirm each usage of an MCP tool. You can enable automatic confirmation:
Open Raycast → Raycast Settings → AI → Model Context Protocol → Check "Automatically confirm all tool calls"
demokit/sample
directories/sapui5
) - Complete developer guide with 1,485+ files/cap
) - Cloud Application Programming model with 195+ files/openui5-api
) - 500+ control APIs with detailed JSDoc/openui5-samples
) - 2,000+ working examples/wdi5
) - End-to-end test framework documentation/ui5-tooling
) - UI5 Tooling documentation/cloud-mta-build-tool
) - Cloud MTA Build Tool documentation/ui5-webcomponents
) - UI5 Web Components documentationUse sap_docs_search with: "wdi5 configuration"
Returns: wdi5 documentation about configuration, setup, and usage.
Use sap_docs_get with: /wdi5
Returns: wdi5 documentation overview
Use sap_community_search with: "wdi5 best practices"
Returns: Top 3 most relevant community posts about wdi5 best practices with complete blog post content included - no need for additional API calls.
Use sap_help_search with: "S/4HANA Fiori configuration"
Returns: Comprehensive SAP Help documentation about S/4HANA and Fiori configuration from help.sap.com.
Use sap_help_get with: sap-help-12345abc
Returns: Complete SAP Help page with full content and metadata.
Use sap_docs_search with: "button click handler"
Returns:
Try these with any connected MCP client:
Official Documentation:
ABAP Keyword Documentation (Enhanced):
Community Knowledge (with full content):
SAP Help Portal:
https://mcp-sap-docs.marianzeis.de/sse
(not /messages, not /status).curl -i -H 'Accept: text/event-stream' https://mcp-sap-docs.marianzeis.de/sse | head
You should see event: endpoint
and a /messages?...
path. (This is the expected SSE handshake for remote MCP servers.)
node <absolute-path>/dist/src/server.js
node dist/src/server.js
pm2 status mcp-sap-http pm2 status mcp-sap-proxy curl -fsS http://127.0.0.1:3001/status | jq . curl -fsS http://127.0.0.1:18080/status | jq .
npm run build:tsc # Compile TypeScript npm run build:index # Build search index from sources npm run build:fts # Build FTS5 database npm run build # Complete build pipeline (tsc + index + fts) npm run setup # Complete setup (submodules + build)
npm start # Start STDIO MCP server npm run start:http # Start HTTP status server (port 3001) npm run start:streamable # Start Streamable HTTP MCP server (port 3122)
git clone https://github.com/marianfoo/mcp-sap-docs.git cd mcp-sap-docs npm ci # Install dependencies npm run setup # Enhanced setup (optimized submodules + complete build)
The build process creates optimized search indices for fast offline access while maintaining real-time connectivity to the SAP Community API.
# Check server status curl -sS https://mcp-sap-docs.marianzeis.de/status | jq . # Test SSE connection curl -i -H 'Accept: text/event-stream' https://mcp-sap-docs.marianzeis.de/sse | head
# HTTP server status curl -sS http://127.0.0.1:3001/status | jq . # SSE proxy status curl -sS http://127.0.0.1:18080/status | jq .
This project includes dual automated workflows:
Main Deployment (on push to main
or manual trigger)
Daily Documentation Updates (4 AM UTC)
Trigger documentation updates anytime via GitHub Actions → "Update Documentation Submodules" workflow.
The server uses a BM25-only approach for optimal performance: