diff --git a/2.2.2.202608291554/artifacts.jar b/2.2.2.202608291554/artifacts.jar deleted file mode 100644 index d1b46f2..0000000 Binary files a/2.2.2.202608291554/artifacts.jar and /dev/null differ diff --git a/2.2.2.202608291554/artifacts.xml.xz b/2.2.2.202608291554/artifacts.xml.xz deleted file mode 100644 index 227e0dd..0000000 Binary files a/2.2.2.202608291554/artifacts.xml.xz and /dev/null differ diff --git a/2.2.2.202608291554/content.jar b/2.2.2.202608291554/content.jar deleted file mode 100644 index 10b5a81..0000000 Binary files a/2.2.2.202608291554/content.jar and /dev/null differ diff --git a/2.2.2.202608291554/content.xml.xz b/2.2.2.202608291554/content.xml.xz deleted file mode 100644 index 5ea3796..0000000 Binary files a/2.2.2.202608291554/content.xml.xz and /dev/null differ diff --git a/2.2.2.202608291554/features/com.epod.adt.mcp.feature_2.2.2.202608291554.jar b/2.2.2.202608291554/features/com.epod.adt.mcp.feature_2.2.2.202608291554.jar deleted file mode 100644 index a9fa69e..0000000 Binary files a/2.2.2.202608291554/features/com.epod.adt.mcp.feature_2.2.2.202608291554.jar and /dev/null differ diff --git a/2.2.2.202608291620/artifacts.jar b/2.2.2.202608291620/artifacts.jar new file mode 100644 index 0000000..4b7153d Binary files /dev/null and b/2.2.2.202608291620/artifacts.jar differ diff --git a/2.2.2.202608291620/artifacts.xml.xz b/2.2.2.202608291620/artifacts.xml.xz new file mode 100644 index 0000000..c284156 Binary files /dev/null and b/2.2.2.202608291620/artifacts.xml.xz differ diff --git a/2.2.2.202608291620/content.jar b/2.2.2.202608291620/content.jar new file mode 100644 index 0000000..3c68207 Binary files /dev/null and b/2.2.2.202608291620/content.jar differ diff --git a/2.2.2.202608291620/content.xml.xz b/2.2.2.202608291620/content.xml.xz new file mode 100644 index 0000000..65c9cd2 Binary files /dev/null and b/2.2.2.202608291620/content.xml.xz differ diff --git a/2.2.2.202608291620/features/com.epod.adt.mcp.feature_2.2.2.202608291620.jar b/2.2.2.202608291620/features/com.epod.adt.mcp.feature_2.2.2.202608291620.jar new file mode 100644 index 0000000..92852c6 Binary files /dev/null and b/2.2.2.202608291620/features/com.epod.adt.mcp.feature_2.2.2.202608291620.jar differ diff --git a/2.2.2.202608291554/p2.index b/2.2.2.202608291620/p2.index similarity index 82% rename from 2.2.2.202608291554/p2.index rename to 2.2.2.202608291620/p2.index index 486c28c..5d20637 100644 --- a/2.2.2.202608291554/p2.index +++ b/2.2.2.202608291620/p2.index @@ -1,4 +1,4 @@ -#Sat Aug 29 17:54:45 CEST 2026 +#Sat Aug 29 18:20:23 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.2.2.202608291554/plugins/com.epod.adt.mcp.plugin_2.2.2.202608291554.jar b/2.2.2.202608291620/plugins/com.epod.adt.mcp.plugin_2.2.2.202608291620.jar similarity index 97% rename from 2.2.2.202608291554/plugins/com.epod.adt.mcp.plugin_2.2.2.202608291554.jar rename to 2.2.2.202608291620/plugins/com.epod.adt.mcp.plugin_2.2.2.202608291620.jar index f312994..f3ae430 100644 Binary files a/2.2.2.202608291554/plugins/com.epod.adt.mcp.plugin_2.2.2.202608291554.jar and b/2.2.2.202608291620/plugins/com.epod.adt.mcp.plugin_2.2.2.202608291620.jar differ diff --git a/README.md b/README.md index 78f242a..11c4e4d 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,8 @@ GET http://127.0.0.1:3000/health **Window > Preferences > ABAP MCP Server** — change the server port, enable auto-start when you connect to a project, or set the full-source line threshold for element reads (default: 200 lines). +The token buttons sit in the **ABAP MCP Server** view, not on the preference page. The **Copy client config** button copies the configuration block, with the bearer token, to the clipboard. The **Regenerate token** button creates a new token when the token leaks. The server stores the token and reuses it on every later start. The token survives an Eclipse restart, so the client configuration stays valid. + ## Multi-System Support @@ -124,6 +126,15 @@ When multiple ABAP projects are connected, pass `systemId` (the Eclipse project The `systemId` description in every tool's schema is dynamically populated from the live registry, so the AI always knows which systems are available. +## Access Mode + +Each connected system has an access mode: write or read-only. A new connection starts in write. The mode lives in the third column of the **ABAP MCP Server** view table, next to Project and Status. The **Toggle Read-Only** button flips the mode of the selected system. + +A read-only system refuses the 9 write tools and makes no ADT call against SAP. Every other tool works on a read-only system. The 9 write tools are `sap_push_source`, `sap_push_source_from_file`, `sap_push_element`, `sap_create_object`, `sap_activate`, `sap_lock`, `sap_unlock`, `sap_transport_create`, and `sap_transport_release`. + +The mode survives an Eclipse restart and a reconnect. The plugin stores the mode per project name. `sap_list_systems` shows the mode of each connected system. + + ## MCP Tools The plugin exposes 27 tools covering the full ABAP development workflow: @@ -148,7 +159,7 @@ The plugin exposes 27 tools covering the full ABAP development workflow: | `sap_push_source` | Write source code from context to an ABAP object in SAP — runs the full lock → write → unlock → activate pipeline in one call | | `sap_push_source_from_file` | Save a local file back to SAP through the same one-call pipeline | | `sap_push_element` | Write one member block. The server merges the block into the current full source and pushes it — the model never holds the class. CLAS, INTF, PROG, FUGR | -| `sap_pretty_print` | Format (pretty-print) ABAP source via the server formatter | +| `sap_pretty_print` | Format (pretty-print) ABAP source through the ADT pretty-printer service. The tool takes only the source and uses the server's stored settings | ### Lifecycle diff --git a/compositeArtifacts.xml b/compositeArtifacts.xml index f7f5fa6..7b2669d 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 9d70b43..9b07c19 100644 --- a/compositeContent.xml +++ b/compositeContent.xml @@ -4,10 +4,10 @@ type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1.0.0'> - + - +