Skip to main content

MCP server that searches SAP Help Portal and SAP Community from your AI assistant

Project description

sap-help-mcp

Stop your AI assistant from guessing at SAP configuration. This MCP server gives it live access to the two places the answer actually lives: the official SAP documentation on help.sap.com and the practitioner knowledge on community.sap.com.

CI PyPI License


Why

Ask a general-purpose model how to configure foreign currency valuation, or what message F5 702 means, and you get an answer assembled from memory: plausible, often subtly wrong, and impossible to verify. SAP documentation is huge, versioned per release, and mostly invisible to ordinary web search.

With this server connected, the assistant searches the portal first and answers from the page it just read — with a link you can open.

You: How do I set up a substitution for the profit center in FI documents in ECC?

Assistant: (calls help_search, then help_read) According to Substitution in Accounting Documents (SAP_ERP 6.18) the callup point is 0002 … — https://help.sap.com/docs/SAP_ERP/…

It also reaches the Support Content space — the FAQs and troubleshooting guides written by SAP support, the ones that normally sit behind a search box nobody knows about — and the forum, for the "has anyone actually hit this" half of the job.

What it gives the assistant

Tool What it does
help_search(query, product?, version?, limit) Search help.sap.com: all SAP product documentation plus the Support Content wiki.
help_read(ref, part?) Fetch a full help.sap.com page as markdown, paginated for long pages.
community_search(query, limit, min_kudos) Search SAP Community blogs, Q&A and discussions, ranked on our side.
web_status() Version, source endpoints, cache state. Useful to confirm the connection works.

No credentials, no local data, nothing written to disk. The server only issues anonymous GET requests to public portal endpoints and caches responses in memory for six hours.

SAP Notes are not included. Reading Notes requires a personal S-user, and this server deliberately holds no secrets. Use mcp-sap-notes alongside it — this server surfaces the Note numbers, that one opens them.


Install

Pick one. Option A is the least work; option B also covers Claude Code and other MCP clients.

Option A — one-click bundle (Claude Desktop, Windows and macOS)

  1. Download sap-help-mcp.mcpb from the latest release.
  2. In Claude Desktop: Settings → Extensions → Install Extension… and select the file (or just drag it onto that page).
  3. Confirm the install prompt. Done.

You do not need Python. The bundle uses the MCPB uv runtime — Claude Desktop downloads a private Python and the dependencies itself, per bundle, and removes them on uninstall.

Option B — uvx (Claude Desktop, Claude Code, Cursor, anything MCP)

Install uv once — it is a single self-contained binary:

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

Claude Code — one command, nothing to edit:

claude mcp add sap-help -- uvx sap-help-mcp

Claude Desktop — add this block to the mcpServers section of your config file (keep any servers already listed there):

{
  "mcpServers": {
    "sap-help": {
      "command": "uvx",
      "args": ["sap-help-mcp"]
    }
  }
}
Config file
Windows %APPDATA%\Claude\claude_desktop_config.json
macOS ~/Library/Application Support/Claude/claude_desktop_config.json

Then quit Claude Desktop completely (Cmd+Q on macOS, File → Exit on Windows — closing the window is not enough) and start it again. uvx installs the package on first launch, which takes a few seconds once.

Option C — from source (for development)

git clone https://github.com/aamelin1/sap-help-mcp.git
cd sap-help-mcp
uv sync --extra dev
uv run pytest                       # offline tests
uv run python -m sap_help_mcp.probe # live check against both portals

Point a client at the checkout with "command": "uv", "args": ["run", "--directory", "/abs/path/to/sap-help-mcp", "sap-help-mcp"].


Check that it works

Ask the assistant: "call web_status". You should get the server version and the portal endpoints back. Then try a real question, e.g. "search SAP help for document splitting in new general ledger".

