PackagePackagetypeA library you install and call yourself.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →

ABAP-AI-CODE-TOOLS

An optional abapGit package that adds create, modify and delete tools to ABAP AI Code, for ABAP programs and classes, with each diff block approved before it is saved.

ABAP AI Code reads and reviews code and cannot change it; this package adds the tools that create, modify and delete programs and classes. It is a separate repository so that write access is decided per system: installed in a sandbox, left out of a production or audited one, where the model is never told the write tools exist. Changes go through standard SAP APIs with a syntax check, a transport entry through RS_CORR_INSERT and activation, and nothing is saved until each block of the diff is approved. Only PROG and CLAS are supported, and the delete tool refuses to register until its prompt fragment delete_sap_object.md, which is not shipped, is added.

Facts

Last pushLicenceMIT

Where it sits

Lives in
Provides
Agent access to your codeABAPAgent access to your codecapabilityLetting a coding agent read the project or the system you actually have, reach its model, its objects and its checks, and act on it. In file-based environments that works out of the box; complex systems need dedicated access capabilities. Whatever the environment, the agent also needs project- and framework-specific context, so it understands the thing in front of it rather than guessing from what it remembers of its training data. The transport is incidental: an MCP server, a language server or a CLI answer the same question, and what differs between them is how much of the real thing the agent can see. Distinct from [MCP servers](capability:mcp-servers), which is a protocol adapter on your own running service, and from [agent guidance](capability:agent-guidance), which is knowledge handed over as files rather than read from the thing itself.
Requires
ABAP AI CodeABAP AI CodeartifactThe write tools are plugins that ABAP AI Code discovers at runtime; without the base installed first there is nothing to plug into.

Who is behind it

Yurii SychovYurii SychovPersonMaintains this
In the atlas: maintains 9, contributes to 10
@ysichov
maintainer

Before choosing this

Conditions

PolicySAP API Policy 4.2026a§ 1.1, 1.2, 2.2.2from Agent access to your codeAn MCP server calls ADT or another SAP API of a running system for an agent.
  • § 1.1 Published APIs. Published APIs are made available for the documented purposes identified by SAP, including integration, extensions and data exchange.
  • § 1.2 Non-Published APIs. Customer and third-party applications must not access non-published APIs except where documentation permits it or SAP otherwise authorizes it.
  • § 2.2.2 AI call sequences and data extraction. Outside SAP-endorsed architectures, data services or expressly identified pathways, the policy prohibits specified agentic API use and systematic or large-scale extraction.

An agent that plans and executes ADT calls is the case section 2.2.2 names. Check that the endpoints are published for the intended use, and that the design runs within a pathway SAP identifies for it.

SAP API Policy 4.2026a →

What it declares

Every artifact

Type
Package
Origin
Independently maintained

As a package

Where it runs
does not say
Distributed through
abapGit

Connections2

README

quoted from ysichov/ABAP-AI-CODE-TOOLS under MIT, read
ysichov/ABAP-AI-CODE-TOOLS/README.mdOn GitHub

ABAP AI Code — write tools

Optional write / code-mutation add-on for ABAP AI Code.

The base platform is deliberately read-only: it can read, explain and review ABAP code, but it cannot change a single line. This package is what turns it into an assistant that creates, modifies and deletes ABAP repository objects — and it is a separate abapGit repository precisely so that granting that power is an explicit, per-system decision.

Start with the base repository: https://github.com/ysichov/ABAP-AI-Code Installation, provider setup, API-key encryption, the UI and the tool-plugin pattern are all documented there. This README only covers what the add-on adds.


Table of contents


1. Why it is a separate package

"AI can read my code" and "AI can rewrite my code" are two very different conversations with a security officer. Splitting them into two repositories means the answer can be different per system:

SystemBaseThis add-onResult
PROD / audited✔✘AI can explain and review code, and physically cannot write
DEV / sandbox✔✔Full assisted development

The split is not just packaging. Because the base has no compile-time dependency on this package, a system without it is not a system with a disabled feature — it is a system where the capability does not exist. The LLM is never told about create_sap_object, modify_sap_object or delete_sap_object, so it never proposes them and never fails trying.


