MCP serverMCP servertypeExposes tools to a coding agent over MCP.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →

chandrashekhar-mahajan/abap-mcp-server

Fifteen ADT tools behind five pluggable authentication strategies — Kerberos/SPNEGO, OAuth 2.0, X.509, browser SSO and basic — for systems where basic auth is not an option.

Most servers in this corner assume a username and a password. In an enterprise that is SSO-only, that assumption is the whole blocker, and this is the entry that answers it: Kerberos/SPNEGO through the SAP Secure Login Client or Windows SSPI, OAuth 2.0, X.509 certificates, and a browser SSO flow served from a /login page for the interactive cases. Beside the auth work it carries fifteen tools for search, read and write, tests, table queries and dump analysis, CSRF and session cookie handling, a /health endpoint, and both streamable HTTP and legacy SSE on one /sse endpoint.

Facts

Last pushLicenceMIT

Where it sits

Lives in
Provides
Agent access to your codeABAPAgent access to your codecapabilityLetting a coding agent read the project or the system you actually have, reach its model, its objects and its checks, and act on it. In file-based environments that works out of the box; complex systems need dedicated access capabilities. Whatever the environment, the agent also needs project- and framework-specific context, so it understands the thing in front of it rather than guessing from what it remembers of its training data. The transport is incidental: an MCP server, a language server or a CLI answer the same question, and what differs between them is how much of the real thing the agent can see. Distinct from [MCP servers](capability:mcp-servers), which is a protocol adapter on your own running service, and from [agent guidance](capability:agent-guidance), which is knowledge handed over as files rather than read from the thing itself.

Before choosing this

Conditions

PracticalFunctional boundary

Built and last touched in the same week of March 2026, so the maintenance reading is what it is — the authentication work is the reason to look, and a stalled repository is the reason to read it before depending on it.

PolicySAP API Policy 4.2026a§ 1.1, 1.2, 2.2.2from Agent access to your codeAn MCP server calls ADT or another SAP API of a running system for an agent.
  • § 1.1 Published APIs. Published APIs are made available for the documented purposes identified by SAP, including integration, extensions and data exchange.
  • § 1.2 Non-Published APIs. Customer and third-party applications must not access non-published APIs except where documentation permits it or SAP otherwise authorizes it.
  • § 2.2.2 AI call sequences and data extraction. Outside SAP-endorsed architectures, data services or expressly identified pathways, the policy prohibits specified agentic API use and systematic or large-scale extraction.

An agent that plans and executes ADT calls is the case section 2.2.2 names. Check that the endpoints are published for the intended use, and that the design runs within a pathway SAP identifies for it.

SAP API Policy 4.2026a →

What it declares

Every artifact

Type
MCP server
Origin
Independently maintained
Runtime
Node.js

As an MCP server

Runs as
local process
Transport
stdioHTTPSSE
Authentication
Kerberosuser and passwordOAuth / OIDCX.509browser SSOSAML
Tools
15
Read-only
nostates it is not
Guardrails
4 quoted from README show all
  • Server runs locally on localhost — no credentials sent externally

  • Kerberos/SPNEGO never stores passwords — uses Windows domain TGT

  • CSRF tokens auto-managed, session cookies kept in memory only

  • Restrict the SAP user's authorizations to ADT-relevant objects

For agent access to ABAP code

Read
sourcesearchwhere-usedDDICCDStable data
Change
writecreateactivatetransportsgit
Check
syntaxATCABAP Unit
Run
run codedumps
property statedstated nonot said

Connections1

Your machinechandrashekhar-mahajan/abap-mcp-server — README, checked 2026-09-11: “**stdio mode** available for clients that spawn the server as a child process”stdio or HTTP or SSEYour MCP client, actorYour MCP clientchandrashekhar-mahajan/abap-mcp-server, modulechandrashekhar-mahaj…
SAPnot SAP's, or the project's ownstated in the document

README

quoted from chandrashekhar-mahajan/abap-mcp-server under MIT, read
chandrashekhar-mahajan/abap-mcp-server/README.mdOn GitHub

ABAP MCP Server

A Node.js Model Context Protocol (MCP) server that connects AI assistants to SAP ABAP systems via SAP's ADT REST APIs.
Built for Eclipse ADT + GitHub Copilot, but works with any MCP-compatible client (VS Code, Cursor, etc.).

Supports enterprise SSO-only environments with 5 pluggable authentication strategies including Kerberos/SPNEGO, OAuth 2.0, X.509 certificates, Browser SSO, and basic auth.