Getting good answers out of it

  • Queries go to the portals in English — both sources are English-only. Ask your own question in any language; the assistant is instructed to translate it into SAP terminology itself («переоценка валюты»foreign currency valuation).
  • Filter by product line when you know it. SAP_ERP is ECC 6.0, SAP_S4HANA_ON_PREMISE and SAP_S4HANA_CLOUD are what they say, and SUPPORT_CONTENT is the support Expert Content wiki. Without a filter the portal happily returns ByDesign pages.
  • Rephrase once or twice if the results are thin. It helps more than anything else, and the assistant is told to do it.
  • The forum is the forum. community_search returns field experience, not truth. Each result carries a match_score and a kudos count so quality is visible.

Self-hosting over HTTP (optional)

For a shared deployment, run it as an HTTP service instead of stdio:

export MCP_TOKEN=$(openssl rand -hex 32)
echo "give this to your clients: $MCP_TOKEN"
MCP_TRANSPORT=http MCP_HOST=127.0.0.1 uvx sap-help-mcp
Variable Default Meaning
MCP_TRANSPORT stdio stdio or http
MCP_HOST / MCP_PORT 127.0.0.1 / 8010 Listen address
MCP_TOKEN Bearer token. Required unless the listener is on loopback: the server refuses to start on any other address without one.

Every request must carry Authorization: Bearer <token> (compared with hmac.compare_digest); GET /health stays open for monitoring. Put it behind a TLS-terminating reverse proxy — the server speaks plain HTTP and binds to localhost by default.

Troubleshooting

Symptom Cause and fix
Server does not appear in Claude Desktop The config was edited but the app was not fully restarted. Quit it entirely and reopen.
spawn uvx ENOENT uvx is not on the PATH the app inherits. Restart the machine after installing uv, or put the absolute path in command (%USERPROFILE%\.local\bin\uvx.exe, ~/.local/bin/uvx).
Tools return "Network unreachable or timed out" A corporate proxy or firewall is blocking the portals. Check that help.sap.com opens in a browser on the same machine.
Tools return SAP responded 4xx The portal probably changed its undocumented endpoints. Run uv run python -m sap_help_mcp.probe --raw and open an issue with the output.
Search finds nothing sensible Use the exact English SAP term, a transaction code or a message number; drop the product filter.
Claude Desktop logs macOS: ~/Library/Logs/Claude/mcp-server-sap-help.log · Windows: %APPDATA%\Claude\logs\

How it works

Roughly 800 lines of Python in four layers: tool declarations, one module per source, and a single place where HTTP happens. docs/ARCHITECTURE.md covers the three-step page-read chain, the Khoros LiQL ranking problem and the reasoning behind each design decision.

Contributing

Issues and pull requests are welcome. Run uv run pytest before submitting; if you touched any portal request shape, also run uv run python -m sap_help_mcp.probe and say in the PR that you did — those endpoints are undocumented and only live checks prove anything.

Legal

SAP and other SAP product names are trademarks of SAP SE. This project is not affiliated with SAP. All content reachable through the server remains the property of SAP SE and the respective authors; the server stores and redistributes nothing. See NOTICE for third-party attribution, including mcp-sap-docs, whose portal request shapes this project builds on.

Licensed under the Apache License 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sap_help_mcp-1.0.0.tar.gz (27.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sap_help_mcp-1.0.0-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file sap_help_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: sap_help_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 27.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for sap_help_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2e2aede52f9662a7cbb25189d45789809d0209c240449e23627e963721b38d2d
MD5 c2b26cc28312e44da2673cefc83e23c7
BLAKE2b-256 60d73142f1e882725a3759d50811fb8c3d3463a12b19ed295bddf487a728ce93

See more details on using hashes here.

Provenance

The following attestation bundles were made for sap_help_mcp-1.0.0.tar.gz:

Publisher: release.yml on aamelin1/sap-help-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sap_help_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: sap_help_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for sap_help_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4552c1c6be4303b7cb05b497df809a34d98c2c035f62e95fc9eb88a30d6a67eb
MD5 22d43ee255ff601602eb098dca79f68d
BLAKE2b-256 588fb9358e530322d38594209351545da16e561ce98798ca46652ba7a6a95c01

See more details on using hashes here.

Provenance

The following attestation bundles were made for sap_help_mcp-1.0.0-py3-none-any.whl:

Publisher: release.yml on aamelin1/sap-help-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page