ZARC1_EXTENSION_FORMS
An extension of four tools for arc-1arc-1An MCP server in front of the ADT REST API that runs locally and on Cloud Foundry with twelve tools that read, search, write, activate, lint and transport ABAP objects.independent, abap, with an ABAP backend behind it, that reaches the classic form objects ADT has no API for: SAPscript layout sets, Smart Styles and the TADIR record of a Smart Form.
SAPscript layout sets (FORM), Smart Styles (SSST) and Smart Forms (SSFO) predate ABAP Development Tools and have no ADT read API, so arc-1arc-1An MCP server in front of the ADT REST API that runs locally and on Cloud Foundry with twelve tools that read, search, write, activate, lint and transport ABAP objects.independent, abap cannot reach them on its own. This adds four Custom_* tools: two reads return any TADIR object's existence, package and author and list the text IDs a SAPscript form stores its texts under, and two writes create, update or delete a SAPscript window text and create, overwrite or delete a Smart Style, activating it by default. The backend is classic CDS views published as OData V2 and a small SEGW service for the write actions, imported with abapGitabapGitA Git client written in ABAP that runs inside the system, so objects are cloned, pulled and pushed without leaving it; with no package manager in ABAP, a cloned repository is how code is distributed.community org, abap into a package such as ZARC_1_EXTENSION; it targets SAP_BASIS 7.5x and needs no RAP. Smart Form content is the part it leaves alone: the README traces SSF_SAVE_FORM to function-group state that a stateful Form Painter call sequence builds up, so for a Smart Form only the existence check applies.
Facts
Where it sits
Who is behind it
In the atlas: maintains 1, contributes to 1@F-Wermaintainer
Before choosing this
Conditions
PracticalFunctional boundary
Smart Form content cannot be read or written, and HR Forms (PE51) are not implemented. Installing it needs SAP GUI or WebGUI once, to register the OData services in /IWFND/MAINT_SERVICE and to redefine the write service in SEGW, and the extension is built against a locally linked ARC-1.
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
- MCP server
- Origin
- Independently maintained
As an MCP server
- Tools
- 4
- Guardrails
1 quoted from README, ARC-1 tools show all
The write tools require both opt-ins:
For agent access to ABAP code
- Read
- sourcesearchwhere-usedDDICCDStable data
- Change
- writecreateactivatetransportsgit
- Check
- syntaxATCABAP Unit
- Run
- run codedumps
Connections
Letting a coding agent read and act on your project or system
MCP server over the ADT REST API for ABAP objects
Git client written in ABAP that runs inside the system
Download
Architecture
Download
ARC1_PLUGINS; the four tools exist only inside itsrc/If the ABAP backend is pulled from the repository rather than created by handREADME
quoted from F-Wer/ZARC1_EXTENSION_FORMS under Apache-2.0, readZARC1_EXTENSION_FORMS
An ARC-1 extension for classic SAP form objects that ARC-1 core cannot access through ADT: Smart Forms (SSFO), Smart Styles (SSST), and SAPscript layout sets (FORM, transaction SE71).
These object types predate ABAP Development Tools and have no ADT read API. This was verified on a live SAP system: they have no ADT discovery entry, the generic ADT vit fallback returns HTTP 400, and the Repository Information System does not list them. The full evidence trail is in ai.md.
The extension uses parameterized classic CDS views published as OData V2, plus a small SEGW service for write actions. It targets SAP_BASIS 7.5x or later and deliberately does not require RAP, behavior definitions, or query-provider classes.
What is supported
| Object type | Supported capability | Status |
|---|---|---|
| Any TADIR object type | Check existence, package, and author | Live-verified |
SAPscript FORM | Discover text IDs; create, update, or delete window text | Live-verified end to end; read-back is byte-exact |
Smart Style (SSST) | Create or overwrite, read, activate, and delete styles | Live-verified end to end |
Smart Form (SSFO) | Existence and TADIR metadata only | Content read/write is not available |
HR Forms (PE51) | Not implemented | Requires verification on an HR-enabled SAP system |
Repository layout
src/ ABAP backend — abapGit mirror of package ZARC_1_EXTENSION
plugin/ TypeScript ARC-1 extension (arc1-plugin-formobjects)
ai.md Evidence trail, implementation notes, and SAP-specific gotchas
research/ Research for SSFO, SSST, FORM, and PE51
PROGRESS.md Handoff tracker for research work
Backend
| Object | Purpose | Reachable via |
|---|---|---|
ZI_ARC1_FORMOBJ (CDS view) | TADIR existence, package, and author for any object type | OData V2 ZI_ARC1_FORMOBJ_CDS |
ZI_ARC1_FORM_WINDOWS (CDS view) | STXL text IDs (TDID) belonging to a SAPscript FORM | OData V2 ZI_ARC1_FORM_WINDOWS_CDS |
ZCL_ARC1_FORM_WINDOW_WRITE | Writes one SAPscript FORM text ID via SAVE_TEXT | WriteFormWindowText OData action |
ZCL_ARC1_SMART_STYLE_RW | Creates, reads, activates, and deletes Smart Style content | WriteSmartStyle OData action; style reads use SAP tables |
ZCL_ZI_ARC1_FORM_WINDO_DPC_EXT | Dispatches the form-window and Smart Style OData actions | OData V2 ZI_ARC1_FORM_WINDOWS_CDS_SRV |
ARC-1 tools
All four tools are verified against a real SAP system.
| Tool | Scope | What it does |
|---|---|---|
Custom_ReadFormObject | read | Returns existence, package, and author for SSFO, SSST, FORM, or any other TADIR object type. |
Custom_ReadFormWindows | read | Lists the TDID values under which a SAPscript form stores text. Use ARC-1 core's SAPRead(type="CLUSTER_READ", ...) to decode a text's content. |
Custom_WriteFormWindows | write | Creates, updates, or—when lines is empty—deletes a SAPscript form text. |
Custom_WriteSmartStyle | write | Creates or overwrites a Smart Style and activates it by default. Empty paragraphs and characterFormats delete the style. Optional package and transport parameters support transportable objects. |
The write tools require both opt-ins:
SAP_ALLOW_PLUGIN_RAW_WRITES=true
SAP_ALLOW_WRITES=true
See plugin/README.md for the exact tool inputs and command-line examples.
Smart Forms and Smart Styles: the important distinction
Smart Form (SSFO) content cannot be exposed through one safe external call. SSF_SAVE_FORM depends on function-group-global state built up by a stateful Form Painter call sequence. The functions that build the node and token tree are private subroutines, not callable function modules. Details and source-level evidence are in research/SSFO.md.
Smart Style (SSST) content is supported. A Smart Style is a flat catalogue of paragraph and character formats. SSF_SAVE_STYLE and SSF_READ_STYLE are self-contained APIs, so the backend can safely create, read, activate, and delete styles. Custom_WriteSmartStyle is live-verified end to end: create and publish, SAPQuery read-back, and delete. See research/SSST.md.
Installation
1. Install the ABAP backend
Pull the repository with abapGit into a package such as ZARC_1_EXTENSION (or another transportable package). The two CDS views and backend classes are in src/.
If abapGit is unavailable, create the two DDLS objects from src/zi_arc1_formobj.ddls.asddls and src/zi_arc1_form_windows.ddls.asddls, then activate them.
2. Register the read services once
This requires SAP GUI or WebGUI because neither ADT nor SICF provides a REST API to register a new service:
- Run
/IWFND/MAINT_SERVICE. - Choose Add Service, select system alias
LOCAL(or the system-specific alias), search forZI_ARC1_FORMOBJ, and add it. - Repeat for
ZI_ARC1_FORM_WINDOWS.
Verify that /sap/opu/odata/sap/ZI_ARC1_FORMOBJ_CDS/$metadata returns HTTP 200.
3. Enable write actions once
@OData.publish: true cannot declare OData actions. In SEGW, redefine ZI_ARC1_FORM_WINDOWS_CDS and generate the separate ZI_ARC1_FORM_WINDOWS_CDS_SRV service. Register that _SRV service in /IWFND/MAINT_SERVICE as well.
Add the WriteFormWindowText and WriteSmartStyle actions and use the implementation in src/zcl_zi_arc1_form_windo_dpc_ext.clas.abap for /IWBEP/IF_MGW_APPL_SRV_RUNTIME~EXECUTE_ACTION. The detailed action parameters, serialization details, and common Gateway pitfalls are documented in ai.md.
4. Build and load the ARC-1 extension
git clone https://github.com/F-Wer/ZARC1_EXTENSION_FORMS.git
cd ZARC1_EXTENSION_FORMS/plugin
# ARC-1 currently needs to be linked locally.
(cd /path/to/arc-1 && npm run build && npm link)
npm install
npm link arc-1
npm run build
ARC1_PLUGINS=/absolute/path/to/ZARC1_EXTENSION_FORMS/plugin/dist/index.js \
arc1 --transport http-streamable
For BTP Cloud Foundry or Docker deployments, ship plugin/dist/ with ARC-1. Ensure that the plugin files are owned by the ARC-1 runtime user; a plain Docker COPY can leave them owned by root, which the loader rejects.
Non-goals and limitations
- Smart Form content cannot currently be read or written. There is one unfinished cluster-decoding avenue for reads, but it requires an ARC-1 core enhancement for multi-object data clusters.
- Smart Style content is writable through the extension; direct content reads currently use core
SAPQueryonSTXSHEAD,STXSPARA, andSTXSCHAR. - HR Forms (
PE51) were not investigated live because the development system has no HR component installed.
Others providing
Compare all 43 on the Agent access to ABAP code page →- @abap2ui5/mcp-server@abap2ui5/mcp-serverAn MCP server that puts the abap2UI5 development loop on the machine an agent runs on: check the view the ABAP builds, photograph it, deploy the class into a sandbox, boot the app headless and read the errors.community org, abapMCP server for the abap2UI5 check, deploy and run loop
- arc-1-bopf-enharc-1-bopf-enhAn extension of four tools for arc-1, with an ABAP service behind it, that lets an agent read and maintain classic BOPF enhancements of SAP standard business objects.independent, abaparc-1 extension for reading and maintaining BOPF enhancements
- HammerHammerA native macOS code editor for ABAP and CDS, with an Object Navigator, Transport Organizer, Data Browser and Gateway Client in the same app as the editor.independent, abapNative macOS code editor for ABAP and CDS
- arc-1-lsparc-1-lspAn edition of ARC-1 that hands every ADT interaction to SAP's own embedded adt-ls language server instead of a hand-rolled HTTP client.independent, abapEdition of ARC-1 that runs ADT calls through adt-ls
- arc-1arc-1An MCP server in front of the ADT REST API that runs locally and on Cloud Foundry with twelve tools that read, search, write, activate, lint and transport ABAP objects.independent, abapMCP server over the ADT REST API for ABAP objects
- arc1-abap-bridgearc1-abap-bridgeA VS Code extension between arc-1 and ABAP Development Tools for VS Code, so GitHub Copilot can open an ABAP object by name, diff the inactive version and ask the system whether an edit would be accepted.independent, abapVS Code bridge between arc-1 and ADT for VS Code
- arc1-adt-abap-mcp-extarc1-adt-abap-mcp-extOne JAR in Eclipse's dropins that turns on SAP's own ADT MCP server and adds read-only repository tools beside it — so an AI client reads your system without leaving Eclipse.independent, abapEclipse add-on enabling the ADT MCP server with read-only tools
- ABAP Accelerator MCP ServerABAP Accelerator MCP ServerAWS's ABAP MCP server for Amazon Q Developer and Kiro, deployable locally, in Docker or centrally on ECS Fargate with OAuth principal propagation; its repository is no longer maintained.partner, abapAWS's ABAP MCP server for Amazon Q Developer and Kiro
- Modernization Agents for SAP on AWSModernization Agents for SAP on AWSAWS's suite of agents for SAP modernisation work: custom ABAP converted for S/4HANA, PI/PO interfaces moved to Integration Suite, BW objects moved to SAP Datasphere, deployed into a customer's own AWS account and reached only after registration.partner, abapAWS agents for ABAP, PI/PO and BW modernisation work
- @mcp-abap-adt/core@mcp-abap-adt/coreA descendant of the Andreschak and fr0ster servers rebuilt on its own architecture, published as an npm scope and a Claude Code plugin, with Korean and Japanese documentation beside the English.independent, abapABAP ADT MCP server published as an npm scope and plugin
- chandrashekhar-mahajan/abap-mcp-serverchandrashekhar-mahajan/abap-mcp-serverFifteen ADT tools behind five pluggable authentication strategies — Kerberos/SPNEGO, OAuth 2.0, X.509, browser SSO and basic — for systems where basic auth is not an option.independent, abapABAP MCP server with ADT tools and five authentication strategies
- dassian-adtdassian-adtA fork of mcp-abap-abap-adt-api hardened for use: 25 tools, input validation, error intelligence, MCP elicitation, session recovery and a test suite.independent, abapFork of mcp-abap-abap-adt-api with 25 tools and session recovery
- erpl-adterpl-adtOne C++ binary that speaks the ADT REST API as a CLI and as an MCP server — no Eclipse, no NetWeaver RFC SDK, no JVM — and reaches BW/4HANA modelling as well as ABAP.independent, abapC++ binary speaking the ADT REST API as a CLI and MCP server
- bw-modeling-mcpbw-modeling-mcpReads, creates and modifies BW/4HANA modelling objects through the same internal APIs Eclipse BWMT and the BW/4HANA Cockpit use — and can run centrally on BTP with each caller reaching BW as themselves.independent, btpMCP server for BW/4HANA modelling objects
- EPOD ADT MCP ServerEPOD ADT MCP ServerAn MCP server for ABAP that runs inside ABAP Development Tools for Eclipse on the ADT session of each connected project, with a standalone mode that runs with no IDE open.independent, abapMCP server for ABAP on the ADT session, in Eclipse or standalone
- fgalastri/MCP_ABAPfgalastri/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.independent, 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.
- fr0ster/mcp-abap-adtfr0ster/mcp-abap-adtFull CRUD across on-premise and ABAP Cloud systems, with five authentication methods and three transports: a library under Apache-2.0 and a standalone server under AGPL-3.0-only.independent, abapABAP MCP server with full CRUD on on-premise and ABAP Cloud
- abapsmithabapsmithAn MCP server that lets an LLM develop in ABAP on a live system over ADT, with writes off by default and every mutation recorded in a local journal that can undo it.independent, abapABAP MCP server over ADT with a local journal that can undo writes
- sap-ai-dev-toolkitsap-ai-dev-toolkitAn MCP proxy that pins an agent's ABAP tools to one SAP system: setup reads the BAS destinations or the local SAP GUI landscape and writes one stdio server per system, leaving the credentials in the destination or in the editor's own login prompts.independent, abapMCP proxy pinning an agent's ABAP tools to one SAP system
- aibap.mcpaibap.mcpA Go server that closes the loop: after create, write and activate it can run the class it just wrote through ADT's classrun and hand the console output back.independent, abapGo MCP server that writes, activates and runs ABAP classes via ADT
- BellaBellaAn Eclipse plugin that puts Claude into ABAP Development Tools: explain, generate, rework and implement from the editor's context menu, completion as ghost text, and a chat whose tools reach the system through the developer's existing ADT logon.independent, abapEclipse plugin bringing Claude into ABAP Development Tools
- Maherd18/sap-mcp-serverMaherd18/sap-mcp-serverAn MCP server for ABAP development over the ADT resources: eight tools, each checked against a JSON policy file before the call reaches the system, with activation and transport release held for a person to approve.independent, abapPolicy-checked MCP server for ABAP development over ADT
- sapdumpmcpsapdumpmcpAn MCP server for SAP dumps: it connects to an ABAP system over the ADT resources and lets an MCP client ask a dump for its description and call stack.independent, abapMCP server reading ABAP short dumps over ADT
- ABAP remote filesystemABAP remote filesystemA Visual Studio Code extension that opens an ABAP system over ADT as an editable filesystem and exposes system tools to GitHub Copilot and external MCP clients.independent, abapVS Code extension editing ABAP systems over ADT as a filesystem
- mcp-abap-abap-adt-apimcp-abap-abap-adt-apiThe write half of the same pair: a thin wrapper over Marcello Urbani's abap-adt-api, exposing lock, edit, activate, transport and syntax check for a full development loop.independent, abapWrite-oriented MCP server over abap-adt-api
- mcp-abap-adtmcp-abap-adtThe read-oriented half of a pair of ABAP MCP servers: high-level tools such as GetProgram, GetClass and GetTable that fetch from a system, aimed at understanding it rather than changing it.independent, abapRead-oriented MCP server fetching ABAP programs, classes, tables
- SAP MCP Connection ManagerSAP MCP Connection ManagerA Windows desktop manager that holds SAP connections and hands them to Claude Desktop or Codex through a local MCP server, each connection carrying a policy that decides what the assistant may change and what data it may read.independent, abapWindows desktop manager handing SAP connections to assistants over MCP
- ABAPilotABAPilotAn MIT-licensed MCP connector for ECC and on-premise S/4HANA that reads ABAP source and dictionary context, whose SAP-side half is a licensed product you install in the system.independent, abapMCP connector for ECC and on-premise S/4HANA with a licensed SAP side
- vibing-steampunkvibing-steampunkAn ADT-to-MCP bridge in Go that reaches past what ADT exposes — cluster tables decoded, spool and job logs read as tables, the IMG searched, selection texts written back.independent, abapADT-to-MCP bridge in Go reaching past what ADT exposes
- ADT MCP ServerADT MCP ServerSAP's own ADT MCP server, and not a package: a preference inside ABAP Development Tools for VS Code that starts a local HTTP MCP server on a port you choose.sap official, abapLocal HTTP MCP server started from ABAP Development Tools for VS Code
- ABAP Development Tools for VS CodeABAP Development Tools for VS CodeSAP's ABAP tools in VS Code: editing, debugging, ABAP Unit, ATC and transports for classes, CDS and RAP objects, over RFC to an on-premise or Private Cloud system and HTTP to a cloud one, with Joule's ADT MCP server and code completion behind an AI-unit licence.sap official, abapSAP's ABAP tools in VS Code for editing, debugging, ATC and transports
- SAP Joule for Developers, ABAP AI capabilitiesSAP Joule for Developers, ABAP AI capabilitiesSAP's AI for ABAP development in ADT for Eclipse and VS Code: chat, code completion, explain, test and CDS generation, RAP logic prediction, and since June 2026 an agentic mode over the ADT MCP Server, metered in AI units through the ABAP AI Hub Service on BTP.sap official, abapSAP's AI for ABAP development in ADT for Eclipse and VS Code
- ABAPDocMCPABAPDocMCPTurns a transport request into a WRICEF technical specification: reads the transport's objects and source over ADT and writes a structured Markdown document with an object-relationship diagram.independent, abapMCP server turning a transport request into a WRICEF specification
- claude-sap-kitclaude-sap-kitA Claude Code plugin of three skills that extends arc-1 with five Custom_* tools for an on-premise ABAP system: running a report and reading its ALV as JSON, previewing a NAST message as PDF, and reading, writing and replacing SmartForms as XML.independent, abapClaude Code plugin adding Custom_* tools to arc-1
- Skybuffer AI MCP serverSkybuffer AI MCP serverAn ABAP add-on that serves SAP business data, transactions and development context as MCP tools from an ICF node inside SAP ECC and S/4HANA, each call running as the signed-in user under PFCG authorization checks.independent, abapABAP add-on serving business data and transactions as MCP tools
- abap-adt-cliabap-adt-cliPulls an ABAP package to local files over the ADT REST API in parallel, and pushes edited objects back under a transport — bulk sync rather than one object at a time in SE80 or Eclipse.independent, abapCLI that pulls and pushes ABAP packages as local files over ADT
- workskong/mcp-abap-adtworkskong/mcp-abap-adtA deliberately light MCP adapter over ABAP ADT for object search, source, DDIC metadata, a data preview and runtime diagnostics, read-only in practice and documented in Korean.independent, abapLight MCP adapter for ABAP over ADT, documented in Korean
- KlystronKlystronAn MCP server written in ABAP that runs inside the application server behind an ICF service and exposes typed tools for ABAP development, quality, transports, customizing, roles, Basis operations and integration, with a client-side plugin of SAP skills.independent, abapMCP server in ABAP inside the application server, with agent skills
- pyrfc-mcppyrfc-mcpAn MCP server for calling an SAP system's RFC-enabled function modules from an agent, built so that discovering a function does not authorise calling it: a read or a write is denied unless the function name matches an allowlist the server is configured with.independent, abapMCP server calling RFC-enabled function modules behind an allowlist
- ABAP-AI-CODE-TOOLSABAP-AI-CODE-TOOLSAn 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.independent, abapabapGit package adding create, modify and delete tools to ABAP AI Code
- ABAP AI CodeABAP AI CodeAn agentic coding assistant written in ABAP that runs as a SAP GUI report and reads, explains and reviews repository objects inside the system, running an LLM's tool calls as ABAP.independent, abapAgentic coding assistant in ABAP that runs as an SAP GUI report
- VERTEXVERTEXAn extension for ABAP Development Tools for Eclipse and VS Code that shows Simple Data Explorer, AVE and ACE in the editor over the developer's ADT connection.independent, abapADT extension for Eclipse and VS Code showing three SAP GUI tools
Details
Sources
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
Flavors
“It targets SAP_BASIS 7.5x or later and deliberately does not require RAP, behavior definitions, or query-provider classes.” — F-Wer/ZARC1_EXTENSION_FORMS — README
History in the atlas
- Entered by intake from the repository README and description.
- First seen.
For your agent
- Ref
artifact:f-wer-zarc1-extension-forms- JSON
- /artifacts/f-wer-zarc1-extension-forms.json
- MCP
- Connecting an agent