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 →

arc1-abap-bridge

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

Copilot already edits ABAP in VS Code, because sapse.adt-vscode mounts a writable abap: filesystem and an object is a workspace file. Two gaps are what this fills: SAP's extension registers no file search provider, so a name a model mentions cannot be turned into an open editor, and source the system will not accept is refused only at save time. abapOpen resolves a name and returns a clickable vscode:// link, abapValidate asks SAP about the current buffer and separates the findings the edit introduced from the ones already there, abapChanges diffs the last activated version against the inactive draft with the right side still editable, and one command writes the division-of-labour block into .github/copilot-instructions.md. Resolution goes through open editors, persisted caches and the object's package, fetched from ARC-1's SAPSearch(tadir_lookup) in one SAP call with no model turn, before falling back to a bounded walk with a fan-out guard, because findFiles does not work on abap: and the tree-shaped URI cannot be built from a name. It is plain JavaScript with no runtime dependencies, packaged into a .vsix from the repository rather than installed from a marketplace.

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 Development Tools for VS CodeABAP Development Tools for VS Codeartifactthe abap: filesystem the extension edits in and the ADT session it is logged on with; every command works on objects that extension exposes
Optional
arc-1arc-1artifactthe buffer validation and the package lookup, both of which are calls to arc-1 over MCP; the rest of the commands work without it

Who is behind it

ARC MCPARC MCPOrganisationMaintains this
In the atlas: maintains 9
@arc-mcp
maintainerMarian ZeisPersonContributes to this
In the atlas: maintains 35, contributes to 86, wrote 25
@marianfoo
1 contributor

Before choosing this

Conditions

PracticalFunctional boundary

The diff holds only while the object is inactive, since after activation the previous version is gone and a watched journal directory is what the maintainer points to instead. It adds no write path of its own: the IDE writes through SAP's extension, and the README states arc-1 can stay on SAP_ALLOW_WRITES=false. DDIC metadata files are skipped, because SAP's own stub for them says they are not supported in ABAP development tools for VS Code.

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
does not say

Connections3

README

quoted from arc-mcp/arc1-abap-bridge under MIT, read
arc-mcp/arc1-abap-bridge/README.mdOn GitHub

ARC-1 ABAP Bridge

Glue between ARC-1 (MCP server for SAP ADT) and SAP's official ABAP Development Tools for VS Code (SAPSE.adt-vscode), so GitHub Copilot can open, link to, diff and — most usefully — validate ABAP objects that live in SAP rather than on disk.

Why it exists

Copilot can edit ABAP natively: sapse.adt-vscode exposes a writable abap: filesystem, so an ABAP object is a workspace file, and Copilot's own edit tools produce real hunks with Keep/Undo. Two gaps remain, and this extension fills them.

  1. SAP's extension has no public API. No way to open an object by name, no URI handler. So a model that mentions ZCL_FOO cannot get you to it.
  2. SAP rejects source that looks like valid ABAP. A comment in a position the class serializer cannot store, for example — and nothing in the IDE knows until the save fails. ARC-1 can answer that question in under a second without writing anything.

Which makes the division of labour: Copilot writes. ARC-1 says whether SAP will accept it.

What it adds

abapOpenResolve an object name → open it in the real SAP editor. Returns a clickable vscode:// link.
abapValidateAsk SAP whether the current buffer would be accepted, before saving. Separates findings your edit introduced from pre-existing ones.
abapChangesSide-by-side diff: last activated version ↔ the inactive draft. Right side stays editable.
vscode:// linksDeep links from chat resolve into the editor.
Copilot instructionsWrites the division-of-labour block into .github/copilot-instructions.md.
Journal watcherOff by default. Set journalDir and every ARC-1 write record pops a diff.

Requirements

  • VS Code 1.105+
  • SAPSE.adt-vscode, logged on (ABAP: Log On to Destination...)
  • At least one ABAP folder in the workspace (ABAP: Add Package as Folder to Workspace... — a whole destination works too, see How lookup works)
  • ARC-1 as an MCP server — required for abapValidate and for fast package lookup

Install

No build step and no runtime dependencies — plain JavaScript. (devDependencies exist only for npm run typecheck.)

git clone https://github.com/arc-mcp/arc1-abap-bridge.git && cd arc1-abap-bridge

Package it into a .vsix:

npx --yes @vscode/vsce package --allow-missing-repository

⚠️ Check what code points at. With Cursor installed it very likely owns /usr/local/bin/code, and code --install-extension will silently install into Cursor instead of VS Code:

ls -l "$(which code)"

Use the full path when in doubt:

"/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code" --install-extension ./arc1-abap-bridge-0.9.0.vsix --force

Restart VS Code (a window reload is not enough for a newly installed extension), then ⇧⌘P → ABAP Bridge: Open ABAP Object by Name....

Connect ARC-1

abapValidate and fast package lookup call ARC-1 over MCP. Add it to VS Code's mcp.json (⇧⌘P → MCP: Open User Configuration):

{
  "servers": {
    "arc-1": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "arc-1@latest"],
      "env": {
        "SAP_URL": "https://your-sap-host",
        "SAP_USER": "YOURUSER",
        "SAP_PASSWORD": "…",
        "SAP_CLIENT": "100",
        "SAP_ALLOW_WRITES": "false"
      }
    }
  }
}

SAP_ALLOW_WRITES can stay false. The IDE does the writing through SAP's own extension; ARC-1 only reads and runs the syntax check, both of which are read-scoped. Nothing here needs write access.