2. What you get

  • Create a new program or class from a natural-language requirement.
  • Modify an existing object: add a method, change a signature, refactor a block, remove a FORM, strip header comments — anything that leaves the object in place.
  • Delete a whole program or class, with a mandatory confirmation.
  • All of it through standard SAP APIs, with a syntax check before saving, a normal transport entry (RS_CORR_INSERT) and activation (RS_WORKING_OBJECTS_ACTIVATE) — the same path a human developer's change takes.
  • All of it behind the base platform's per-hunk diff review: nothing is written until you approve it.

3. How it plugs in — the plugin pattern

Every tool in ABAP AI Code is a three-layer plugin, and this package simply ships three more of them:

Layer 1  <tool_name>.json   OpenAI function definition — the contract the LLM sees
Layer 2  <tool_name>.md     prompt fragment — behaviour rules for that tool
Layer 3  ZCL_AITOOL_<X>     ABAP class (ZIF_AI_TOOL via ZCL_AITOOL_BASE) — does the work

ZCL_AI_TOOL_FACTORY in the base discovers implementers at runtime through SEOMETAREL, and builds both the tools JSON array and the tool section of the system prompt from the same registry. Consequences:

  • Installing this package is all it takes. No core class is modified, no CASE branch is extended, no prompt in the base is edited.
  • Uninstalling it removes the capability from the toolset and from the prompt in one step.
  • The runner and the code UI call the saver only by dynamic name (CALL METHOD ('ZCL_CODE_OBJECT_SAVER')=>…), so the base compiles and runs perfectly without this repository; write paths simply report "read-only platform".

Full description of the pattern, including how to write your own tool: base README §3 and §8.


4. Installation

4.1 Install order

abapGit does not resolve dependencies, so the order matters:

  1. ABAP-AI-Code — the read-only base (core, engine, UI, read/review tools). Required. Pull and activate first.
  2. ABAP-AI-CODE-TOOLS — this repository, into a second Z package.

Installing this package first will not activate: its classes inherit from ZCL_AITOOL_BASE and call ZCL_AI_CODE_READER, both of which live in the base.

4.2 Companion prompt files

Each tool needs its <tool_name>.json (schema) and <tool_name>.md (prompt fragment) copied into the same frontend folder the base already uses (p_tools on the Z_ABAP_AI_CODE2 selection screen):

ToolFiles to copy
create_sap_objectcreate_sap_object.json, create_sap_object.md
modify_sap_objectmodify_sap_object.json, modify_sap_object.md, plus modify_user_template.md
delete_sap_objectdelete_sap_object.json, delete_sap_object.md, plus delete_misuse_redirect.md

Registration is fail-closed: if either companion file is missing, the factory refuses to register the tool and issues a message naming the missing file. A forgotten copy shows up as an explicit warning, never as a tool that silently misbehaves.

modify_user_template.md and delete_misuse_redirect.md are read by the modify tool and by the runner directly (not by the factory), so they are not covered by that guard — copy them too.


5. Contents

ObjectRole
ZCL_AITOOL_CREATETool plugin create_sap_object. Asks the LLM for a full source from the requirements, hands the result to the runner for review + save
ZCL_AITOOL_MODIFYTool plugin modify_sap_object. Reads the current source, asks the LLM for a <code_modified> envelope containing only the changed parts, merges them into the full current source, then hands both old and new source to the runner for the diff
ZCL_AITOOL_DELETETool plugin delete_sap_object. No LLM call — it only validates (CLAS / PROG only) and builds a <code_deleted> envelope; the confirmation and the deletion are the runner's job
ZCL_CODE_OBJECT_SAVERThe engine. Performs the actual write / delete / activate via RPY_PROGRAM_INSERT, RPY_INCLUDE_UPDATE, SEO_CLASS_CREATE_COMPLETE, SEO_CLASS_DELETE_COMPLETE, RS_DELETE_PROGRAM, RS_CORR_INSERT, RS_WORKING_OBJECTS_ACTIVATE. Also exposes build_full_class_source( ), which assembles a complete class out of the LLM's block output without saving, so the diff can show the whole class including the frame

6. The write flow, end to end

