160 lines
5.0 KiB
Markdown
160 lines
5.0 KiB
Markdown
# EPOD ADT MCP Server
|
|
|
|
An Eclipse ADT plugin that exposes your SAP ABAP system to AI coding assistants via the [Model Context Protocol (MCP)](https://modelcontextprotocol.io). 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.
|
|
|
|
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
|
|
```
|
|
|
|
|
|
## Installation
|
|
|
|
### Via Eclipse Update Site
|
|
|
|
1. In Eclipse ADT, go to **Help > Install New Software...**
|
|
2. Click **Add...** and enter:
|
|
- Name: `EPOD ADT MCP Server`
|
|
- Location: `https://git.epod.dev/erhan/epod-adt-mcp-updatesite/raw/branch/main/`
|
|
3. Select **EPOD ADT MCP Server** from the list
|
|
4. Click **Next**, accept the license, and complete the wizard
|
|
5. 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
|
|
- An ABAP project in your Eclipse workspace with an active SNC/SSO connection to SAP
|
|
|
|
|
|
## Setup
|
|
|
|
### 1. Open the MCP Server view
|
|
|
|
**Window > Show View > Other... > ABAP MCP Server**
|
|
|
|
### 2. Connect to your ABAP project
|
|
|
|
Select your ABAP project from the dropdown and click **Connect**. The plugin reuses the 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:
|
|
|
|
```json
|
|
{
|
|
"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`:
|
|
|
|
```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.
|
|
|
|
|
|
## MCP Tools
|
|
|
|
The plugin exposes 16 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 |
|
|
|
|
|
|
## 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-Id` header
|
|
|
|
| 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](https://www.apache.org/licenses/LICENSE-2.0).
|