Overview
vibing-steampunk (vsp) is a Go-native MCP server that bridges SAP ADT REST APIs with AI coding assistants. It exposes 122 ADT operations as MCP tools (81 in "focused" mode). Our adt-mcp package currently exposes 17 tools.
This issue tracks the gap analysis and proposes a prioritised roadmap to onboard the most impactful features into our TypeScript-native toolset.
Current State: adt-mcp (17 tools)
| Tool |
Description |
discovery |
Discover available ADT services |
system_info |
System / session information |
search_objects |
Search ABAP objects by name pattern |
get_object |
Retrieve object metadata |
get_source |
Read source code (any object type) |
update_source |
Write/update source code |
activate_object |
Activate a single object |
check_syntax |
Syntax check |
run_unit_tests |
Execute ABAP Unit tests |
get_test_classes |
List test classes of an object |
list_package_objects |
List package contents |
atc_run |
Run ATC checks |
cts_list_transports |
List transports |
cts_get_transport |
Get transport details |
cts_create_transport |
Create transport (stub — not implemented) |
cts_release_transport |
Release transport (stub — not implemented) |
cts_delete_transport |
Delete transport |
Gap Analysis vs. vibing-steampunk
🔍 1. Search & Grep
vsp exposes powerful in-system content search. We have only name-pattern search.
| vsp tool |
Description |
Priority |
GrepObjects |
Regex search across a list of ADT URIs with context lines |
High |
GrepPackages |
Regex search across a package (and subpackages) |
High |
GrepObject |
Regex search within a single object |
Medium |
Impact: Lets AI agents do code-level discovery without reading every file individually. ADT endpoint: /sap/bc/adt/repository/informationsystem/search.
📖 2. Extended Read Operations
We have generic get_source but are missing several dedicated readers for non-source objects and data.
| vsp tool |
Description |
Priority |
GetTableContents |
Read table data with SQL WHERE filter + column selection + row limit |
High |
RunQuery |
Execute freestyle ABAP SQL queries |
High |
GetTable |
Read DDIC table / structure definition |
High |
GetFunction |
Read function module source + signature |
Medium |
GetFunctionGroup |
Read function group overview |
Medium |
GetTransaction |
Read transaction metadata |
Low |
GetTypeInfo |
Read ABAP type definition |
Low |
Impact: GetTableContents and RunQuery alone dramatically improve debugging and data exploration workflows for AI agents.
🧭 3. Code Intelligence & Navigation
vsp exposes full ADT code-intelligence endpoints. We expose none of these.
| vsp tool |
Description |
Priority |
FindDefinition |
Navigate to definition of a symbol at position |
High |
FindReferences |
Find all usages (where-used) for a symbol |
High |
GetCallersOf |
Call hierarchy — upward traversal |
High |
GetCalleesOf |
Call hierarchy — downward traversal |
High |
GetObjectStructure |
Object explorer tree (methods, attributes, hierarchy) |
Medium |
GetTypeHierarchy |
Super/sub-types of a class or interface |
Medium |
CodeCompletion |
Code completion suggestions at a position |
Low |
Impact: This is the single biggest capability gap for AI-assisted development. Finding usages and definitions allows agents to understand context without manual search.
✍️ 4. Object Lifecycle — Create & Delete
We have update_source but do not expose object creation or deletion via MCP.
| vsp tool |
Description |
Priority |
CreateObject |
Create ABAP objects (PROG, CLAS, INTF, FUGR, FUGR/FF, DEVC, DDLS, BDEF, SRVD, SRVB) |
High |
DeleteObject |
Delete an ABAP object |
High |
CreatePackage |
Create a local () or transportable package |
Medium |
CreateTable |
Create a DDIC table from JSON definition |
Low |
Impact: Without create/delete, AI agents cannot scaffold new development objects end-to-end.
🔄 5. Object Management — Clone, Rename, Move
Higher-level refactoring operations.
| vsp tool |
Description |
Priority |
CloneObject |
Copy object to a new name (PROG, CLAS, INTF) |
Medium |
RenameObject |
Rename an object (creates copy) |
Medium |
MoveObject |
Move object to a different package |
Medium |
✅ 6. Quality & Activation Improvements
We have single-object activate and syntax check. Missing batch and formatting.
| vsp tool |
Description |
Priority |
ActivatePackage |
Batch-activate all inactive objects in a package |
High |
PrettyPrint |
Format ABAP source code via SAP pretty printer |
Medium |
SetPrettyPrinterSettings |
Configure pretty printer (indent, keyword case…) |
Low |
GetPrettyPrinterSettings |
Read current pretty printer settings |
Low |
🚀 7. Transport Management — Completions
Our CTS tools have stub implementations.
| Feature |
Status in adt-mcp |
Priority |
cts_create_transport |
Stub — backend not implemented |
High |
cts_release_transport |
Stub — backend not implemented |
High |
| Transport object assignment |
Not exposed |
Medium |
| Transport owner/reassign |
Not exposed |
Low |
🔒 8. Locking API Exposure
Object locking is done implicitly inside update_source but not exposed as dedicated MCP tools, which limits fine-grained AI workflows.
| vsp tool |
Description |
Priority |
LockObject |
Acquire an edit lock (returns lock handle) |
Medium |
UnlockObject |
Release a lock handle |
Medium |
🌐 9. RAP / OData / CDS Pipeline Support
vsp has comprehensive end-to-end RAP support (CDS, BDEF, SRVD, SRVB), including service binding publish/unpublish.
| vsp tool / capability |
Description |
Priority |
CDS / DDLS source read via get_source |
Partial — object type routing needed |
Medium |
| BDEF / SRVD / SRVB create + write |
End-to-end RAP scaffolding |
Medium |
PublishServiceBinding |
Activate and publish OData service |
Medium |
UnpublishServiceBinding |
Unpublish an OData endpoint |
Low |
🧪 10. Execute Arbitrary ABAP Code
vsp implements ExecuteABAP — wraps user code in a temporary unit test and runs it.
| Feature |
Description |
Priority |
execute_abap |
Run ad-hoc ABAP snippets via unit test wrapper |
Medium |
Security note: Must be opt-in via explicit config flag, with risk-level controls (harmless / dangerous / critical).
🖥️ 11. System & Feature Introspection
| vsp tool |
Description |
Priority |
GetInstalledComponents |
List installed software components with versions |
Medium |
GetFeatures |
Probe system for available features (abapGit, RAP, AMDP, UI5, CTS) |
Medium |
🔮 12. Debugging (Experimental / Long-term)
vsp implements debugging via a custom ABAP WebSocket handler (ZADT_VSP) that must be installed on the SAP system. This is complex and experimental even in vsp.
| vsp tool |
Description |
Priority |
SetBreakpoint / GetBreakpoints / DeleteBreakpoint |
Breakpoint management |
Low |
DebuggerListen / DebuggerAttach |
Attach to debugger session |
Low |
DebuggerStep / DebuggerGetStack / DebuggerGetVariables |
Interactive step-debug |
Low |
AMDPDebugger* |
HANA/SQLScript AMDP debugging |
Low |
Note: This requires a custom ABAP package (ZADT_VSP) installed on the SAP system. The standard ADT debugger is highly session-stateful and complex to operate over HTTP. Recommend tracking separately once core features are complete.
🎨 13. UI5 / BSP (Partial, Future)
vsp exposes read-only UI5/BSP operations. Write operations are blocked by ADT's read-only filestore (requires a different API).
| vsp tool |
Description |
Priority |
UI5ListApps |
List BSP/Fiori applications |
Low |
UI5GetApp |
Get app details |
Low |
UI5GetFile |
Read a UI5 file |
Low |
🌿 14. abapGit Integration
vsp has abapGit detection and export tooling. We have some abapGit serialization in adt-plugin-abapgit.
| vsp tool / feature |
Description |
Priority |
GetGitTypes |
List objects eligible for abapGit export |
Medium |
GitExport |
Export package in abapGit format |
Medium |
InstallAbapGit |
Install abapGit on the SAP system |
Low |
Priority Summary
🔴 High Priority (most value for AI-assisted development)
🟡 Medium Priority (significant quality-of-life improvements)
🟢 Low Priority (specialized or experimental)
Implementation Notes
Architecture Alignment
- All new tools should follow the existing pattern in
packages/adt-mcp/src/lib/tools/: one file per tool, registerXxxTool(server, ctx) export, zod schema for inputs
- New ADT client calls should go through
adt-contracts (speci descriptors) and adt-client for full type safety
- Heavy write operations should follow the lock → write → unlock → activate cycle already established in
adk
Safety / Gating
- Destructive operations (
delete_object, execute_abap, create_table) must be gated behind explicit opt-in config flags, matching the safety philosophy in vsp
- SQL /
run_query should be opt-in (read-only by default)
Phasing
Recommend tackling in this order:
- Grep + Table Data (#H1, #H2, #H3) — high value, lower complexity
- Code Navigation (#H4, #H5) — high value, ADT endpoints are well-known
- Object Lifecycle (#H6, #H7) — enables full scaffolding
- Transport completions (#H8) — removes existing stubs
- Medium priority items as bandwidth allows
References
Overview
vibing-steampunk (vsp) is a Go-native MCP server that bridges SAP ADT REST APIs with AI coding assistants. It exposes 122 ADT operations as MCP tools (81 in "focused" mode). Our
adt-mcppackage currently exposes 17 tools.This issue tracks the gap analysis and proposes a prioritised roadmap to onboard the most impactful features into our TypeScript-native toolset.
Current State: adt-mcp (17 tools)
discoverysystem_infosearch_objectsget_objectget_sourceupdate_sourceactivate_objectcheck_syntaxrun_unit_testsget_test_classeslist_package_objectsatc_runcts_list_transportscts_get_transportcts_create_transportcts_release_transportcts_delete_transportGap Analysis vs. vibing-steampunk
🔍 1. Search & Grep
vsp exposes powerful in-system content search. We have only name-pattern search.
GrepObjectsGrepPackagesGrepObjectImpact: Lets AI agents do code-level discovery without reading every file individually. ADT endpoint:
/sap/bc/adt/repository/informationsystem/search.📖 2. Extended Read Operations
We have generic
get_sourcebut are missing several dedicated readers for non-source objects and data.GetTableContentsRunQueryGetTableGetFunctionGetFunctionGroupGetTransactionGetTypeInfoImpact:
GetTableContentsandRunQueryalone dramatically improve debugging and data exploration workflows for AI agents.🧭 3. Code Intelligence & Navigation
vsp exposes full ADT code-intelligence endpoints. We expose none of these.
FindDefinitionFindReferencesGetCallersOfGetCalleesOfGetObjectStructureGetTypeHierarchyCodeCompletionImpact: This is the single biggest capability gap for AI-assisted development. Finding usages and definitions allows agents to understand context without manual search.
✍️ 4. Object Lifecycle — Create & Delete
We have
update_sourcebut do not expose object creation or deletion via MCP.CreateObjectDeleteObjectCreatePackageCreateTableImpact: Without create/delete, AI agents cannot scaffold new development objects end-to-end.
🔄 5. Object Management — Clone, Rename, Move
Higher-level refactoring operations.
CloneObjectRenameObjectMoveObject✅ 6. Quality & Activation Improvements
We have single-object activate and syntax check. Missing batch and formatting.
ActivatePackagePrettyPrintSetPrettyPrinterSettingsGetPrettyPrinterSettings🚀 7. Transport Management — Completions
Our CTS tools have stub implementations.
cts_create_transportcts_release_transport🔒 8. Locking API Exposure
Object locking is done implicitly inside
update_sourcebut not exposed as dedicated MCP tools, which limits fine-grained AI workflows.LockObjectUnlockObject🌐 9. RAP / OData / CDS Pipeline Support
vsp has comprehensive end-to-end RAP support (CDS, BDEF, SRVD, SRVB), including service binding publish/unpublish.
get_sourcePublishServiceBindingUnpublishServiceBinding🧪 10. Execute Arbitrary ABAP Code
vsp implements
ExecuteABAP— wraps user code in a temporary unit test and runs it.execute_abapSecurity note: Must be opt-in via explicit config flag, with risk-level controls (harmless / dangerous / critical).
🖥️ 11. System & Feature Introspection
GetInstalledComponentsGetFeatures🔮 12. Debugging (Experimental / Long-term)
vsp implements debugging via a custom ABAP WebSocket handler (
ZADT_VSP) that must be installed on the SAP system. This is complex and experimental even in vsp.SetBreakpoint/GetBreakpoints/DeleteBreakpointDebuggerListen/DebuggerAttachDebuggerStep/DebuggerGetStack/DebuggerGetVariablesAMDPDebugger*Note: This requires a custom ABAP package (
ZADT_VSP) installed on the SAP system. The standard ADT debugger is highly session-stateful and complex to operate over HTTP. Recommend tracking separately once core features are complete.🎨 13. UI5 / BSP (Partial, Future)
vsp exposes read-only UI5/BSP operations. Write operations are blocked by ADT's read-only filestore (requires a different API).
UI5ListAppsUI5GetAppUI5GetFile🌿 14. abapGit Integration
vsp has abapGit detection and export tooling. We have some abapGit serialization in
adt-plugin-abapgit.GetGitTypesGitExportInstallAbapGitPriority Summary
🔴 High Priority (most value for AI-assisted development)
grep_objects/grep_packages— in-system regex searchget_table_contents/run_query— table data and SQL accessget_table— DDIC table/structure definition readerfind_definition+find_references— code navigation (where-used, go-to-def)get_callers_of+get_callees_of— call hierarchy traversalcreate_object+delete_object— full object lifecycleactivate_package— batch activation of inactive objectscts_create_transportandcts_release_transportbackend implementations🟡 Medium Priority (significant quality-of-life improvements)
get_function+get_function_group— function module readerget_object_structure+get_type_hierarchy— structural navigationlock_object/unlock_object— explicit lock APIclone_object/rename_object/move_object— refactoringpretty_print— ABAP code formattingcreate_package— create development packagesexecute_abap— run arbitrary ABAP snippets (opt-in, gated)get_installed_components+get_features— system introspectionpublish_service_binding+ CDS/BDEF/SRVD/SRVB creategit_export/get_git_types— abapGit MCP exposure🟢 Low Priority (specialized or experimental)
code_completionat positionget_transaction/get_type_infocreate_table(DDIC from JSON)SetBreakpoint,DebuggerListen, …) — requires ZADT_VSP on SAPImplementation Notes
Architecture Alignment
packages/adt-mcp/src/lib/tools/: one file per tool,registerXxxTool(server, ctx)export, zod schema for inputsadt-contracts(speci descriptors) andadt-clientfor full type safetyadkSafety / Gating
delete_object,execute_abap,create_table) must be gated behind explicit opt-in config flags, matching the safety philosophy in vsprun_queryshould be opt-in (read-only by default)Phasing
Recommend tackling in this order:
References
packages/adt-mcp/src/lib/tools/