Taking "add a method CALCULATE to ZCL_MATH" as the example:

  1. The orchestrator picks modify_sap_object (the base prompt forces a read_sap_object first, and forbids delete_sap_object for partial changes).
  2. ZCL_AITOOL_MODIFY reads the current class source.
  3. A focused sub-agent LLM call returns a <code_modified> envelope with only the changed section and method blocks.
  4. Those blocks are merged into the full current source. Both versions — original_source and final_source — go back to the runner.
  5. The runner shows a diff in the right pane. Each hunk has approve / decline, a note field, and an AI thread for arguing about that specific hunk.
  6. On approval, ZCL_CODE_OBJECT_SAVER runs a syntax check, writes through the SAP APIs, records the transport entry and activates.
  7. Everything above — every LLM call, every tool call, the diff, the save result — lands in the session log folder.

create_sap_object follows the same path minus the read and merge; delete_sap_object skips the LLM entirely and goes straight to confirmation.


7. Safety rails

  • Nothing writes without approval. save_required only requests the review; the runner owns confirmation and saving. A tool cannot bypass it.
  • Delete is narrow by design. Only CLAS and PROG are accepted, and only for a whole object. A request to remove something inside an object (a FORM, a method, comments, lines) is redirected to modify_sap_object through delete_misuse_redirect.md — the base prompt states this rule three separate ways because it is the single most damaging thing an LLM could get wrong here.
  • Syntax check before save. A source that does not compile is rejected before it reaches the repository.
  • Normal transport and activation. Changes are visible to SE03, to your colleagues and to your release process like any other change — no side channel.
  • Merge, not overwrite. modify_sap_object merges changed blocks into the current source read moments earlier, rather than letting the LLM re-emit a whole object from memory.

8. Removing write access again

