JUHE API Marketplace
marianfoo avatar
MCP Server

SAP Documentation MCP Server

Provides offline access to SAP documentation and real-time SAP Community content, integrating official documentation with community-driven solutions for comprehensive developer support.

74
GitHub Stars
10/3/2025
Last Updated
MCP Server Configuration
1{
2 "name": "sap-docs",
3 "command": "node",
4 "args": [
5 "/path/to/sap-docs-mcp/dist/index.js"
6 ]
7}
JSON7 lines

README Documentation

SAP Documentation MCP Server

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.

Public server (MCP Streamable HTTP): https://mcp-sap-docs.marianzeis.de/mcp
Local 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


Quick start

Use the hosted server (recommended)

Point your MCP client to 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 HTTP 410 with migration info (SSE endpoint deprecated)
curl -i https://mcp-sap-docs.marianzeis.de/sse
Run it locally (STDIO + local HTTP status + Streamable HTTP)
# 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

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

What you get

🔍 Unified Documentation Search

  • search – Search across all official SAP documentation sources with intelligent filtering
  • fetch – Retrieve complete documents/snippets with smart formatting

🌐 Community & Help Portal

  • sap_community_search – Real-time SAP Community posts with full content of top 3 results (intelligently truncated to 75k chars if needed)
  • sap_help_search – Comprehensive search across SAP Help Portal documentation
  • sap_help_get – Retrieve complete SAP Help pages with metadata (intelligently truncated to 75k chars if needed)

Connect from your MCP client

Remote URL: use the public MCP 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.


Claude (Desktop / Web "Connectors")

Remote (recommended) — add a custom connector
  1. Open Claude Settings → Connectors → Add custom connector
  2. Paste the URL:
https://mcp-sap-docs.marianzeis.de/mcp
  1. Save; Claude will use the MCP Streamable HTTP protocol for communication.

Docs: Model Context Protocol "Connect to Remote MCP Servers" (shows how Claude connects to MCP servers).

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:

  1. Start the streamable HTTP server:
npm run start:streamable
  1. 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.


Cursor

Remote (MCP Streamable HTTP)

Create or edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "sap-docs-remote": {
      "url": "https://mcp-sap-docs.marianzeis.de/mcp"
    }
  }
}
Local (STDIO)

~/.cursor/mcp.json:

{
  "mcpServers": {
    "sap-docs": {
      "command": "node",
      "args": ["/absolute/path/to/dist/src/server.js"]
    }
  }
}

Eclipse (GitHub Copilot)

Eclipse users can integrate the SAP Docs MCP server with GitHub Copilot for seamless access to SAP development documentation.

Remote (recommended) — hosted server

Prerequisites

  • Eclipse Version: 2024-09 or higher
  • GitHub Copilot Extension: Latest version from Eclipse Marketplace
  • GitHub Account: With Copilot access
  • Note: Full ABAP ADT integration is not yet supported

Configuration Steps

  1. Install GitHub Copilot Extension

  2. Open MCP Configuration

    • Click the Copilot icon (🤖) in the Eclipse status bar
    • Select "Edit preferences" from the menu
    • Expand "Copilot Chat" in the left panel
    • Click on "MCP"
  3. 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/mcp"
    }
    
  4. Verify Configuration

    • The server should appear in your MCP servers list
    • Status should show as "Connected" when active

Using SAP Docs in Eclipse

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:

  • search - Unified search for all SAP development (UI5, CAP, ABAP, testing) with intelligent ABAP version filtering
  • fetch - Retrieve complete documentation for any source
  • sap_community_search - SAP Community integration
  • sap_help_search - SAP Help Portal access
Local setup — for offline use

Local MCP Server Configuration

