MCP serverMCP servertypeExposes tools to a coding agent over MCP.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 →

arc-1-bopf-enh

An 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.

Classic BOPF enhancements, the customer extensions of SAP standard business objects such as the SAP TM freight order /SCMTMS/TOR, are maintained in the BOPF designer (BOBX), and ADT has no API for them, so arc-1 cannot reach them through ADT either. This adds four Custom_BopfEnh* tools to ARC-1 that read, create, change, check and delete an enhancement and its nodes, actions, determinations, validations, queries, associations and alternative keys. The tools call an ABAP service of their own, the ICF node /sap/bc/zbe_bopf_enh/ imported with abapGit, which works through /BOBF/CL_CONF_MODEL_API, the API behind the BOPF designer. Implementation classes are generated as stubs, and their code, the DDIC structures and the appends are written with ARC-1’s own SAPWrite and SAPActivate. Every change runs as a dry run in SAP first, and a deletion needs a token from a preview.

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
arc-1arc-1artifactthe MCP server that loads the extension as a file at startup; the four tools exist only inside itabapGitabapGitartifactimporting the ABAP service and its ICF node into the SAP system
Optional
DockerDockeroutside the atlasbuilding and running an image that bundles the extension alongside arc-1deployment

Who is behind it

abat-TAOabat-TAOPersonMaintains this
In the atlas: maintains 1, contributes to 2
@abat-TAO
maintainer

Before choosing this

Conditions

PracticalFunctional boundary

