SAP ADT from your terminal — same auth stack as Eclipse.
Install · Quick start · Use · MCP · Docs
OpenADT lets you call SAP ADT from your terminal, scripts, CI, or AI agents — using the same JCo + SNC logon stack Eclipse ADT uses. One tool, three entry points:
openadt fetch— one ADT requestopenadt proxy— a local HTTP endpoint any IDE /curlcan useopenadt mcp serve— gives any AI agent the official SAP ADT MCP tools
You bring JCo and (if needed) sapcrypto from your SAP install. OpenADT does the rest.
scoop bucket add openadt https://github.com/abapify/scoop-bucket
scoop install openadtbrew tap abapify/openadt
brew install openadtgit clone https://github.com/abapify/openadt.git
cd openadt
./mvnw -q verify -PdistributionYou'll also need: SAP JCo 3.x (jar + native for your OS). For SNC SSO add CryptoLib /
sapcrypto. Both come from your SAP or corporate install — OpenADT does not bundle them.
# Detect your SAP systems and JCo from SAP GUI / Eclipse
openadt config bootstrap
# Build the SDK runtime (needed for the default transport)
openadt config build
# Make a request
openadt fetch DEV /sap/bc/adt/discovery --pretty
# Or start a local proxy and reuse one warm SAP session
openadt proxy DEV --listen 127.0.0.1:8080DEV is a placeholder for your own system alias — see what openadt config bootstrap produced under ~/.openadt/.
openadt fetch DEV /sap/bc/adt/discovery --pretty
openadt fetch DEV /sap/bc/adt/core/http/systeminformation --json
openadt fetch DEV /sap/bc/adt/programs/programs \
--header "Accept: application/vnd.sap.adt.programs.v1+xml"openadt proxy DEV --listen 127.0.0.1:8080Point any client at http://127.0.0.1:8080/sap/bc/adt/.... Add --local-auth basic to require a local-only username/password (recommended for VS Code / shared boxes — those credentials are not SAP users):
export OPENADT_PROXY_PASSWORD="any-local-secret"
openadt proxy DEV --listen 127.0.0.1:8080 --local-auth basic --local-username openadtWith the proxy running, openadt fetch reuses the same warm session — much faster than a cold SDK start every time.
openadt config bootstrap reads your existing SAP GUI and Eclipse ADT configuration and figures out your systems, JCo hostnames, SNC names, and runtime paths for you. No hand-typed host/port/SNC config. If a value is missing it picks a sensible default (current OS user, language EN, etc.).
Need to add a system that isn't in SAP GUI or Eclipse? openadt config destinations create --help.
openadt mcp serve starts the official SAP ADT MCP server (from the SAP ADT VS Code extension) and exposes it to any agent. Two transports:
| Transport | How to connect | Use when |
|---|---|---|
| stdio | command: "openadt", args: ["mcp","serve","--stdio"] |
CLI agents (Cursor, Devin, Claude Desktop…) |
| HTTP | http://localhost:2236/mcp + Authorization: Bearer <token> |
IDEs / agents that speak Streamable HTTP MCP |
One-time setup: install the SAP ADT VS Code extension — OpenADT drives it headlessly, VS Code does not need to stay open.
Cursor / Claude Desktop / Devin — .cursor/mcp.json (or equivalent):
{
"mcpServers": {
"sap-adt": {
"command": "openadt",
"args": ["mcp", "serve", "--stdio"]
}
}
}Claude Code uses .mcp.json at the repo root (same JSON shape). Keep the server key short (sap-adt) — Claude + AWS Bedrock reject prefixed tool names longer than 64 characters. See docs/usage.md — MCP troubleshooting.
| Problem | Fix |
|---|---|
JCo jar not configured |
Run openadt config bootstrap; check ~/.openadt/local.openadt.toml |
no sapjco3 in java.library.path |
Use the OS that owns the native lib (Windows = sapjco3.dll) |
GSS-API: No credentials (SNC) |
Install Secure Login on Windows or set up SECUDIR on Linux |
Connection refused on the proxy |
Start openadt proxy first; check the --listen port |
Claude Code ValidationException (tool name ≤ 64) |
Shorten MCP server key in .mcp.json to sap-adt — MCP troubleshooting |
| Want more detail | export OPENADT_VERBOSE=true (PowerShell: $env:OPENADT_VERBOSE="true") |
| If you want to… | Read |
|---|---|
| Use the installed CLI | docs/usage.md |
| Set up VS Code ABAP FS via the proxy | docs/integrations/abap-fs.md |
| Build from a clone | docs/contributing.md |
| See the full command / config reference | specs/cli.md · specs/config.md |
Review scores notebook auto-rebuild: On pushes to main, when .act/data/review_scores.csv or .act/.review_scores_analysis.ipynb changes, the CI workflow .github/workflows/rebuild-review-scores-notebook.yml automatically rebuilds the notebook by running scripts/rebuild-review-scores-notebook.py and commits the result back to the repository. This ensures the analysis notebook stays synchronized with the underlying data.
Apache License 2.0. SAP trademarks belong to their respective owners; this project is not affiliated with SAP SE.