Release 2.2.2.202608231259
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
2.2.2.202608231259/artifacts.jar
Normal file
BIN
2.2.2.202608231259/artifacts.jar
Normal file
Binary file not shown.
BIN
2.2.2.202608231259/artifacts.xml.xz
Normal file
BIN
2.2.2.202608231259/artifacts.xml.xz
Normal file
Binary file not shown.
BIN
2.2.2.202608231259/content.jar
Normal file
BIN
2.2.2.202608231259/content.jar
Normal file
Binary file not shown.
BIN
2.2.2.202608231259/content.xml.xz
Normal file
BIN
2.2.2.202608231259/content.xml.xz
Normal file
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#Sun Aug 23 12:50:54 CEST 2026
|
||||
#Sun Aug 23 14:59:16 CEST 2026
|
||||
artifact.repository.factory.order=artifacts.xml.xz,artifacts.xml,\!
|
||||
metadata.repository.factory.order=content.xml.xz,content.xml,\!
|
||||
version=1
|
||||
Binary file not shown.
32
README.md
32
README.md
@@ -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).
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
type='org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository'
|
||||
version='1.0.0'>
|
||||
<properties size='2'>
|
||||
<property name='p2.timestamp' value='1787482257'/>
|
||||
<property name='p2.timestamp' value='1787489959'/>
|
||||
<property name='p2.compressed' value='false'/>
|
||||
</properties>
|
||||
<children size='1'>
|
||||
<child location='2.2.2.202608231050/'/>
|
||||
<child location='2.2.2.202608231259/'/>
|
||||
</children>
|
||||
</repository>
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository'
|
||||
version='1.0.0'>
|
||||
<properties size='2'>
|
||||
<property name='p2.timestamp' value='1787482257'/>
|
||||
<property name='p2.timestamp' value='1787489959'/>
|
||||
<property name='p2.compressed' value='false'/>
|
||||
</properties>
|
||||
<children size='1'>
|
||||
<child location='2.2.2.202608231050/'/>
|
||||
<child location='2.2.2.202608231259/'/>
|
||||
</children>
|
||||
</repository>
|
||||
|
||||
Reference in New Issue
Block a user