# 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).