Classic BOPF only: business objects of the ABAP Programming Model for SAP Fiori are not handled, and on the BTP ABAP environment or S/4HANA Public Cloud classic BOPF enhancements do not exist. It is version 0.1.0, verified on S/4HANA 2025 (SAP_BASIS 816) on-premise only, and arc-1 still marks the plugin API it is built on as experimental. ARC-1 loads no extensions on its multi-target routes and offers none of these tools in its hyperfocused tool mode.

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
4 quoted from README, Guardrails show all
  • Writes need SAP_ALLOW_WRITES, SAP_ALLOW_PLUGIN_RAW_WRITES and a caller

  • The extension runs each change as a dry run in SAP first and refuses it unless its package is in

  • The ABAP service changes only enhancement objects in the customer namespace (Z*, Y* or a namespace the

  • Deleting needs a token from a preview and stops when the enhancement changed in

For agent access to your code

Read
sourcesearchwhere-usedDDICCDStable data
Change
writecreateactivatetransportsgit
Check
syntaxATCABAP Unit
Run
run codedumps
property statedstated nonot said

Connections4

arc-1-bopf-enh connectionsarc-1-bopf-enhPROVIDES→ provides1provides stated Reaches what ADT does not on an on-premise system: an agent connected to [arc-1](artifact:arc-mcp-arc-1) reads, creates, changes, checks and deletes classic BOPF enhancements of SAP standard business objects and their entities, without BOBX. abat-TAO/arc-1-bopf-enh — repository description: https://github.com/abat-TAO/arc-1-bopf-enh abat-TAO/arc-1-bopf-enh — README: https://raw.githubusercontent.com/abat-TAO/arc-1-bopf-enh/main/README.mdAgent access to your codeNEEDS→ needs2needs stated importing the ABAP service and its ICF node into the SAP system abat-TAO/arc-1-bopf-enh — README, Quick start: https://raw.githubusercontent.com/abat-TAO/arc-1-bopf-enh/main/README.md abat-TAO/arc-1-bopf-enh — README, Quick start: https://raw.githubusercontent.com/abat-TAO/arc-1-bopf-enh/main/README.mdabapGitneeds stated the MCP server that loads the extension as a file at startup; the four tools exist only inside it abat-TAO/arc-1-bopf-enh — README, Deployment: https://raw.githubusercontent.com/abat-TAO/arc-1-bopf-enh/main/README.md abat-TAO/arc-1-bopf-enh — README, Quick start: https://raw.githubusercontent.com/abat-TAO/arc-1-bopf-enh/main/README.mdarc-1→ optionally needs1optionally needs stated If: ARC-1 and its extension are deployed as a Docker image rather than run locally or on Cloud Foundry building and running an image that bundles the extension alongside [arc-1](artifact:arc-mcp-arc-1) arc-1-bopf-enh: docs/deployment.md: https://raw.githubusercontent.com/abat-TAO/arc-1-bopf-enh/main/docs/deployment.mdDockerif

Install

git clone https://github.com/abat-TAO/arc-1-bopf-enh.git
cd arc-1-bopf-enh
cd arc1-extension && npm ci --ignore-scripts && npm run build
The config you actually write
"ARC1_PLUGINS": "<absolute path>/arc1-extension/dist/bopf-enh.mjs",
"SAP_ALLOW_WRITES": "true",
"SAP_ALLOW_PLUGIN_RAW_WRITES": "true",
"SAP_ALLOWED_PACKAGES": "$TMP,ZTM_EXT"

Copied from abat-TAO/arc-1-bopf-enh — README, Quick start, read . Not run by the atlas.

Where arc-1-bopf-enh runsBy its type: an MCP server is called by an MCP clientcallsdocumentedrequiresdocumentedrequiresdocumentedmay needif ARC-1 and its extension aredeployed as a Docker imagerather than run locally or on Cl…Your MCP client, actorYour MCP clientDocker, SoftwareDockerSoftwarearc-1-bopf-enh, modulearc-1-bopf-enharc-1, modulearc-1abapGit, moduleabapGit
SAPnot SAP's, or the project's ownstated in the documentdocumented onlyunder a condition

README

quoted from abat-TAO/arc-1-bopf-enh under MIT, read
abat-TAO/arc-1-bopf-enh/README.mdOn GitHub

arc-1-bopf-enh

Classic BOPF enhancements, the customer extensions of SAP standard business objects such as the SAP TM freight order /SCMTMS/TOR, are maintained in the BOPF designer (transaction BOBX). ADT has no API for them, so tools that work through ADT cannot reach them either.

arc-1-bopf-enh closes that gap for ARC-1, the MCP server for SAP: an ABAP service on SAP's BOPF configuration API and an ARC-1 extension with four tools. AI agents connected to ARC-1 can then read, create, change, check and delete enhancement objects and their nodes, actions, determinations, validations, queries, associations and alternative keys.

Status: 0.1.0. Verified live on SAP_BASIS 816 (S/4HANA 2025): the ABAP Platform trial with the EPM sales order, and an S/4HANA system with SAP TM and the freight order /SCMTMS/TOR, both on-premise. Private cloud and older releases such as S/4HANA 2023 should work as well but are not tested yet. Built against ARC-1 1.5.0, verified with ARC-1 1.4.0 and 1.5.0. ARC-1 still marks its plugin API (apiVersion 1) as experimental, so a later ARC-1 release may need an update of this extension.

Tools

ToolARC-1 policyPurpose
Custom_BopfEnhReadreadExtensible business objects, their enhancements, one enhancement with its entities, and the names SAP proposes before a create
Custom_BopfEnhWritewrite, createCreate and change enhancements and their entities; every change runs as a dry run first
Custom_BopfEnhDeletewrite, deleteDelete own entities or a whole enhancement: preview with token, then deletion
Custom_BopfEnhMaintainwrite, updateBOPF consistency check; refresh after appends to standard nodes

docs/tools.md describes parameters, results, errors and the typical flows.

Quick start

This path runs ARC-1 locally, started by your MCP client. For Docker and SAP BTP, see Deployment.

You need an SAP system with classic BOPF, tested with S/4HANA 2025 (SAP_BASIS 816) on-premise (private cloud and older releases should work but are not tested yet); abapGit in that system; and an SAP user with developer authorization (S_DEVELOP) for the packages of the enhancements. Building the extension yourself also needs Node.js 22.19 or later on Linux, macOS or WSL (the build scripts use POSIX shell commands).

  1. Set up ARC-1 first. Follow ARC-1's quickstart and check that your agent can read an ABAP object through it. The extension only adds tools to a working ARC-1.
  2. Import the ABAP objects. In abapGit, create an online repository with https://github.com/abat-TAO/arc-1-bopf-enh in a package of your choice, for example the local package $ZBE_BOPF_ENH, and pull. Without access to GitHub from the SAP system, import arc-1-bopf-enh-abap-<version>.zip from the latest release as an offline repository instead. abapGit creates and activates the ICF node /sap/bc/zbe_bopf_enh/.
  3. Get the extension. Download bopf-enh.mjs from the latest release, with THIRD-PARTY-NOTICES.md next to it. Or build it yourself; the result is arc1-extension/dist/bopf-enh.mjs:
    git clone https://github.com/abat-TAO/arc-1-bopf-enh.git
    cd arc-1-bopf-enh/arc1-extension && npm ci --ignore-scripts && npm run build
  4. Add it to ARC-1. Extend the env block of the ARC-1 server in your MCP client configuration and restart the client:
    "ARC1_PLUGINS": "<absolute path>/bopf-enh.mjs",
    "SAP_ALLOW_WRITES": "true",
    "SAP_ALLOW_PLUGIN_RAW_WRITES": "true",
    "SAP_ALLOWED_PACKAGES": "$TMP,ZTM_EXT"
  5. Try it. Ask your agent "Which enhancements does /BOBF/EPM_SALES_ORDER have?". If you built the extension yourself, you can also call the tool from arc1-extension with ARC-1's command line client and the same SAP_* settings in your shell:
    ARC1_PLUGINS=$PWD/dist/bopf-enh.mjs npx arc1-cli call Custom_BopfEnhRead --json '{"what":"businessObjects"}'

Other object names. All objects carry the code BE (ZCL_BE_*, ZBE_*, $ZBE_BOPF_ENH, ICF node zbe_bopf_enh). If these names are taken in your system, the release files do not fit: clone the repository and rename it from its root before steps 2 and 3:

node tools/rename.mjs --code XY --dry-run   # preview
node tools/rename.mjs --code XY             # ZCL_BE_ → ZCL_XY_, ZBE_ → ZXY_; --letter Y also changes Z → Y

The script renames the abapGit files and their contents, the extension with its service path, the tests and the documentation, recomputes the file name of the ICF node and checks SAP's name length limits. --map renames.json renames single objects. In step 2, import the renamed objects: push your copy to your own Git repository and use its URL, or zip it (with .abapgit.xml and src/) and import it as an offline repository. In step 3, build the extension from your copy.

Deployment

ARC-1 loads the extension as a file at startup, wherever ARC-1 runs:

ARC-1 runsSupported
Locally (npx arc-1)Yes, verified
DockerYes, with an image based on ARC-1's image; not verified yet
SAP BTP Cloud Foundry, single targetYes, for on-premise systems through the Cloud Connector; not verified yet
SAP BTP Cloud Foundry, multi-target routesNo: ARC-1 loads no extensions there
Any, with SAP BTP ABAP Environment or S/4HANA Public CloudNo: classic BOPF enhancements do not exist there

docs/deployment.md has the settings and steps for each setup.

Design

  • Own ICF service. ARC-1 extensions call SAP over HTTP, and ARC-1 refuses extension writes to /sap/bc/adt/. The ABAP side is therefore its own ICF node, /sap/bc/zbe_bopf_enh/: reads are GET, changes are one POST.
  • SAP's API, not table writes. The service works through /BOBF/CL_CONF_MODEL_API, the API behind the BOPF designer, and reads the BOPF meta model directly only where that API has gaps, such as alternative keys and the consistency check.
  • Thin extension. The TypeScript side holds the parameter schemas, runs the dry run before every change and applies the package and transport settings of the ARC-1 server.
  • Source code stays with ARC-1. Implementation classes are generated as stubs. Implementing them, and creating DDIC structures and appends, is done with ARC-1's own tools (SAPWrite, SAPActivate).

Guardrails

Three layers check every change:

  1. ARC-1 allows reads (GET) always. Writes need SAP_ALLOW_WRITES, SAP_ALLOW_PLUGIN_RAW_WRITES and a caller with the write scope.
  2. The extension runs each change as a dry run in SAP first and refuses it unless its package is in SAP_ALLOWED_PACKAGES ($TMP when empty) and its transport in SAP_ALLOWED_TRANSPORTS (any when empty). ARC-1 itself applies these two settings only to its built-in tools. The extension accepts exact names, * and a trailing * such as Z*; unlike ARC-1, an entry ROOT/** allows only the package ROOT, so list its subpackages explicitly.
  3. The ABAP service changes only enhancement objects in the customer namespace (Z*, Y* or a namespace the system is the producer of) and only their own entities, never the standard business object. It checks S_DEVELOP, extensibility, package, transport and language, and accepts only new, valid names, including the names of objects BOPF generates. Deleting needs a token from a preview and stops when the enhancement changed in between; database tables with data are not deleted.

Example

The user asks: "Add a subnode NOTES under ROOT of the enhancement ZENH_TOR." The agent then makes the following tool calls, shown here with their arguments; nobody types them by hand. New entity names start with the prefix of the enhancement, here ZENH, so the node becomes ZENH_NOTES:

// 1. Which names will BOPF generate? (Custom_BopfEnhRead)
{ "what": "names", "operation": "createNode", "enhancement": "ZENH_TOR", "node": "ROOT", "name": "ZENH_NOTES" }
// → dataStructure to create first, combinedStructure, combinedTableType, databaseTable

// 2. Create the data structure with SAPWrite and SAPActivate, then check the node (Custom_BopfEnhWrite)
{ "operation": "createNode", "enhancement": "ZENH_TOR", "node": "ROOT", "name": "ZENH_NOTES",
  "dataStructure": "ZS_NOTES_D", "dryRun": true }

// 3. The same call without dryRun creates the node; then check the enhancement (Custom_BopfEnhMaintain)
{ "operation": "check", "enhancement": "ZENH_TOR" }
// → findings of the enhancement, and baseFindings that belong to the standard business object

Known limitations

  • Classic BOPF only. Business objects of the ABAP Programming Model for SAP Fiori (BOPF generated from CDS views) are not handled.
  • New subnodes cannot be made extensible themselves, because the extension does not create extension includes.
  • Entities cannot be renamed. Associations, alternative keys and determination patterns change by delete and create.
  • scope=all returns every entity of the standard business object, which is very large for objects such as /SCMTMS/TOR; combine it with node.
  • The consistency check assigns findings to the standard object by the element SAP reports them for. Findings without such an element count as findings of the enhancement.
  • Tested only with S/4HANA 2025 (SAP_BASIS 816) on-premise. Private cloud and older releases such as S/4HANA 2023 should work as well but are not tested yet.
  • ARC-1 stops every HTTP request to SAP after 120 seconds. A write makes two requests: the dry run and the change.
  • Not available on SAP BTP ABAP Environment and S/4HANA Public Cloud, on ARC-1's multi-target routes and in ARC-1's hyperfocused tool mode; see docs/deployment.md.

Development

docs/development.md covers the code layout, the HTTP contract, abaplint, the ABAP Unit tests with their test enhancement on the EPM sales order, and the build and tests of the extension (npm test).

License

MIT. ARC-1 is a separate project, also under the MIT license.

MIT, read

History

Latest

v0.1.0

Notes

First release of arc-1-bopf-enh: an extension of ARC-1, the MCP server for SAP, for classic BOPF enhancement objects. AI agents connected to ARC-1 can read, create, change, check and delete enhancements of SAP standard business objects, with their nodes, actions, determinations, validations, queries, associations and alternative keys, without the BOPF designer (BOBX).

Tested with S/4HANA 2025 (SAP_BASIS 816) on-premise and ARC-1 1.5.0. Private cloud and older releases such as S/4HANA 2023 should work as well but are not tested yet.

Agent access to your code
  1. @abap2ui5/mcp-serverMCP server for the abap2UI5 check, deploy and run loopfrom ABAP
  2. HammerNative macOS code editor for ABAP and CDSfrom ABAP
  3. arc-1-lspEdition of ARC-1 that runs ADT calls through adt-lsfrom ABAP
  4. arc-1MCP server over the ADT REST API for ABAP objectsfrom ABAP
  5. arc1-abap-bridgeVS Code bridge between arc-1 and ADT for VS Codefrom ABAP
  6. arc1-adt-abap-mcp-extEclipse add-on enabling the ADT MCP server with read-only toolsfrom ABAP
  7. capforgeMCP server scaffolding CAP and CDS checked by cds compilefrom CAP
  8. ABAP Accelerator MCP ServerAWS's ABAP MCP server for Amazon Q Developer and Kirofrom ABAP
  9. Modernization Agents for SAP on AWSAWS agents for ABAP, PI/PO and BW modernisation workfrom ABAP
  10. @mcp-abap-adt/coreABAP ADT MCP server published as an npm scope and pluginfrom ABAP
  11. @cap-js/mcp-serverMCP server for CAP development: model and docs searchfrom CAP
  12. chandrashekhar-mahajan/abap-mcp-serverABAP MCP server with ADT tools and five authentication strategiesfrom ABAP
  13. dassian-adtFork of mcp-abap-abap-adt-api with 25 tools and session recoveryfrom ABAP
  14. erpl-adtC++ binary speaking the ADT REST API as a CLI and MCP serverfrom ABAP
  15. bw-modeling-mcpMCP server for BW/4HANA modelling objectsfrom BTP/BAIP
  16. EPOD ADT MCP ServerMCP server for ABAP on the ADT session, in Eclipse or standalonefrom ABAP
  17. ZARC1_EXTENSION_FORMSarc-1 extension for SAPscript and Smart Forms objectsfrom ABAP
  18. 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
  19. fr0ster/mcp-abap-adtABAP MCP server with full CRUD on on-premise and ABAP Cloudfrom ABAP
  20. abapsmithABAP MCP server over ADT with a local journal that can undo writesfrom ABAP
  21. sap-ai-dev-toolkitMCP proxy pinning an agent's ABAP tools to one SAP systemfrom ABAP
  22. aibap.mcpGo MCP server that writes, activates and runs ABAP classes via ADTfrom ABAP
  23. BellaEclipse plugin bringing Claude into ABAP Development Toolsfrom ABAP
  24. Maherd18/sap-mcp-serverPolicy-checked MCP server for ABAP development over ADTfrom ABAP
  25. sapdumpmcpMCP server reading ABAP short dumps over ADTfrom ABAP
  26. ABAP remote filesystemVS Code extension editing ABAP systems over ADT as a filesystemfrom ABAP
  27. mcp-abap-abap-adt-apiWrite-oriented MCP server over abap-adt-apifrom ABAP
  28. mcp-abap-adtRead-oriented MCP server fetching ABAP programs, classes, tablesfrom ABAP
  29. SAP MCP Connection ManagerWindows desktop manager handing SAP connections to assistants over MCPfrom ABAP
  30. ABAPilotMCP connector for ECC and on-premise S/4HANA with a licensed SAP sidefrom ABAP
  31. vibing-steampunkADT-to-MCP bridge in Go reaching past what ADT exposesfrom ABAP
  32. ADT MCP ServerLocal HTTP MCP server started from ABAP Development Tools for VS Codefrom ABAP
  33. ABAP Development Tools for VS CodeSAP's ABAP tools in VS Code for editing, debugging, ATC and transportsfrom ABAP
  34. SAP Joule for Developers, ABAP AI capabilitiesSAP's AI for ABAP development in ADT for Eclipse and VS Codefrom ABAP
  35. @sap/mdk-mcp-serverMCP server with five tools for Mobile Development Kit workfrom BTP/BAIP
  36. @sap-ux/fiori-mcp-serverMCP server for creating and editing Fiori applicationsfrom UI5
  37. ABAPDocMCPMCP server turning a transport request into a WRICEF specificationfrom ABAP
  38. claude-sap-kitClaude Code plugin adding Custom_* tools to arc-1from ABAP
  39. Skybuffer AI MCP serverABAP add-on serving business data and transactions as MCP toolsfrom ABAP
  40. @ui5/mcp-serverMCP server for UI5 development with ten toolsfrom UI5
  41. abap-adt-cliCLI that pulls and pushes ABAP packages as local files over ADTfrom ABAP
  42. workskong/mcp-abap-adtLight MCP adapter for ABAP over ADT, documented in Koreanfrom ABAP
  43. KlystronMCP server in ABAP inside the application server, with agent skillsfrom ABAP
  44. pyrfc-mcpMCP server calling RFC-enabled function modules behind an allowlistfrom ABAP
  45. ABAP-AI-CODE-TOOLSabapGit package adding create, modify and delete tools to ABAP AI Codefrom 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/abat-TAO/arc-1-bopf-enhtree, 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
Flavors1
Standard ABAP
“Verified live on SAP_BASIS 816 (S/4HANA 2025)” — abat-TAO/arc-1-bopf-enh — README, Statuschecked
History in the atlas2
  1. Entered by intake from the repository README after the admin had routed the URL to a refresh of arc-1, which reported it as a candidate of its own. Written from the README and the repository description.
  2. First seen.
For your agent
Ref
artifact:abat-tao-arc-1-bopf-enh
JSON
/artifacts/abat-tao-arc-1-bopf-enh.json
MCP
Connecting an agent