{
  "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:

  1. Clone and build this repository locally
  2. Run npm run setup to initialize all documentation sources
  3. Ensure the server starts correctly with npm start

VS Code (GitHub Copilot Chat)

Remote (recommended) — no setup required

Prerequisites: VS Code 1.102+ with MCP support enabled (enabled by default).

Quick Setup

Create .vscode/mcp.json in your workspace:

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

Using the Remote Server

  1. Save the .vscode/mcp.json file in your workspace
  2. VS Code will automatically detect and start the MCP server
  3. Open Chat view and select Agent mode
  4. Click Tools button to see available SAP documentation tools
  5. Ask questions like "How do I implement authentication in SAPUI5?"

Benefits:

  • ✅ No local installation required
  • ✅ Always up-to-date documentation
  • ✅ Automatic updates and maintenance
  • ✅ Works across all your projects

Note: You'll be prompted to trust the remote MCP server when connecting for the first time.

Local setup — for offline use

Local STDIO Server

{
  "servers": {
    "sap-docs-local": {
      "type": "stdio",
      "command": "node",
      "args": ["<absolute-path>/dist/src/server.js"]
    }
  }
}

Local HTTP Server

{
  "servers": {
    "sap-docs-http": {
      "type": "http", 
      "url": "http://127.0.0.1:3122/mcp"
    }
  }
}

(Start local server with npm run start:streamable first)

Alternative Setup Methods

  • Command Palette: Run MCP: Add Server → choose server type → provide details → select scope
  • User Configuration: Run MCP: Open User Configuration for global setup across all workspaces

See Microsoft's "Use MCP servers in VS Code" for complete documentation.


Raycast

Remote (MCP Streamable HTTP)

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/mcp"]
    }
  }
}
Local (STDIO)

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"


Features

🔍 Advanced Search Capabilities

  • Unified search across all official SAP documentation with intelligent ABAP version filtering
  • BM25 full-text search with SQLite FTS5 for fast, relevant results (~15ms average query time)
  • Context-aware scoring with automatic stopword filtering and phrase detection
  • Version-specific filtering - shows latest ABAP by default, specific versions only when requested

🌐 Real-time External Integration

  • SAP Community: Full content retrieval using "Best Match" algorithm with engagement metrics
  • SAP Help Portal: Direct API access to all SAP product documentation (S/4HANA, BTP, Analytics Cloud)
  • Efficient processing: Batch content retrieval and intelligent caching for fast response times

💡 Smart Features

  • Automatic content enhancement: Code highlighting and sample categorization
  • Intelligent ranking: Context-aware scoring with source-specific weighting
  • Performance optimized: Lightweight SQLite FTS5 with no external ML dependencies

What's Included

This MCP server provides unified access to comprehensive SAP development documentation across multiple product areas. All sources are searched simultaneously through the search tool, with intelligent filtering and ranking.

📊 Documentation Coverage Overview

Source CategorySourcesFile CountDescription
ABAP Development4 sources40,800+ filesOfficial ABAP keyword docs (8 versions), cheat sheets, Fiori showcase, community guidelines
UI5 Development6 sources12,000+ filesSAPUI5 docs, OpenUI5 APIs/samples, TypeScript, tooling, web components, custom controls
CAP Development2 sources250+ filesCloud Application Programming model docs and Fiori Elements showcase
Cloud & Deployment3 sources500+ filesSAP Cloud SDK (JS/Java), Cloud SDK for AI, Cloud MTA Build Tool
Testing & Quality2 sources260+ fileswdi5 E2E testing framework, SAP style guides

🔍 ABAP Development Sources

  • Official ABAP Keyword Documentation (/abap-docs) - 40,761+ curated ABAP files across 8 versions (7.52-7.58 + latest) with intelligent version filtering
    📁 GitHub: marianfoo/abap-docs
  • ABAP Cheat Sheets (/abap-cheat-sheets) - 32 comprehensive cheat sheets covering core ABAP concepts, SQL, OOP, RAP, and more
    📁 GitHub: SAP-samples/abap-cheat-sheets
  • ABAP RAP Fiori Elements Showcase (/abap-fiori-showcase) - Complete annotation reference for ABAP RESTful Application Programming (RAP)
    📁 GitHub: SAP-samples/abap-platform-fiori-feature-showcase
  • DSAG ABAP Guidelines (/dsag-abap-leitfaden) - German ABAP community best practices and development standards
    📁 GitHub: 1DSAG/ABAP-Leitfaden