Features

  • 15 ABAP development tools exposed via MCP — search, read/write code, run tests, query data, analyze dumps
  • Kerberos/SPNEGO support for corporate SSO systems (SAP Secure Login Client / Windows SSPI)
  • Dual MCP transport — Streamable HTTP (modern) and legacy SSE (fallback), both on a single /sse endpoint
  • Automatic CSRF token management and SAP session cookie handling
  • Login Web UI at /login for interactive OAuth and Browser SSO authentication
  • Health endpoint at /health to verify connectivity and auth status
  • stdio mode available for clients that spawn the server as a child process

Tools (15)

CategoryToolDescription
Searchsearch_abap_objectsSearch for objects by name pattern with wildcards (programs, classes, tables, etc.)
Searchsearch_abap_object_linesFull-text search within ABAP source code (grep-like)
Searchfind_where_usedWhere-used analysis for classes, methods, function modules, data elements
Codeget_abap_object_linesRead source code with line numbers (supports line range)
Codeget_abap_object_infoObject metadata — package, author, creation date, transport
Codewrite_abap_sourceWrite/update source code (auto lock/unlock)
Codeabap_activateActivate one or more ABAP objects
Codeget_version_historyVersion history with dates and authors
Testingrun_unit_testsExecute ABAP Unit tests, returns pass/fail results
Testingrun_atc_analysisRun ATC static code checks, returns findings with priorities
Dataexecute_data_queryExecute freestyle ABAP SQL or preview table contents
Dataget_abap_sql_syntaxABAP SQL quick reference (joins, aggregates, CDS, functions)
Systemanalyze_abap_dumpsList runtime dumps (ST22) — extracts error, call stack, source context
Systemget_sap_system_infoSystem ID, release, kernel, database info
Systemmanage_transport_requestsList, create, or release transport requests (CTS)

Quick Start

Prerequisites
  • Node.js 18+
  • SAP system with ADT services enabled (ICF service /sap/bc/adt active)
  • Network access to the SAP server
  • One of: domain credentials (Kerberos), SAP username/password, OAuth client, X.509 cert, or browser SSO access
Install & Build
cd abap-mcp-server
npm install
npm run build
Configure
cp .env.example .env

Edit .env:

# SAP connection
SAP_BASE_URL=http://your-sap-server:8000
SAP_CLIENT=100
SAP_LANGUAGE=en

# Authentication (see Authentication section below)
AUTH_METHOD=kerberos          # or: basic, oauth, certificate, browser_sso, auto

# Server
SERVER_MODE=sse
SSE_PORT=3001
Run
# SSE mode (recommended for Eclipse ADT)
npm run start:sse

# stdio mode (for clients that spawn the process)
npm start

The server starts at http://localhost:3001:

EndpointPurpose
/sseMCP endpoint (Streamable HTTP + legacy SSE)
/loginInteractive login UI (OAuth / Browser SSO)
/healthHealth check with auth status (JSON)
/auth/statusCurrent authentication status
/auth/validateValidate current session

Authentication

Five pluggable strategies. Set AUTH_METHOD in .env:

MethodAUTH_METHOD valueWhen to use
Kerberos/SPNEGOkerberos or spnegoCorporate SSO with SAP Secure Login Client on Windows
Basic AuthbasicDev/sandbox systems with username + password
OAuth 2.0oauthSSO environments with OAuth configured in SAP (SOAUTH2)
X.509 Certificatecertificate or certCertificate-based mutual TLS systems
Browser SSObrowser_sso or ssoAny SSO mechanism (SAML, Kerberos) via cookie capture
Auto-detectauto (default)Tries basic → certificate → OAuth → browser SSO

Uses Windows SSPI to obtain SPNEGO tokens from the current user's Kerberos TGT. Works seamlessly with SAP Secure Login Client — no passwords stored.

AUTH_METHOD=kerberos

# Optional — auto-detected from SAP_BASE_URL hostname
# KERBEROS_REALM=CORP.EXAMPLE.COM
# KERBEROS_SPN=HTTP/sapserver.corp.example.com@CORP.EXAMPLE.COM

Requirements:

  • Windows domain-joined machine
  • SAP Secure Login Client running (with valid Kerberos token)
  • SAP ICF service has SPNego authentication enabled

How it works:

  1. Server starts → uses SSPI to get a SPNEGO token from your Kerberos TGT
  2. Sends Authorization: Negotiate <token> to SAP
  3. SAP returns MYSAPSSO2 session cookies → reused for all subsequent API calls
  4. MCP tools are immediately available — fully automatic, no interactive login needed