Optional: set ARC1_IDE_LINKS to vscode and ARC-1 appends a clickable vscode:// link to single-object results, which this extension resolves and opens. That needs ARC-1 ≥ the version where ARC1_IDE_LINKS landed; without it everything else still works.

Commands

CommandWhat
Open ABAP Object by Name...resolve a name and open it
Show Inactive Changes (Diff)diff activated ↔ inactive
Validate Buffer Against SAPask SAP whether the open buffer would be accepted
Write Copilot Instructionsappend the instruction block to .github/copilot-instructions.md
Run Integration Self-Testmeasure the whole chain and write a report file
Diagnose (write report file)dump workspace folders, root listings, last search
Clear Object Indexdrop the cached name→URI, object→package and package→folder maps

Settings

SettingDefaultWhat
validateBeforeSavetrueWarn on save when SAP would reject the buffer. A safety net — the real mechanism is the model calling abapValidate.
usePackageLookupTooltrueAsk ARC-1 for an object's package instead of searching the tree. One SAP call, no model turn.
journalDir""Directory ARC-1 drops write-journal records into. Empty = off.
searchBudget600Max directories listed per lookup.
searchDepth8Max folder depth per lookup.
searchTimeoutMs45000Give up rather than hang a chat request.
searchConcurrency6Parallel listings. Too many can knock the ABAP language server offline.
searchFanoutLimit60Never descend blindly into a folder wider than this.

How lookup works, and why

sapse.adt-vscode enables no proposed APIs, so it registers no FileSearchProvider — findFiles does not work on abap: — and its own name→URI resolver lives in the Java language server where no other extension can reach it. The URI is tree-shaped and backend-labelled:

abap:/repotree-v1/A4H2023/System%20Library/ZARC1_DEMO/Source%20Code%20Library/Classes/ZCL_X/zcl_x.clas.abap

so it cannot be synthesised from a name either. Worse, a workspace rooted at a whole destination puts every package in the system under System Library — a blind walk measured 2181 listings by depth 4 and needed roughly ten thousand.

So resolution goes: open editors → persisted caches (object→URI, object→package, package→folder) → the package, supplied by the caller or fetched from ARC-1's SAPSearch(tadir_lookup) via vscode.lm.invokeTool (one SAP call, no model turn), which lets the search jump straight to that subtree (~15 listings) → a bounded walk of everything else with a fan-out guard: a folder with more subfolders than searchFanoutLimit is never descended into blindly.

Nothing about the tree labels is hardcoded — only the shape of the fan-out — so a non-English logon and new object types keep working.

Which objects it handles

Mirrors what SAP's extension itself treats as editable source: files ending in .abap, .acds, .ddic — the three languages sapse.adt-vscode registers. The object type is derived from the tag in the file name (zcl_x.clas.abap → CLAS, ztable.tabl.ddic → TABL, zc_flight.ddls.acds → DDLS), so new types work without a code change.

DDIC metadata files (.dtelde.jsonc, .domadd.jsonc, .clas.json, .properties) are deliberately skipped — SAP's own stub for them says "not supported in ABAP development tools for VS Code."

Verified live (a4h, S/4HANA 2023, SAP_BASIS 758; VS Code 1.131)

  • Copilot edits abap: files natively with Keep/Undo, and the change round-trips into SAP.
  • The object must be in a chat edit session — invoked outside one, Copilot mangles the URI to file:///abap%3A/….
  • abapValidate catches what no local linter can: SAP refused a comment placement twice, each caught in ~800 ms with nothing written. Offline abaplint cannot substitute — it fails to resolve DDIC types and crashes on exactly the classes this matters for.
  • The activated ↔ inactive diff, left = activated, right = the editable draft.
  • vscode:// links from a Copilot answer are clickable and route back into the extension.

Known rough edges

  • The diff only works while the object is still inactive. After activation the previous version is gone — that is what journalDir is for.
  • A dead ADT session surfaces as NoPermissions … Method "createDirectory" not yet implemented, which says nothing about being logged out. The bridge detects it and reports the real cause.
  • ⌘S is a no-op while a Copilot hunk is pending — Keep is the commit-and-save.

Test

npm test && npm run typecheck

lib.test.js covers the pure logic (name matching, type derivation, deep links, journal validation, change summary). activate.test.js runs the real activate() against a stubbed vscode and asserts every command and language-model tool declared in package.json is actually registered — the drift that would otherwise show up as a broken palette entry. npm run typecheck checks against @types/vscode pinned to the engines floor, so no newer API sneaks in.

Everything else needs a live SAP logon: use ABAP Bridge: Run Integration Self-Test, which measures the whole chain (writability, invokable edit tools, resolution, read-through, a third-party WorkspaceEdit, and optionally copilot_applyPatch) and writes a report to ~/arc1-abap-bridge-selftest.json.

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-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
GitHub APIdiscovered here, arc-mcpchecked
github.com/arc-mcp/arc1-abap-bridgetree, 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 viaGitHub API · arc-mcp
first seen in the atlas
ecosystem and domainabap, developer-experience
Contributors1

From the repository’s contributor list, .

History in the atlas1
  1. First seen.
For your agent
Ref
artifact:arc-mcp-arc1-abap-bridge
JSON
/artifacts/arc-mcp-arc1-abap-bridge.json
MCP
Connecting an agent