🎨 UI5 Development Sources

  • SAPUI5 Documentation (/sapui5-docs) - 1,485+ files - Complete official developer guide, controls, and best practices
    📁 GitHub: SAP-docs/sapui5
  • OpenUI5 Framework (/openui5) - 20,000+ files - Complete OpenUI5 source including 500+ control APIs with detailed JSDoc and 2,000+ working examples from demokit samples
    📁 GitHub: SAP/openui5
  • UI5 TypeScript Integration (/ui5-typescript) - Official TypeScript setup guides, type definitions, and migration documentation
    📁 GitHub: UI5/typescript
  • UI5 Tooling (/ui5-tooling) - Complete UI5 Tooling documentation for project setup, build, and development workflows
    📁 GitHub: SAP/ui5-tooling
  • UI5 Web Components (/ui5-webcomponents) - 4,500+ files - Comprehensive web components documentation, APIs, and implementation examples
    📁 GitHub: SAP/ui5-webcomponents
  • UI5 Custom Controls (/ui5-cc-spreadsheetimporter) - Spreadsheet importer and other community custom control documentation
    📁 GitHub: spreadsheetimporter/ui5-cc-spreadsheetimporter

☁️ CAP Development Sources

  • CAP Documentation (/cap-docs) - 195+ files - Complete Cloud Application Programming model documentation for Node.js and Java
    📁 GitHub: cap-js/docs
  • CAP Fiori Elements Showcase (/cap-fiori-showcase) - Comprehensive annotation reference and examples for CAP-based Fiori Elements applications
    📁 GitHub: SAP-samples/fiori-elements-feature-showcase

🚀 Cloud & Deployment Sources

  • SAP Cloud SDK for JavaScript (/cloud-sdk) - Complete SDK documentation, tutorials, and API references for JavaScript/TypeScript
    📁 GitHub: SAP/cloud-sdk
  • SAP Cloud SDK for Java (/cloud-sdk) - Comprehensive Java SDK documentation and integration guides
    📁 GitHub: SAP/cloud-sdk
  • SAP Cloud SDK for AI (/cloud-sdk-ai) - Latest AI capabilities integration documentation for both JavaScript and Java
    📁 GitHub: SAP/ai-sdk
  • Cloud MTA Build Tool (/cloud-mta-build-tool) - Complete documentation for Multi-Target Application development and deployment
    📁 GitHub: SAP/cloud-mta-build-tool

✅ Testing & Quality Sources

  • wdi5 Testing Framework (/wdi5) - 225+ files - End-to-end testing documentation, setup guides, and real-world examples
    📁 GitHub: ui5-community/wdi5
  • SAP Style Guides (/sap-styleguides) - Official SAP coding standards, clean code practices, and development guidelines
    📁 GitHub: SAP/styleguides

Example Prompts

Try these with any connected MCP client to explore the comprehensive documentation:

🔍 ABAP Development Queries

ABAP Keyword Documentation (8 versions with intelligent filtering):

  • "What is the syntax for inline declarations in ABAP 7.58?"
  • "How do I use SELECT statements with internal tables in ABAP 7.57?"
  • "Show me exception handling with TRY-CATCH in modern ABAP"
  • "What are constructor expressions for VALUE and CORRESPONDING?"
  • "How do I implement ABAP Unit tests with test doubles?"

ABAP Best Practices & Guidelines:

  • "What is Clean ABAP and how do I follow the style guide?"
  • "Show me ABAP cheat sheet for internal tables operations"
  • "Find DSAG ABAP guidelines for object-oriented programming"
  • "How to implement RAP with EML in ABAP for Cloud?"

🎨 UI5 Development Queries

SAPUI5 & OpenUI5:

  • "How do I implement authentication in SAPUI5?"
  • "Find OpenUI5 button control examples with click handlers"
  • "Show me fragment reuse patterns in UI5"
  • "What are UI5 model binding best practices?"