Basic Auth
AUTH_METHOD=basic
SAP_USERNAME=developer
SAP_PASSWORD=your_password
OAuth 2.0

Requires an OAuth client configured in SAP (transaction SOAUTH2):

AUTH_METHOD=oauth
OAUTH_CLIENT_ID=your_client_id
OAUTH_CLIENT_SECRET=your_client_secret
OAUTH_SCOPE=SAP_ADT

Flow:

  1. Start server → open http://localhost:3001/login
  2. Click Start OAuth Login → redirected to SAP → SAML/SSO → authorized
  3. SAP redirects back with authorization code → server exchanges for access token
  4. Token auto-refreshes; MCP tools are now active
X.509 Client Certificate
AUTH_METHOD=certificate
CLIENT_CERT_PATH=./certs/client.pem
CLIENT_KEY_PATH=./certs/client-key.pem
CA_CERT_PATH=./certs/ca.pem              # optional
CLIENT_KEY_PASSPHRASE=optional_passphrase  # optional

Works with any SSO mechanism. No SAP-side configuration needed.

AUTH_METHOD=browser_sso

Flow:

  1. Start server → open http://localhost:3001/login
  2. Log into SAP in your browser (SSO handles it)
  3. Use the provided bookmarklet to capture your session cookies
  4. Paste into the login page → MCP tools are now active

Eclipse ADT Setup

1. Start the Server
cd abap-mcp-server
npm run start:sse
2. Configure MCP in Eclipse
  1. Open Window → Preferences → GitHub Copilot → Model Context Protocol
  2. In Server Configurations, enter:
{
  "servers": {
    "abap-tools": {
      "url": "http://localhost:3001/sse"
    }
  }
}
  1. Click Apply and Close
3. Verify

Open GitHub Copilot chat in Eclipse ADT and ask:

"What ABAP tools are available?"


Usage Examples

  • "Search for all classes starting with ZCL_MATERIAL"
  • "Find all code that references BAPI_SALESORDER_CREATEFROMDAT2"
  • "Where is class ZCL_MY_HELPER used?"
Code
  • "Show me the source code of program ZSALES_REPORT"
  • "What's the metadata for table MARA?"
  • "Write this code to program ZTEST and activate it"
  • "Show the version history of class ZCL_MY_CLASS"
Testing & Quality
  • "Run unit tests for class ZCL_MY_CLASS"
  • "Run ATC analysis on program ZSALES_REPORT"
Data Queries
  • "Show me the first 10 rows from table MARA"
  • "SELECT matnr, maktx FROM makt WHERE spras = 'E' UP TO 20 ROWS"
System & Analysis
  • "Show me recent runtime dumps"
  • "Show dumps for user JSMITH from today"
  • "List my open transport requests"
  • "What SAP system am I connected to?"

Architecture

