6.0 KiB
EPOD ADT MCP Server
An Eclipse ADT plugin that exposes your SAP ABAP systems to AI coding assistants via the Model Context Protocol (MCP). It runs an embedded HTTP server inside Eclipse, so any MCP-compatible client — Claude Code, Cursor, Windsurf, and others — can search, read, edit, test, and analyze ABAP code through your existing ADT SNC/SSO session.
Connect multiple ABAP projects simultaneously and route each tool call to the right system via a systemId parameter.
No credentials are stored or transmitted by the plugin. Authentication is handled transparently by the Eclipse ADT communication framework.
AI Client --(HTTP/JSON-RPC)--> Eclipse Plugin --(ADT REST API / SNC)--> SAP System(s)
Installation
Via Eclipse Update Site
- In Eclipse ADT, go to Help > Install New Software...
- Click Add... and enter:
- Name:
EPOD ADT MCP Server - Location:
https://git.epod.dev/erhan/epod-adt-mcp-updatesite/raw/branch/main/
- Name:
- Select EPOD ADT MCP Server from the list
- Click Next, accept the license, and complete the wizard
- Restart Eclipse when prompted
Via dropins (quick install)
Download the plugin JAR from the latest release and drop it into your Eclipse dropins/ folder, then restart Eclipse.
Requirements
- Eclipse 2024-03 or later with SAP ADT (ABAP Development Tools) installed
- Java 17 or later
- One or more ABAP projects in your Eclipse workspace with active SNC/SSO connections to SAP
Setup
1. Open the MCP Server view
Window > Show View > Other... > ABAP MCP Server
2. Connect to your ABAP projects
The view shows all ABAP projects in your workspace. Click Connect All to connect to every project at once, or select a project and click Connect to connect individually. The plugin reuses each project's existing ADT session — no password prompt.
3. Start the server
Click Start Server. The embedded MCP server starts on http://127.0.0.1:3000/mcp (port is configurable). It binds to localhost only and is not accessible from the network.
4. Configure your MCP client
Add the following to your client's MCP configuration:
{
"mcpServers": {
"abap-adt": {
"type": "streamable-http",
"url": "http://127.0.0.1:3000/mcp"
}
}
}
Claude Code — add to .claude/settings.json or ~/.claude/settings.json:
{
"mcpServers": {
"abap-adt": {
"type": "streamable-http",
"url": "http://127.0.0.1:3000/mcp"
}
}
}
5. Verify
Check the health endpoint in your browser or with curl:
GET http://127.0.0.1:3000/health
Port configuration
Window > Preferences > ABAP MCP Server — change the server port or enable auto-start when you connect to a project.
Multi-System Support
When multiple ABAP projects are connected, pass systemId (the Eclipse project name) to route a tool call to the right system:
{ "query": "ZCL*", "systemId": "ER1_001" }
- Single system connected —
systemIdis optional; the call is routed automatically. - Multiple systems connected —
systemIdis required. Omitting it returns an error listing the available systems. sap_list_systems— call this tool at any time to see which systems are currently connected.
The systemId description in every tool's schema is dynamically populated from the live registry, so the AI always knows which systems are available.
MCP Tools
The plugin exposes 17 tools covering the full ABAP development workflow:
Search & Navigation
| Tool | Description |
|---|---|
sap_search_object |
Search for ABAP objects by name pattern and/or type |
sap_object_structure |
Get the structure and metadata of an object (includes, links, source URLs) |
sap_usage_references |
Find all where-used references for an object |
sap_inactive_objects |
List objects that are currently inactive (not yet activated) |
Read & Write Source
| Tool | Description |
|---|---|
sap_pull_source |
Read source code of an ABAP object directly into the AI context |
sap_pull_source_to_file |
Fetch source from SAP and write it to a local file (preferred for large objects) |
sap_push_source |
Write source code from context to an ABAP object in SAP |
sap_push_source_from_file |
Save a local file back to SAP (lock → write → unlock → activate pipeline) |
Lifecycle
| Tool | Description |
|---|---|
sap_lock |
Lock an object for editing (returns a lock handle) |
sap_unlock |
Release a previously acquired lock |
sap_activate |
Activate an ABAP object |
sap_create_object |
Create a new ABAP object: class, interface, program, function group, data element, table, structure, or CDS view |
Quality & Testing
| Tool | Description |
|---|---|
sap_syntax_check |
Run a syntax check and return errors and warnings with line numbers |
sap_run_unit_test |
Execute ABAP Unit tests and return pass/fail results |
sap_atc_run |
Run ATC (ABAP Test Cockpit) checks and return quality findings |
Data
| Tool | Description |
|---|---|
sap_sql_query |
Execute an ABAP SQL query and return the results as JSON |
Systems
| Tool | Description |
|---|---|
sap_list_systems |
List all SAP systems currently connected and available for tool calls |
Supported Object Types
CLAS · INTF · PROG · FUGR · FUNC · TABL · STRU · DDLS · DTEL · DOMA · SRVD · DDLX · BDEF
Protocol
- MCP protocol version:
2024-11-05 - Transport: Streamable HTTP
- Messaging: JSON-RPC 2.0
- Session management:
Mcp-Session-Idheader
| Endpoint | Method | Description |
|---|---|---|
/mcp |
POST | JSON-RPC (initialize, tools/list, tools/call) |
/mcp |
GET | SSE stream for server-sent events |
/mcp |
DELETE | Close an MCP session |
/health |
GET | Server status |
License
Copyright 2025 Erhan Keseli. Licensed under the Apache License, Version 2.0.