An MCP server that unifies official SAP docs (SAPUI5, CAP, OpenUI5 APIs & samples, wdi5) with real-time SAP Community content. Use it remotely (hosted URL) or run it locally and point your client to STDIO.
Public server: https://mcp-sap-docs.marianzeis.de/sse
Streamable HTTP (default: 3122, configurable via MCP_PORT): http://127.0.0.1:3122/mcp
(by default, both local and deployment use port 3122; override with MCP_PORT as needed)
Local HTTP status: http://127.0.0.1:3001/status
Proxy status (SSE gateway): http://127.0.0.1:18080/status
Use the hosted server (recommended)
Point your MCP client to the SSE URL:
https://mcp-sap-docs.marianzeis.de/sse
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
Run it locally (STDIO + local HTTP status + Streamable HTTP)
# From repo root
npm ci
npm run build:index
npm run build
# Start the MCP server (STDIO)
node dist/src/server.js
# OR start the Streamable HTTP server (latest MCP spec)
npm run start:streamable
The companion HTTP status server runs (via PM2 in your setup) on 127.0.0.1:3001. The Streamable HTTP server runs on 127.0.0.1:3122 by default and supports the latest MCP protocol (2025-03-26). In the deployment, it is configured via MCP_PORT to 127.0.0.1:3122. The SSE proxy runs on 127.0.0.1:18080 and is what remote clients use.
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 .
- sap_docs_search β unified search across SAPUI5/CAP/OpenUI5 APIs & samples, wdi5, and more
- sap_community_search β real-time SAP Community posts with full content of top 3 results
- sap_help_search β comprehensive search across all SAP Help Portal documentation
- sap_docs_get β fetches full documents/snippets with smart formatting
- sap_help_get β retrieves complete SAP Help pages with metadata
β
Remote URL: use the public SSE 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.
Remote (recommended) β add a custom connector
- Open Claude Settings β Connectors β Add custom connector
- Paste the URL:
https://mcp-sap-docs.marianzeis.de/sse
- Save; Claude will perform the SSE handshake and obtain the /messages endpoint automatically.
(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).
Local (STDIO) β add a local MCP server
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.
Local (Streamable HTTP) β latest MCP protocol
For the latest MCP protocol (2025-03-26) with Streamable HTTP support:
- Start the streamable HTTP server:
npm run start:streamable
- Add a custom connector with the URL:
http://127.0.0.1:3122/mcp
This provides better performance and supports the latest MCP features including session management and resumability.
Remote (SSE URL)
Create or edit ~/.cursor/mcp.json
:
{
"mcpServers": {
"sap-docs-remote": {
"url": "https://mcp-sap-docs.marianzeis.de/sse"
}
}
}
Restart Cursor.
Local (STDIO)
~/.cursor/mcp.json
:
{
"mcpServers": {
"sap-docs": {
"command": "node",
"args": ["/absolute/path/to/dist/src/server.js"]
}
}
}
Restart Cursor.
Add an MCP server
Open Copilot Chat β gear icon β MCP Servers β Add. You can add by command (local/STDIO), by URL (remote HTTP/SSE), or by local Streamable HTTP using the built-in wizard. Microsoft's "Add an MCP server" doc walks through this flow.
Remote (URL):
https://mcp-sap-docs.marianzeis.de/sse
Local (command):
command: node
args: ["<absolute-path>/dist/src/server.js"]
Local (Streamable HTTP) - latest MCP protocol:
http://127.0.0.1:3122/mcp
(Start with npm run start:streamable
first)
Remote (URL server) & Local (Program server)
- URL Server β add the SSE URL:
https://mcp-sap-docs.marianzeis.de/sse
- Program Server β point to:
command: node
args: ["<absolute-path>/dist/src/server.js"]
Zed's docs show how to add URL or Program MCP servers from Project β Settings β MCP Servers.
Remote & Local
- Remote URL (SSE):
https://mcp-sap-docs.marianzeis.de/sse
- Local command:
node <absolute-path>/dist/src/server.js
Open Settings β Cascade β MCP and add a server (URL or Command).
Remote (URL) & Local (command)
- Remote URL (SSE):
https://mcp-sap-docs.marianzeis.de/sse
- Local command:
node <absolute-path>/dist/src/server.js
In LM Studio, go to Program β Install β Edit mcp.json (or use their Add MCP Server flow). Then add either a url entry (remote) or command/args (local).
Remote (SSE)
In Goose Settings β Extensions β Add custom extension:
- Type: Remote Extension (SSE)
- Endpoint:
https://mcp-sap-docs.marianzeis.de/sse
(Goose docs show similar steps for adding remote MCP endpoints as "Remote Extension".)
Remote & Local
Add an MCP entry in your Gemini CLI settings (see their MCP guide), using either:
- Remote URL:
https://mcp-sap-docs.marianzeis.de/sse
- Local command:
node <absolute-path>/dist/src/server.js
- sap_docs_search: Search official SAP documentation, APIs, sample code, and wdi5 docs
- sap_community_search: Search real-time SAP Community content with automatic full content retrieval of top 3 posts
- sap_help_search: Search SAP Help Portal using private APIs for all SAP product documentation across S/4HANA, BTP, Analytics Cloud, and more
- 1,485+ SAPUI5 files - Complete developer guide
- 195+ CAP files - Cloud Application Programming model
- 500+ OpenUI5 APIs - Control APIs with detailed JSDoc
- 2,000+ sample files - Working examples from
demokit/sample
directories - wdi5 E2E test framework docs - End-to-end testing documentation
- Real-time community content - Live posts with engagement filtering
- Intelligent Search: HTML scraping using SAP Community's "Best Match" algorithm
- Full Content Delivery: Automatic retrieval of complete blog post content for top 3 results
- Quality Filtering: Only posts with kudos > 5 for high-quality content
- Efficient API Usage: Batch content retrieval using LiQL API for fast response times
- Real-world Knowledge: Live posts with practical developer insights and solutions
- Comprehensive Coverage: Search across all SAP product documentation
- Private API Access: Direct integration with help.sap.com internal APIs
- Full Content Retrieval: Complete documentation pages with metadata
- Product Scope: S/4HANA, SAP BTP, Analytics Cloud, Fiori, ABAP, and more
- Automatic code highlighting and sample categorization
- Context-aware search with intelligent scoring
- Source-specific results for targeted searches
- SAPUI5 Documentation (
/sapui5
) - Complete developer guide with 1,485+ files - CAP Documentation (
/cap
) - Cloud Application Programming model with 195+ files - OpenUI5 API Documentation (
/openui5-api
) - 500+ control APIs with detailed JSDoc - OpenUI5 Sample Code (
/openui5-samples
) - 2,000+ working examples - wdi5 Documentation (
/wdi5
) - End-to-end test framework documentation
- Complete Blog Posts - Full technical tutorials and deep-dives with complete content
- Real-world Solutions - Comprehensive answers to development problems with full context
- Best Practices - Community-tested approaches with detailed explanations
- Code Examples - Complete implementations with full source code and explanations
- Quality Assurance - Only posts with kudos > 5, automatically ranked by relevance
- Instant Access - Top 3 results include full post content (no additional API calls needed)
- Product Documentation - Complete guides for S/4HANA, BTP, Analytics Cloud
- Implementation Guides - Step-by-step setup and configuration documentation
- Technical References - API documentation, development guides, and technical specs
- Troubleshooting - Comprehensive problem-solving documentation
- Release Notes - Latest updates and changes across SAP products
Use 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:
- Official button documentation
- Sample button implementations with JS controllers
- XML view examples
Try these with any connected MCP client:
Official Documentation:
- "How do I implement authentication in SAPUI5?"
- "Show me wdi5 testing examples for forms"
- "Find OpenUI5 button control examples with click handlers"
Community Knowledge (with full content):
- "What are the latest CAP authentication best practices from the community?"
- "Find community examples of OData batch operations with complete implementation"
- "Search for temporal data handling in CAP with real-world solutions"
SAP Help Portal:
- "How to configure S/4HANA Fiori Launchpad?"
- "Find BTP integration documentation for Analytics Cloud"
- "Search for ABAP development best practices in S/4HANA"
Claude says it can't connect
- Make sure the URL is the SSE URL:
https://mcp-sap-docs.marianzeis.de/sse
(not /messages, not /status). - Test SSE from your machine:
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.)
VS Code wizard can't detect the server
- Try adding it as URL first. If your network blocks SSE, use your local server via command:
node <absolute-path>/dist/src/server.js
- Microsoft's "Add an MCP server" guide shows both URL and command flows.
Local server runs, but the client can't find it
- Ensure you're pointing to the built entry:
node dist/src/server.js
- If using PM2/systemd, confirm it's alive:
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 # Compile TypeScript
npm run build:index # Build search index from sources
npm run build:fts # Build FTS5 database
npm run test:community # Test community search functionality
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
./setup.sh # Clone/update sources and build FTS
npm run build:index # Build index.json
npm run build # Compile TypeScript
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
)- SSH into server and pull latest code + submodules
- Update documentation sources and rebuild indices
- Restart services with health checks
-
Daily Documentation Updates (4 AM UTC)
- Update all documentation submodules to latest versions
- Rebuild search indices with fresh content
- Restart services automatically
Trigger documentation updates anytime via GitHub Actions β "Update Documentation Submodules" workflow.
- MCP Server (Node.js/TypeScript) - Exposes Resources/Tools for SAP docs, community & help portal
- Streamable HTTP Transport (Latest MCP spec 2025-03-26) - HTTP-based transport with session management and resumability
- SSE Proxy (Python) - Bridges STDIO β URL for remote clients
- Reverse Proxy (Caddy) - TLS termination and routing
- Search Engine - SQLite FTS5 + JSON indices for fast local search
- Community Integration - HTML scraping + LiQL API for full content retrieval
- SAP Help Integration - Private API access to help.sap.com content
- Total Files: 4,180+ documentation files + real-time community & help portal content
- SAPUI5 Docs: 1,485 markdown files
- CAP Docs: 195 markdown files
- OpenUI5 APIs: 500+ JavaScript control definitions
- Sample Code: 2,000+ implementation examples
- Community Posts: Real-time access with full content delivery (top 3 results)
- SAP Help Portal: Comprehensive access to all SAP product documentation
- Search Database: 8+ MB FTS5 database with 14,822+ indexed documents
- Search Coverage: Official docs + community + help portal = complete SAP ecosystem
MIT