Delete the package (or just this repository's objects) via abapGit. The base keeps working unchanged: the dynamic saver calls fail gracefully, and the three write tools disappear from both the LLM toolset and the system prompt on the next run. Optionally remove the create_* / modify_* / delete_* files from the frontend prompt folder as well — with the classes gone they are inert either way.


9. Known gaps

  • delete_sap_object.md is not shipped. The schema (delete_sap_object.json) exists in the base repository's TOOLS folder, but the prompt fragment does not. Under the fail-closed rule, ZCL_AITOOL_DELETE therefore refuses to register until that file is created. Add it (or accept that delete is unavailable — an acceptable default for many systems).
  • Supported object types are PROG and CLAS. Function groups, DDIC objects, CDS and BDEF are not handled by the saver.

MIT, read
Agent access to your code
  1. @abap2ui5/mcp-serverMCP server for the abap2UI5 check, deploy and run loopfrom ABAP
  2. arc-1-bopf-enharc-1 extension for reading and maintaining BOPF enhancementsfrom ABAP
  3. HammerNative macOS code editor for ABAP and CDSfrom ABAP
  4. arc-1-lspEdition of ARC-1 that runs ADT calls through adt-lsfrom ABAP
  5. arc-1MCP server over the ADT REST API for ABAP objectsfrom ABAP
  6. arc1-abap-bridgeVS Code bridge between arc-1 and ADT for VS Codefrom ABAP
  7. arc1-adt-abap-mcp-extEclipse add-on enabling the ADT MCP server with read-only toolsfrom ABAP
  8. capforgeMCP server scaffolding CAP and CDS checked by cds compilefrom CAP
  9. ABAP Accelerator MCP ServerAWS's ABAP MCP server for Amazon Q Developer and Kirofrom ABAP
  10. Modernization Agents for SAP on AWSAWS agents for ABAP, PI/PO and BW modernisation workfrom ABAP
  11. @mcp-abap-adt/coreABAP ADT MCP server published as an npm scope and pluginfrom ABAP
  12. @cap-js/mcp-serverMCP server for CAP development: model and docs searchfrom CAP
  13. chandrashekhar-mahajan/abap-mcp-serverABAP MCP server with ADT tools and five authentication strategiesfrom ABAP
  14. dassian-adtFork of mcp-abap-abap-adt-api with 25 tools and session recoveryfrom ABAP
  15. erpl-adtC++ binary speaking the ADT REST API as a CLI and MCP serverfrom ABAP
  16. bw-modeling-mcpMCP server for BW/4HANA modelling objectsfrom BTP/BAIP
  17. EPOD ADT MCP ServerMCP server for ABAP on the ADT session, in Eclipse or standalonefrom ABAP
  18. ZARC1_EXTENSION_FORMSarc-1 extension for SAPscript and Smart Forms objectsfrom ABAP
  19. fgalastri/MCP_ABAPValidates an ABAP class before it is deployed by converting the global class to a local one and syntax-checking that — plus CDS DDL and table metadata retrieval.from ABAP
  20. fr0ster/mcp-abap-adtABAP MCP server with full CRUD on on-premise and ABAP Cloudfrom ABAP
  21. abapsmithABAP MCP server over ADT with a local journal that can undo writesfrom ABAP
  22. sap-ai-dev-toolkitMCP proxy pinning an agent's ABAP tools to one SAP systemfrom ABAP
  23. aibap.mcpGo MCP server that writes, activates and runs ABAP classes via ADTfrom ABAP
  24. BellaEclipse plugin bringing Claude into ABAP Development Toolsfrom ABAP
  25. Maherd18/sap-mcp-serverPolicy-checked MCP server for ABAP development over ADTfrom ABAP
  26. sapdumpmcpMCP server reading ABAP short dumps over ADTfrom ABAP
  27. ABAP remote filesystemVS Code extension editing ABAP systems over ADT as a filesystemfrom ABAP
  28. mcp-abap-abap-adt-apiWrite-oriented MCP server over abap-adt-apifrom ABAP
  29. mcp-abap-adtRead-oriented MCP server fetching ABAP programs, classes, tablesfrom ABAP
  30. SAP MCP Connection ManagerWindows desktop manager handing SAP connections to assistants over MCPfrom ABAP
  31. ABAPilotMCP connector for ECC and on-premise S/4HANA with a licensed SAP sidefrom ABAP
  32. vibing-steampunkADT-to-MCP bridge in Go reaching past what ADT exposesfrom ABAP
  33. ADT MCP ServerLocal HTTP MCP server started from ABAP Development Tools for VS Codefrom ABAP
  34. ABAP Development Tools for VS CodeSAP's ABAP tools in VS Code for editing, debugging, ATC and transportsfrom ABAP
  35. SAP Joule for Developers, ABAP AI capabilitiesSAP's AI for ABAP development in ADT for Eclipse and VS Codefrom ABAP
  36. @sap/mdk-mcp-serverMCP server with five tools for Mobile Development Kit workfrom BTP/BAIP
  37. @sap-ux/fiori-mcp-serverMCP server for creating and editing Fiori applicationsfrom UI5
  38. ABAPDocMCPMCP server turning a transport request into a WRICEF specificationfrom ABAP
  39. claude-sap-kitClaude Code plugin adding Custom_* tools to arc-1from ABAP
  40. Skybuffer AI MCP serverABAP add-on serving business data and transactions as MCP toolsfrom ABAP
  41. @ui5/mcp-serverMCP server for UI5 development with ten toolsfrom UI5
  42. abap-adt-cliCLI that pulls and pushes ABAP packages as local files over ADTfrom ABAP
  43. workskong/mcp-abap-adtLight MCP adapter for ABAP over ADT, documented in Koreanfrom ABAP
  44. KlystronMCP server in ABAP inside the application server, with agent skillsfrom ABAP
  45. pyrfc-mcpMCP server calling RFC-enabled function modules behind an allowlistfrom ABAP
  46. ABAP AI CodeAgentic coding assistant in ABAP that runs as an SAP GUI reportfrom ABAP
  47. VERTEXADT extension for Eclipse and VS Code showing three SAP GUI toolsfrom ABAP

Details

Sources3
Added by handdiscovered herechecked
github.com/ysichov/ABAP-AI-CODE-TOOLStree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
discovered viaAdded by hand
first seen in the atlas
ecosystem and domainabap, ai-and-agents
History in the atlas1
  1. First seen.
For your agent
Ref
artifact:ysichov-abap-ai-code-tools
JSON
/artifacts/ysichov-abap-ai-code-tools.json
MCP
Connecting an agent