Are you the author? Sign in to claim
sap-mcp
MCP server for SAP S/4HANA via the ADT API. Runs locally over stdio.
Prerequisites (install these first):
process.loadEnvFile; also provides npm) — requiredfiori-dev...) — requiredgit clone. No git? See below.
(To install on Windows: winget install --id Git.Git -e, then reopen your
terminal. macOS: brew install git. Verify with git --version.)Then:
git clone https://github.com/Tjarliman/sap-mcp.git
cd sap-mcp
npm install
cp .env.example .env # PowerShell/CMD: copy .env.example .env
No git? Instead of
git clone, download the repo from GitHub: green Code button -> Download ZIP, unzip it, thencdinto the folder and continue fromnpm install. (git is only nicer later, for pulling updates withgit pullinstead of re-downloading.)
Now edit .env and fill in the real HOST/CLIENT for each system plus
your own SAP USER/PASS. The real hostnames are intentionally not in this
repo — get them from whoever maintains it. Then verify and register:
node test.mjs # PASS = install OK (does NOT check credentials)
node test.mjs --live # PASS = credentials + SAP reachable <-- the real proof
# Register with Claude Code (use the ABSOLUTE path to server.js on this machine):
claude mcp add sap-adt --scope user -- node C:\Users\<name>\sap-mcp\server.js
Start a fresh Claude Code session afterwards for the server to load.
node test.mjsreports PASS even before you edit.env— it only checks that the server boots and loads profiles.node test.mjs --liveis what actually confirms your credentials and SAP connectivity.
If you already have sap-mcp set up, pull the latest and restart Claude Code:
cd sap-mcp
git pull # no git? re-download the ZIP over your folder (keep your .env)
npm install # only needed if dependencies changed; harmless to run anyway
node test.mjs # confirm it still boots
You do not need to re-run claude mcp add — the registration persists. Your
.env is never touched by an update (it's gitignored), so your credentials and
profiles carry over.
Important — quit and restart Claude Code after updating. New tools are only discovered when a Claude Code session starts. If an update adds a tool (like
create_programbelow), a reconnect or/mcprefresh is not enough: fully quit Claude Code and open a fresh session. (Behaviour-only changes to existing tools just need the server to respawn, which a new session also does.)
To confirm the update loaded, start a fresh session and ask Claude to run
list_servers, or check that the new tool is available.
create_program — create a brand-new classic ABAP report (executable
program, PROG/P) and activate it in one call. Previously the server could
only edit an existing program; now it can create one from scratch. Refuses
to run on production profiles. This is a new tool, so you must restart
Claude Code after updating (see above)..env: every
SAP_<KEY>_HOST you define becomes a switchable profile named <KEY>, with no
code change needed to add a system. Profile switching is case-insensitive.ABLP
(production) and ABLQ (QAS). Read access still works on every profile.The node test.mjs / node test.mjs --live steps above are the self-check
(npm test runs the structural one). The bundled harness talks to the server
over stdio — no Claude Code needed.
Once registered, you can also verify through Claude Code — ask it to run
list_servers, or a query_table with SELECT MANDT, MTEXT FROM T000.
Each person uses their own named SAP user per system. All connection
details and credentials live in .env (gitignored); server.js contains no
real hostnames. Never commit or share .env — sharing a service account breaks
the SE24/transport audit trail and usually violates license terms.
Fill in HOST, CLIENT, USER and PASS for each profile in .env. Every
SAP_<KEY>_HOST you define becomes a switchable profile named <KEY> — the
list below is illustrative, not fixed, so add or rename systems freely:
| Profile | Role |
|---|---|
ABLD | Development |
dev120 | Development (client 120) |
snet | QA/Test |
ABLQ | QAS (read-only) |
ABLP | Production |
snet2 | S/4HANA on-prem |
Writes to ABLP (production) and ABLQ (QAS) are blocked in server.js; read
access is allowed on every profile.
This software is provided "as is", without warranty of any kind, express or implied. You use it entirely at your own risk.
.env. Keep that file private, use your own named user, and connect only to
systems you are authorized to access.ABLP (production) profile are
blocked, but the tool can still read from any system you configure. Use it
at your own discretion.MIT. The license text includes the binding "as is" / no-warranty / no-liability terms; the Disclaimer above restates them in plain language.
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official GitHub integration for repos, issues, PRs, and CI/CD workflows