Update README.md
This commit is contained in:
156
README.md
156
README.md
@@ -1,43 +1,159 @@
|
|||||||
# EPOD ADT MCP Server - Eclipse Update Site
|
# EPOD ADT MCP Server
|
||||||
|
|
||||||
Eclipse update site for the EPOD ADT MCP Server plugin.
|
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
|
||||||
|
```
|
||||||
|
|
||||||
This plugin embeds an MCP (Model Context Protocol) server inside Eclipse ADT,
|
|
||||||
enabling AI coding assistants (Claude Code, Cursor, etc.) to interact with SAP
|
|
||||||
ABAP systems through the existing SNC/SSO session.
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
### Via Eclipse Update Site
|
||||||
|
|
||||||
1. In Eclipse ADT, go to **Help > Install New Software...**
|
1. In Eclipse ADT, go to **Help > Install New Software...**
|
||||||
2. Click **Add...** and enter:
|
2. Click **Add...** and enter:
|
||||||
- Name: `EPOD ADT MCP Server`
|
- Name: `EPOD ADT MCP Server`
|
||||||
- Location: `https://git.epod.dev/erhan/epod-adt-mcp-updatesite/raw/branch/main/`
|
- Location: `https://git.epod.dev/erhan/epod-adt-mcp-updatesite/raw/branch/main/`
|
||||||
3. Select **EPOD ADT MCP Server** from the list
|
3. Select **EPOD ADT MCP Server** from the list
|
||||||
4. Click **Next**, accept the license, and finish the installation
|
4. Click **Next**, accept the license, and complete the wizard
|
||||||
5. Restart Eclipse when prompted
|
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
|
## Requirements
|
||||||
|
|
||||||
- Eclipse 2024-03 or later with SAP ADT (ABAP Development Tools) installed
|
- Eclipse 2024-03 or later with **SAP ADT** (ABAP Development Tools) installed
|
||||||
- Java 17 or later
|
- Java 17 or later
|
||||||
- An ABAP project with an active SNC/SSO connection to SAP
|
- An ABAP project in your Eclipse workspace with an active SNC/SSO connection to SAP
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
- 15 MCP tools for ABAP development: search, read/write source, activate, syntax check, unit test, ATC, SQL query, and more
|
## Setup
|
||||||
- Transparent SNC/X.509 authentication through Eclipse ADT session
|
|
||||||
- Configurable server port (default: 3000)
|
|
||||||
- Auto-configuration of Claude Code MCP settings
|
|
||||||
|
|
||||||
## Usage
|
### 1. Open the MCP Server view
|
||||||
|
|
||||||
After installation:
|
**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 |
|
||||||
|
|
||||||
1. Open **Window > Show View > Other... > ABAP MCP Server**
|
|
||||||
2. Select your ABAP project and click **Connect**
|
|
||||||
3. Click **Start Server**
|
|
||||||
4. Your AI coding assistant can now access the SAP system via MCP
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Apache License 2.0
|
Copyright 2025 Erhan Keseli. Licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).
|
||||||
|
|||||||
Reference in New Issue
Block a user