SAP Note Search MCP Server
The SAP Note Search MCP Server enables AI assistants to search and retrieve SAP Notes/Knowledge Base articles directly from SAP's Support Portal.
Search SAP Notes (
sap_note_search): Find relevant notes by keyword, error code, transaction code, component, or note number — returns a ranked list with metadata (ID, title, summary, component, release date, URL)Fetch Full Note Details (
sap_note_get): Retrieve complete content and enriched metadata for a specific note, including problem descriptions, root cause analysis, step-by-step solutions, affected releases, support packages, references, prerequisites, side effects, correction summaries, manual activity instructions, and attachmentsABAP Correction Instructions: Optionally fetch detailed ABAP correction details (affected objects, per-correction prerequisites) via OData using
includeCorrections=trueFlexible Authentication: Username/password or SAP Passport certificate (.pfx), with MFA/2FA support via headful browser mode
Smart Session Caching: Caches session cookies locally (
token-cache.json) to minimize re-authentication, with configurable TTL (default 12 hours)Multi-language Support: Search and retrieve notes in English (EN) or German (DE)
HTTP/SSE Transport: Run as an HTTP server for remote or multi-client access, with optional bearer token protection
Docker Support: Pre-built Docker image with all Playwright/Chromium dependencies included
MCP Client Integration: Works with Cursor, Claude Desktop, VS Code with Copilot, and other Model Context Protocol clients
Utilizes certificate-based authentication to securely access SAP systems, handling complex authentication flows for retrieving SAP Notes content.
Provides direct access to SAP Notes and Knowledge Base articles using SAP Passport certificate authentication, enabling searching for specific notes by ID or keywords and retrieving their full content and metadata.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SAP Note Search MCP ServerFind SAP Note 2744792"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SAP Note Search MCP Server
MCP server for searching and retrieving SAP Notes / KB articles with full metadata extraction
This MCP Server uses private APIs from SAP behind authentication. Please check whether the use violates SAP's ToS. The author assumes no liability for this. Because of this i do not guarantee that the server will always work.
This Model Context Protocol (MCP) server gives AI coding assistants (Cursor, Claude Desktop, VS Code, etc.) direct access to SAP Notes and Knowledge Base articles. It authenticates with SAP via username/password or SAP Passport certificate and uses Playwright browser automation to retrieve actual note content.
Live Preview in Cursor

