diff --git a/2.0.0.202605011844/artifacts.jar b/2.0.0.202605011844/artifacts.jar deleted file mode 100644 index 8c8b0b1..0000000 Binary files a/2.0.0.202605011844/artifacts.jar and /dev/null differ diff --git a/2.0.0.202605011844/artifacts.xml.xz b/2.0.0.202605011844/artifacts.xml.xz deleted file mode 100644 index 2cd9985..0000000 Binary files a/2.0.0.202605011844/artifacts.xml.xz and /dev/null differ diff --git a/2.0.0.202605011844/content.jar b/2.0.0.202605011844/content.jar deleted file mode 100644 index 9aae05f..0000000 Binary files a/2.0.0.202605011844/content.jar and /dev/null differ diff --git a/2.0.0.202605011844/content.xml.xz b/2.0.0.202605011844/content.xml.xz deleted file mode 100644 index e637f17..0000000 Binary files a/2.0.0.202605011844/content.xml.xz and /dev/null differ diff --git a/2.0.0.202605011844/features/com.epod.adt.mcp.feature_2.0.0.202605011844.jar b/2.0.0.202605011844/features/com.epod.adt.mcp.feature_2.0.0.202605011844.jar deleted file mode 100644 index f7f62fa..0000000 Binary files a/2.0.0.202605011844/features/com.epod.adt.mcp.feature_2.0.0.202605011844.jar and /dev/null differ diff --git a/2.0.0.202605091359/artifacts.jar b/2.0.0.202605091359/artifacts.jar new file mode 100644 index 0000000..7879d29 Binary files /dev/null and b/2.0.0.202605091359/artifacts.jar differ diff --git a/2.0.0.202605091359/artifacts.xml.xz b/2.0.0.202605091359/artifacts.xml.xz new file mode 100644 index 0000000..3dcda1f Binary files /dev/null and b/2.0.0.202605091359/artifacts.xml.xz differ diff --git a/2.0.0.202605091359/content.jar b/2.0.0.202605091359/content.jar new file mode 100644 index 0000000..daeeb6b Binary files /dev/null and b/2.0.0.202605091359/content.jar differ diff --git a/2.0.0.202605091359/content.xml.xz b/2.0.0.202605091359/content.xml.xz new file mode 100644 index 0000000..d71de18 Binary files /dev/null and b/2.0.0.202605091359/content.xml.xz differ diff --git a/2.0.0.202605091359/features/com.epod.adt.mcp.feature_2.0.0.202605091359.jar b/2.0.0.202605091359/features/com.epod.adt.mcp.feature_2.0.0.202605091359.jar new file mode 100644 index 0000000..e843f9d Binary files /dev/null and b/2.0.0.202605091359/features/com.epod.adt.mcp.feature_2.0.0.202605091359.jar differ diff --git a/2.0.0.202605011844/p2.index b/2.0.0.202605091359/p2.index similarity index 82% rename from 2.0.0.202605011844/p2.index rename to 2.0.0.202605091359/p2.index index 476b1c4..cf054ce 100644 --- a/2.0.0.202605011844/p2.index +++ b/2.0.0.202605091359/p2.index @@ -1,4 +1,4 @@ -#Fri May 01 20:45:17 CEST 2026 +#Sat May 09 15:59:30 CEST 2026 artifact.repository.factory.order=artifacts.xml.xz,artifacts.xml,\! metadata.repository.factory.order=content.xml.xz,content.xml,\! version=1 diff --git a/2.0.0.202605011844/plugins/com.epod.adt.mcp.plugin_2.0.0.202605011844.jar b/2.0.0.202605091359/plugins/com.epod.adt.mcp.plugin_2.0.0.202605091359.jar similarity index 85% rename from 2.0.0.202605011844/plugins/com.epod.adt.mcp.plugin_2.0.0.202605011844.jar rename to 2.0.0.202605091359/plugins/com.epod.adt.mcp.plugin_2.0.0.202605091359.jar index be1c139..8fbbd6a 100644 Binary files a/2.0.0.202605011844/plugins/com.epod.adt.mcp.plugin_2.0.0.202605011844.jar and b/2.0.0.202605091359/plugins/com.epod.adt.mcp.plugin_2.0.0.202605091359.jar differ diff --git a/README.md b/README.md index da5145e..6eabf25 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,13 @@ # 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. +An Eclipse ADT plugin that exposes your SAP ABAP systems 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. + +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 +AI Client --(HTTP/JSON-RPC)--> Eclipse Plugin --(ADT REST API / SNC)--> SAP System(s) ``` @@ -30,7 +32,7 @@ Download the plugin JAR from the latest release and drop it into your Eclipse `d - 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 +- One or more ABAP projects in your Eclipse workspace with active SNC/SSO connections to SAP ## Setup @@ -39,9 +41,9 @@ Download the plugin JAR from the latest release and drop it into your Eclipse `d **Window > Show View > Other... > ABAP MCP Server** -### 2. Connect to your ABAP project +### 2. Connect to your ABAP projects -Select your ABAP project from the dropdown and click **Connect**. The plugin reuses the project's existing ADT session — no password prompt. +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 @@ -88,9 +90,24 @@ GET http://127.0.0.1:3000/health **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: + +```json +{ "query": "ZCL*", "systemId": "ER1_001" } +``` + +- **Single system connected** — `systemId` is optional; the call is routed automatically. +- **Multiple systems connected** — `systemId` is 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 16 tools covering the full ABAP development workflow: +The plugin exposes 17 tools covering the full ABAP development workflow: ### Search & Navigation @@ -133,6 +150,12 @@ The plugin exposes 16 tools covering the full ABAP development workflow: |------|-------------| | `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 diff --git a/compositeArtifacts.xml b/compositeArtifacts.xml index 148683b..70e683a 100644 --- a/compositeArtifacts.xml +++ b/compositeArtifacts.xml @@ -4,10 +4,10 @@ type='org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository' version='1.0.0'> - + - + diff --git a/compositeContent.xml b/compositeContent.xml index f06f483..2fe154f 100644 --- a/compositeContent.xml +++ b/compositeContent.xml @@ -4,10 +4,10 @@ type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1.0.0'> - + - +