Modern UI5 Development:

  • "Show me TypeScript setup for UI5 development"
  • "How do I configure UI5 Tooling for a new project?"
  • "Find UI5 Web Components integration examples"
  • "How to implement custom controls with UI5 Web Components?"

☁️ CAP & Cloud Development

CAP Framework:

  • "How do I implement CDS views with calculated fields in CAP?"
  • "Show me CAP authentication and authorization patterns"
  • "Find CAP Node.js service implementation examples"
  • "How to handle temporal data in CAP applications?"

Cloud SDK & Deployment:

  • "How do I use SAP Cloud SDK for JavaScript with OData?"
  • "Show me Cloud SDK for AI integration examples"
  • "Find Cloud MTA Build Tool configuration for multi-target apps"
  • "How to deploy CAP applications to SAP BTP?"

✅ Testing & Quality

Testing Frameworks:

  • "Show me wdi5 testing examples for forms and tables"
  • "How do I set up wdi5 for OData service testing?"
  • "Find end-to-end testing patterns for Fiori Elements apps"

Code Quality:

  • "What are SAP style guide recommendations for JavaScript?"
  • "Show me clean code practices for ABAP development"

🌐 Community & Help Portal

Community Knowledge (with full content):

  • "Find community examples of OData batch operations with complete implementation"
  • "Search for RAP development tips and tricks from the community"
  • "What are the latest CAP authentication best practices from the community?"

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"

Troubleshooting

Claude says it can't connect
  • Make sure you're using the modern MCP Streamable HTTP URL: https://mcp-sap-docs.marianzeis.de/mcp (not /sse, which is deprecated).
  • Test MCP endpoint from your machine:
curl -i https://mcp-sap-docs.marianzeis.de/mcp

You should see JSON indicating MCP protocol support.

VS Code wizard can't detect the server
  • Try adding it as URL first. If there are connection issues, use your local server via command:
node <absolute-path>/dist/src/server.js
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 .

Development

Build Commands

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)

Server Commands

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)

Local Setup

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.


Health & Status Monitoring

Public Endpoints

# Check server status
curl -sS https://mcp-sap-docs.marianzeis.de/status | jq .

# Test MCP endpoint
curl -i https://mcp-sap-docs.marianzeis.de/mcp

Local Endpoints

# HTTP server status
curl -sS http://127.0.0.1:3001/status | jq .

# MCP Streamable HTTP server status  
curl -sS http://127.0.0.1:3122/health | jq .

Deployment

Automated Workflows

This project includes dual automated workflows:

  1. Main Deployment (on push to main or manual trigger)

    • SSH into server and pull latest code
    • Run enhanced setup with optimized submodule handling
    • Restart all PM2 processes (http, streamable) with health checks
  2. Daily Documentation Updates (4 AM UTC)

    • Update all documentation submodules to latest versions
    • Rebuild search indices with fresh content using enhanced setup
    • Restart services automatically

Manual Updates

Trigger documentation updates anytime via GitHub Actions → "Update Documentation Submodules" workflow.


Architecture

  • MCP Server (Node.js/TypeScript) - Exposes Resources/Tools for SAP docs, community & help portal
  • Streamable HTTP Transport (Latest MCP spec) - HTTP-based transport with session management and resumability
  • BM25 Search Engine - SQLite FTS5 with optimized OR-logic queries for fast, relevant results
  • Optimized Submodules - Shallow, single-branch clones with blob filtering for minimal bandwidth

Technical Stack

  • Search Engine: BM25 with SQLite FTS5 for fast full-text search with OR logic
  • Performance: ~15ms average query time with optimized indexing
  • Transport: Latest MCP protocol with HTTP Streamable transport and session management

Quick Install

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source

Boost your projects with Wisdom Gate LLM API

Supporting GPT-5, Claude-4, DeepSeek v3, Gemini and more.

Enjoy a free trial and save 20%+ compared to official pricing.