Related MCP server: SEO Inspector & Schema Validator MCP
Features
Two MCP tools —
search(find notes) andfetch(retrieve full content + metadata)Enriched metadata — validity ranges, support packages, references, prerequisites, side effects, correction summaries, attachments
Optional correction details —
fetch(includeCorrections=true)retrieves detailed ABAP correction instructions (affected objects, per-correction prerequisites) via an additional OData callTwo auth methods — username/password (recommended) or SAP Passport certificate
MFA/2FA support — manual code entry in headful mode
Smart caching — session cookies cached locally (configurable TTL)
Docker support — pre-built image with all Playwright dependencies
Quick Start
Prerequisites
Node.js 18+ — Download here
SAP S-User — with access to SAP Support Portal / me.sap.com
An MCP client — Cursor, Claude Desktop, VS Code with Copilot, etc.
Installation
git clone https://github.com/marianfoo/mcp-sap-notes
cd mcp-sap-notes
npm install
npm run buildAuthentication
The server supports two methods. Choose whichever is easier for you.
Option 1: Username / Password (Recommended)
The simplest approach — no certificate management required.
SAP_USERNAME=your.email@company.com
SAP_PASSWORD=your_sap_passwordOr pass credentials directly in your MCP client config (no .env file needed):
{
"mcpServers": {
"sap-notes": {
"command": "node",
"args": ["/path/to/mcp-sap-notes/dist/mcp-server.js"],
"env": {
"SAP_USERNAME": "your.email@company.com",
"SAP_PASSWORD": "your_sap_password"
}
}
}
}Option 2: SAP Passport Certificate
Uses a .pfx client certificate for TLS-level authentication.
Download your certificate from SAP Passport
Place the
.pfxfile incerts/:mkdir -p certs cp ~/Downloads/sap.pfx certs/Configure:
PFX_PATH=./certs/sap.pfx PFX_PASSPHRASE=your_certificate_passphrase
Auto Mode (Default)
When AUTH_METHOD=auto (the default), the server picks the first available method:
Password — if
SAP_USERNAME+SAP_PASSWORDare setCertificate — if
PFX_PATH+PFX_PASSPHRASEare setError — if neither is configured
You can force a method with AUTH_METHOD=password or AUTH_METHOD=certificate.
MFA / 2FA
If your SAP account uses two-factor authentication:
HEADFUL=true # show the browser window so you can enter the code
MFA_TIMEOUT=120000 # wait up to 2 minutes for code entry (ms)The server detects TOTP, passcode, and verification pages automatically and waits for you to complete the challenge.
Token Caching
After successful login, session cookies are cached to token-cache.json (default TTL: 12 hours, configurable via MAX_JWT_AGE_H). Delete the file to force re-authentication.
Connect to your MCP Client
Cursor / Claude Desktop
Add to your MCP settings (settings.json or claude_desktop_config.json):
With username/password (recommended):
{
"mcpServers": {
"sap-notes": {
"command": "node",
"args": ["/full/path/to/mcp-sap-notes/dist/mcp-server.js"],
"env": {
"SAP_USERNAME": "your.email@company.com",
"SAP_PASSWORD": "your_sap_password"
}
}
}
}With certificate (via .env file):
{
"mcpServers": {
"sap-notes": {
"command": "node",
"args": ["/full/path/to/mcp-sap-notes/dist/mcp-server.js"]
}
}
}Note: Replace the path with your actual absolute path. On Windows use
C:\\Users\\you\\..., on macOS/Linux use/Users/you/....
After adding the config, restart your MCP client. The tools will appear in the AI assistant.
Available Tools
search
Search SAP Notes by keyword, error code, component, or note number.
Parameter | Type | Required | Default | Description |
| string | Yes | — | Search query (2-200 chars) |
|
| No |
| Language |
Examples:
Search for SAP Notes about "OData gateway error 415"
Find SAP Note 2744792fetch
Retrieve full content and enriched metadata for a specific SAP Note.
Parameter | Type | Required | Default | Description |
| string | Yes | — | Note ID (alphanumeric) |
|
| No |
| Language |
| boolean | No |
| Fetch detailed ABAP correction instructions via OData |
Returns (beyond the basic content):
Software component validity ranges
Support packages and patches
Cross-references (to/from other notes)
Prerequisites, side effects
Correction instruction summaries and counts
Manual activity instructions
Attachments and SNOTE download URL
(with
includeCorrections=true) Detailed correction entries with affected ABAP objects (TADIR) and per-correction prerequisites
Examples:
Get the full content of SAP Note 2744792
Show me note 3481252 with correction detailsDocker
A Dockerfile is included with all Playwright/Chromium dependencies pre-installed:
docker build -t mcp-sap-notes .
docker run -it \
-e SAP_USERNAME="your.email@company.com" \
-e SAP_PASSWORD="your_sap_password" \
mcp-sap-notesConfiguration Reference
Environment Variables
Variable | Required | Default | Description |
| * | — | SAP login username (email) |
| * | — | SAP login password |
| * | — | Path to SAP Passport |
| * | — | Certificate passphrase |
| No |
|
|
| No |
| 2FA wait timeout in ms |
| No |
| Token cache lifetime in hours |
| No |
| Show browser window (for debugging / 2FA) |
| No |
|
|
| No |
| Port for HTTP MCP transport |
| No | — | Bearer token for HTTP server auth |
* At least one auth pair is required: either SAP_USERNAME + SAP_PASSWORD or PFX_PATH + PFX_PASSPHRASE.
HTTP Server
An HTTP/SSE transport is also available for remote or multi-client setups:
npm run serve:http # start HTTP server
npm run serve:http:debug # with debug loggingProtect with a bearer token:
ACCESS_TOKEN=your-secret-tokenClients must then include Authorization: Bearer your-secret-token in every request.
Testing & Development
npm run test:auth # test authentication flow
npm run test:api # test SAP Notes API
npm run test:mcp # test full MCP server
npm run test # run all testsDebug mode:
HEADFUL=true LOG_LEVEL=debug npm run test:authProject Structure
mcp-sap-notes/
├── src/
│ ├── mcp-server.ts # Main MCP server (stdio transport)
│ ├── http-mcp-server.ts # HTTP/SSE MCP transport
│ ├── auth.ts # SAP authentication (password + certificate)
│ ├── sap-notes-api.ts # SAP Notes API client + OData corrections
│ ├── html-utils.ts # HTML-to-text parsing
│ ├── schemas/
│ │ └── sap-notes.ts # Zod schemas + tool descriptions
│ ├── types.ts # TypeScript definitions
│ └── logger.ts # Logging
├── docs/
│ ├── tools.md # Detailed tool reference
│ ├── authentication.md # Auth deep dive
│ ├── architecture.md # Architecture overview
│ └── setup.md # Setup guide
├── test/ # Test scripts
├── dist/ # Compiled JS
├── certs/ # Certificate directory
├── Dockerfile # Docker image
├── env.example # Environment template
└── README.mdTroubleshooting
Authentication
Symptom | Fix |
"Could not find username field" | SAP login page may have changed — try |
"Authentication timed out" | Check connectivity; increase |
"Certificate load failed" | Verify |
Browser
Symptom | Fix |
"Browser launch failed" | Run |
Hangs during auth | Use |
MCP Client
Symptom | Fix |
Tools not showing | Restart client; verify absolute path in config |
"MCP server failed to start" | Check |
See docs/authentication.md for detailed troubleshooting.
Contributing
Fork the repository
Create a feature branch:
git checkout -b feature/amazing-featureCommit your changes:
git commit -m 'Add amazing feature'Push to the branch:
git push origin feature/amazing-featureOpen a Pull Request
License
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marianfoo/mcp-sap-notes'
If you have feedback or need assistance with the MCP directory API, please join our Discord server