Release 2.2.2.202608231259

This commit is contained in:
Erhan Keseli
2026-08-23 14:59:19 +02:00
parent 6e971367bb
commit d6080e5a06
15 changed files with 29 additions and 13 deletions

View File

@@ -11,6 +11,19 @@ AI Client --(HTTP/JSON-RPC)--> Eclipse Plugin --(ADT REST API / SNC)--> SAP
```
## Token-efficient by design
AI assistants are billed by tokens, and most of the bill is not the prompt. Measured on a real ABAP task, 63% of the cost was cache write — everything a tool returns enters the model context — and 29% was cache read, the context re-read on every tool call. The prompt was 3%.
The server therefore keeps tool responses small and call counts low:
- **Member lists without source.** `sap_object_members` returns the members of a 2,000-line class in about 300 tokens.
- **Element-level read and write.** Pull one `METHOD` block instead of the class. Push one method back — the server merges it into the full source and sends it to ADT. The model never holds the class.
- **One-call edit.** `sap_push_source` runs the full lock → write → unlock → activate pipeline in a single call.
- **Compact checks.** `sap_check_object` runs syntax check, ATC, and ABAP Unit in one call and returns findings only — no long text.
- **No silent fallbacks.** A tool never falls back to the full source in silence. It states the fallback in the response, or it returns an error.
## Installation
### Via Eclipse Update Site
@@ -85,9 +98,9 @@ Check the health endpoint in your browser or with curl:
GET http://127.0.0.1:3000/health
```
### Port configuration
### Preferences
**Window > Preferences > ABAP MCP Server** — change the server port or enable auto-start when you connect to a project.
**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).
## Multi-System Support
@@ -107,7 +120,7 @@ The `systemId` description in every tool's schema is dynamically populated from
## MCP Tools
The plugin exposes 25 tools covering the full ABAP development workflow:
The plugin exposes 28 tools covering the full ABAP development workflow:
### Search & Navigation
@@ -115,6 +128,7 @@ The plugin exposes 25 tools covering the full ABAP development workflow:
|------|-------------|
| `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_object_members` | List the members of a class, interface, program, or function group — name, kind, visibility, include — without source. `includeLocal=true` also lists local and test classes |
| `sap_usage_references` | Find all where-used references for an object (parsed JSON) |
| `sap_element_info` | Resolve an element to its signature, type, and documentation |
| `sap_inactive_objects` | List objects that are currently inactive (not yet activated) |
@@ -123,10 +137,11 @@ The plugin exposes 25 tools covering the full ABAP development workflow:
| 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) |
| `sap_pull_source` | Read source code of an ABAP object into the AI context. `element=<member>` returns one `METHOD` block (`part=definition` for the declaration); `includeType` selects a class include — `main` (Global Class, default), `definitions`, `implementations`, `macros`, `testclasses`, `all` |
| `sap_pull_source_to_file` | Fetch source from SAP and write it to a local file (preferred for large objects). Same `element` and `includeType` parameters |
| `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 |
### Lifecycle
@@ -154,6 +169,7 @@ The plugin exposes 25 tools covering the full ABAP development workflow:
| `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 |
| `sap_check_object` | Syntax check, ATC, and ABAP Unit in one call. One line per step, findings only — severity, object, method, line, short message |
| `sap_run_class` | Run a class implementing IF_OO_ADT_CLASSRUN (ABAP console / F9) |
| `sap_short_dumps` | List recent ABAP runtime errors / short dumps (ST22) |
@@ -192,4 +208,4 @@ The plugin exposes 25 tools covering the full ABAP development workflow:
## License
Copyright 2025 Erhan Keseli. Licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).
Copyright 2025-2026 Erhan Keseli. Licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).