┌──────────────────┐    Streamable HTTP     ┌─────────────────────┐   ADT REST API   ┌─────────────┐
│  Eclipse ADT     │◄──────────── /sse ───►│  ABAP MCP Server    │◄────────────────►│  SAP System │
│  + GitHub        │    (or legacy SSE)     │  (Node.js/Express)  │  /sap/bc/adt/*   │  (ABAP)     │
│    Copilot       │                        │                     │                  │             │
├──────────────────┤    MCP Protocol        │  15 Tools           │                  │  ADT APIs:  │
│  or: VS Code     │                        │  ├─ Search (3)      │                  │  - Search   │
│  or: Cursor      │                        │  ├─ Code (5)        │                  │  - Source   │
│  or: any MCP     │                        │  ├─ Testing (2)     │                  │  - Tests    │
│    client        │                        │  ├─ Data (2)        │                  │  - ATC      │
└──────────────────┘                        │  └─ System (3)      │                  │  - Dumps    │
                                            │                     │                  │  - CTS      │
┌──────────────────┐   /login               │  Auth Strategies:   │                  └─────────────┘
│  Browser         │──────────────────────►│  ├─ Kerberos/SPNEGO │                        ▲
│  (for SSO login) │                        │  ├─ Basic Auth      │   SPNEGO / mTLS /     │
└──────────────────┘                        │  ├─ OAuth 2.0 PKCE  │   SAP cookies         │
                                            │  ├─ X.509 Cert      │────────────────────────┘
                                            │  └─ Browser SSO     │
                                            └─────────────────────┘

Multiple SAP Systems

Run multiple instances on different ports:

# Terminal 1 — Development
SAP_BASE_URL=http://dev-server:8000 SAP_CLIENT=100 SSE_PORT=3001 AUTH_METHOD=kerberos node dist/index.js

# Terminal 2 — Quality
SAP_BASE_URL=http://qa-server:8000  SAP_CLIENT=200 SSE_PORT=3002 AUTH_METHOD=kerberos node dist/index.js

Configure all in Eclipse ADT:

{
  "servers": {
    "abap-dev": { "url": "http://localhost:3001/sse" },
    "abap-qa":  { "url": "http://localhost:3002/sse" }
  }
}

Project Structure

abap-mcp-server/
├── src/
│   ├── index.ts              # Entry point — Express server, MCP transport, tool routing
│   ├── sap-client.ts         # SAP ADT HTTP client (CSRF, cookies, request/response)
│   ├── login-ui.ts           # Login web UI and auth routes
│   ├── auth/
│   │   ├── types.ts          # AuthStrategy interface
│   │   ├── basic.ts          # Basic Auth (username/password)
│   │   ├── oauth.ts          # OAuth 2.0 Authorization Code + PKCE
│   │   ├── kerberos.ts       # Kerberos/SPNEGO via Windows SSPI
│   │   ├── certificate.ts    # X.509 client certificate (mTLS)
│   │   ├── browser-sso.ts    # Browser SSO cookie capture
│   │   └── index.ts          # Auth barrel export
│   └── tools/
│       ├── search.ts         # search_abap_objects, search_abap_object_lines, find_where_used
│       ├── code.ts           # get/write source, activate, object info, version history
│       ├── testing.ts        # run_unit_tests, run_atc_analysis
│       ├── data-query.ts     # execute_data_query, get_abap_sql_syntax
│       └── analysis.ts       # analyze_abap_dumps, get_sap_system_info, manage_transport_requests
├── .env                      # Local configuration (not committed)
├── .env.example              # Configuration template
├── package.json
└── tsconfig.json

Configuration Reference

VariableDefaultDescription
SAP_BASE_URLhttps://vhcala4hci:44300SAP system URL (HTTP or HTTPS)
SAP_CLIENT001SAP client number
SAP_LANGUAGEenLogon language
SAP_SKIP_SSLfalseSkip SSL verification (for self-signed certs)
AUTH_METHODautoauto, basic, oauth, kerberos, certificate, browser_sso
SAP_USERNAMESAP username (basic auth)
SAP_PASSWORDSAP password (basic auth)
OAUTH_CLIENT_IDOAuth 2.0 client ID
OAUTH_CLIENT_SECRETOAuth 2.0 client secret
OAUTH_SCOPESAP_ADTOAuth scope
CLIENT_CERT_PATHPath to X.509 client certificate
CLIENT_KEY_PATHPath to private key
CA_CERT_PATHPath to CA certificate (optional)
CLIENT_KEY_PASSPHRASEPrivate key passphrase (optional)
KERBEROS_REALM(auto)Kerberos realm (auto-detected from hostname)
KERBEROS_SPN(auto)Kerberos Service Principal Name
SERVER_MODEssesse (HTTP server) or stdio (child process)
SSE_PORT3001HTTP server port

Troubleshooting

IssueSolution
Connection refusedEnsure server is running and port matches Eclipse config
401 UnauthorizedCheck credentials; for Kerberos, verify SAP Secure Login Client is running
403 ForbiddenCSRF token issue — usually resolves automatically on retry
406 Not AcceptableServer handles ADT Accept headers automatically — update to latest build
SSL certificate errorSet SAP_SKIP_SSL=true or add the CA cert
Tools not appearing in CopilotRestart Eclipse ADT after changing MCP config
Kerberos auth failsCheck: domain-joined? SAP Secure Login Client active? SPNego enabled in SAP ICF?
ICF service inactiveAsk Basis to activate /sap/bc/adt in SICF
SSO session expiredFor Kerberos: restart server. For browser SSO: visit /login
OAuth redirect failsVerify OAUTH_CLIENT_ID and callback URI in SOAUTH2
Port already in useChange SSE_PORT in .env or kill orphaned node processes

Security

  • Credentials in .env — add to .gitignore (already excluded)
  • Server runs locally on localhost — no credentials sent externally
  • Kerberos/SPNEGO never stores passwords — uses Windows domain TGT
  • CSRF tokens auto-managed, session cookies kept in memory only
  • Restrict the SAP user's authorizations to ADT-relevant objects
MIT, read
Agent access to ABAP code
  1. @abap2ui5/mcp-serverMCP server for the abap2UI5 check, deploy and run loop
  2. arc-1-bopf-enharc-1 extension for reading and maintaining BOPF enhancements
  3. HammerNative macOS code editor for ABAP and CDS
  4. arc-1-lspEdition of ARC-1 that runs ADT calls through adt-ls
  5. arc-1MCP server over the ADT REST API for ABAP objects
  6. arc1-abap-bridgeVS Code bridge between arc-1 and ADT for VS Code
  7. arc1-adt-abap-mcp-extEclipse add-on enabling the ADT MCP server with read-only tools
  8. ABAP Accelerator MCP ServerAWS's ABAP MCP server for Amazon Q Developer and Kiro
  9. Modernization Agents for SAP on AWSAWS agents for ABAP, PI/PO and BW modernisation work
  10. @mcp-abap-adt/coreABAP ADT MCP server published as an npm scope and plugin
  11. dassian-adtFork of mcp-abap-abap-adt-api with 25 tools and session recovery
  12. erpl-adtC++ binary speaking the ADT REST API as a CLI and MCP server
  13. bw-modeling-mcpMCP server for BW/4HANA modelling objects
  14. EPOD ADT MCP ServerMCP server for ABAP on the ADT session, in Eclipse or standalone
  15. ZARC1_EXTENSION_FORMSarc-1 extension for SAPscript and Smart Forms objects
  16. fgalastri/MCP_ABAPValidates an ABAP class before it is deployed by converting the global class to a local one and syntax-checking that — plus CDS DDL and table metadata retrieval.
  17. fr0ster/mcp-abap-adtABAP MCP server with full CRUD on on-premise and ABAP Cloud
  18. abapsmithABAP MCP server over ADT with a local journal that can undo writes
  19. sap-ai-dev-toolkitMCP proxy pinning an agent's ABAP tools to one SAP system
  20. aibap.mcpGo MCP server that writes, activates and runs ABAP classes via ADT
  21. BellaEclipse plugin bringing Claude into ABAP Development Tools
  22. Maherd18/sap-mcp-serverPolicy-checked MCP server for ABAP development over ADT
  23. sapdumpmcpMCP server reading ABAP short dumps over ADT
  24. ABAP remote filesystemVS Code extension editing ABAP systems over ADT as a filesystem
  25. mcp-abap-abap-adt-apiWrite-oriented MCP server over abap-adt-api
  26. mcp-abap-adtRead-oriented MCP server fetching ABAP programs, classes, tables
  27. SAP MCP Connection ManagerWindows desktop manager handing SAP connections to assistants over MCP
  28. ABAPilotMCP connector for ECC and on-premise S/4HANA with a licensed SAP side
  29. vibing-steampunkADT-to-MCP bridge in Go reaching past what ADT exposes
  30. ADT MCP ServerLocal HTTP MCP server started from ABAP Development Tools for VS Code
  31. ABAP Development Tools for VS CodeSAP's ABAP tools in VS Code for editing, debugging, ATC and transports
  32. SAP Joule for Developers, ABAP AI capabilitiesSAP's AI for ABAP development in ADT for Eclipse and VS Code
  33. ABAPDocMCPMCP server turning a transport request into a WRICEF specification
  34. claude-sap-kitClaude Code plugin adding Custom_* tools to arc-1
  35. Skybuffer AI MCP serverABAP add-on serving business data and transactions as MCP tools
  36. abap-adt-cliCLI that pulls and pushes ABAP packages as local files over ADT
  37. workskong/mcp-abap-adtLight MCP adapter for ABAP over ADT, documented in Korean
  38. KlystronMCP server in ABAP inside the application server, with agent skills
  39. pyrfc-mcpMCP server calling RFC-enabled function modules behind an allowlist
  40. ABAP-AI-CODE-TOOLSabapGit package adding create, modify and delete tools to ABAP AI Code
  41. ABAP AI CodeAgentic coding assistant in ABAP that runs as an SAP GUI report
  42. VERTEXADT extension for Eclipse and VS Code showing three SAP GUI tools

Details

Sources3
sap-ai-mcp-serversdiscovered herechecked
github.com/chandrashekhar-mahajan/abap-mcp-servertree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
runtimesnode
discovered viasap-ai-mcp-servers
first seen in the atlas
ecosystem and domainabap, ai-and-agents
History in the atlas2
  1. Triaged out of data/crawled/mcp-candidates.json, the sap-ai-mcp-servers sweep. Written from the repository's own README; the catalogue is credited as where it was found and its words are not reused.
  2. First seen.
For your agent
Ref
artifact:chandrashekhar-mahajan-abap-mcp-server
JSON
/artifacts/chandrashekhar-mahajan-abap-mcp-server.json
MCP
Connecting an agent