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

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

A coding agent working on ABAP has no files to read: the source lives in a system reachable only through ADT. ARC-1 puts twelve tools in front of that API, covering source and metadata, where-used, syntax check and activation, ATC and ABAP Unit, CTS transports, and abapGit or gCTS. It runs as the caller's own SAP user, so system authorisation still applies, or as a shared technical user. It is read-only by default: data preview, free SQL, git writes and writes outside $TMP each need an explicit switch. It ships as the npm package arc-1 and a container image, runs standalone, in Docker or on BTP Cloud Foundry, and installs as one agent plugin together with ARC-1 Skills.

Facts

Latestv1.9.0ReleasedLast 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.
Runs
Cloud Foundrylocal
Requires
abaplintabaplintartifactparses and lints ABAP source locally, through @abaplint/core
Optional
abapGitabapGitartifactbackend for Git-based ABAP workflows the SAPGit tool performs across gCTS and abapGitDockerDockeroutside the atlasrunning ARC-1 as the published container image or in local Docker-based developmentSAP Authorization and Trust Management serviceSAP Authorization and Trust Management serviceartifactSAP BTP native authentication with an automatic token proxy for MCP clientsOAuth 2.0 on SAP BTPOAuth 2.0 on SAP BTPartifactlocal browser-based login for BTP ABAP Environment service-key developmentSAP Connectivity serviceSAP Connectivity serviceartifactreaching on-premise SAP systems through the Cloud Connector proxySAP Audit Log serviceSAP Audit Log serviceartifactsending structured audit events to the BTP Audit Log ServiceSQLiteSQLiteoutside the atlascaching SAP object reads when running in http-streamable modeSAP BTP, Cloud Foundry RuntimeSAP BTP, Cloud Foundry Runtimeartifactrunning ARC-1 as a Cloud Foundry app on SAP BTP with platform integration

Who is behind it

ARC MCPARC MCPOrganisationMaintains this
In the atlas: maintains 9
@arc-mcp
Marian ZeisMarian ZeisPersonMaintains this
In the atlas: maintains 35, contributes to 86, wrote 25
@marianfoo
maintainersabat-TAOPersonContributes to this
In the atlas: maintains 1, contributes to 2
@abat-TAO
Clément RingotPersonContributes to this
In the atlas: maintains 2, contributes to 3
@ClementRingot
FinkeFloPersonContributes to this
In the atlas: contributes to 2
@FinkeFlo
francocapraPersonContributes to this
In the atlas: contributes to 1
@francocapra
Geert-Jan KlapsPersonContributes to this
In the atlas: maintains 4, contributes to 11, wrote 4
@geert-janklaps
Jaime Rodriguez CapotePersonContributes to this
In the atlas: maintains 1, contributes to 9
@jrodriguez-rc
Wouter LemairePersonContributes to this
In the atlas: maintains 25, contributes to 39, wrote 12
@lemaiwo
Philipp DölkerPersonContributes to this
In the atlas: maintains 1, contributes to 2
@MagPasulke
Marcus SchölzelPersonContributes to this
In the atlas: contributes to 1
@MarcusSchoelzel
okuravaPersonContributes to this
In the atlas: contributes to 1
@okurava
13 contributors

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
MCP server
Origin
Independently maintained
Runtime
Node.js
Runs on
Cloud Foundrylocal

As an MCP server

Runs as
central serverlocal process
Transport
stdioHTTP
Authentication
API keyOAuth / OIDCX.509principal propagationBTP destinationservice keybrowser SSO
Tools
12
Read-only
nostates it is not
Guardrails
13 quoted from README show all
  • Safe by default — read-only, no free SQL, no table preview, no transport writes, no Git writes.

  • Action deny list — block specific tool actions with SAP_DENY_ACTIONS

  • Package restrictions — limit AI write operations (create, update, delete) to specific packages with wildcards

  • Writes restricted to $TMP when enabled — only local/throwaway objects; writing to transportable packages requires explicit --allowed-packages

  • Data access control (off by default) — SAPRead(type=TABLE_CONTENTS) and SAPQuery are gated behind explicit env vars (SAP_ALLOW_DATA_PREVIEW=true, SAP_ALLOW_FREE_SQL=true)

  • Experimental data-source emergency brake — approved data/SQL deployments can set SAP_BLOCKED_DATA_SOURCES=USR02,PA0002.

  • Transport safety — transport reads are available for review, while transport mutations require both --allow-writes and --allow-transport-writes

  • Git workflow safety — Git operations are disabled by default. Enable explicitly with --allow-git-writes / SAP_ALLOW_GIT_WRITES=true

  • API-key profiles — multi-key HTTP deployments can assign viewer, viewer-data, viewer-sql, developer, developer-data, developer-sql, or admin per key

  • HTTP security headers (helmet) on by default — HSTS, CSP, X-Frame-Options, CORP, X-Content-Type-Options.

  • Layered rate limiting

  • Audit logging — structured events to stderr, file, or BTP Audit Log Service

  • In shared-credential mode (technical user), runs a startup auth preflight once

For agent access to your code

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

Tasks this contributes to2Beta

Generate a RAP business object by prompting an agentA developer describes the travel application they want and an agent creates the RAP objects in the ABAP system, instead of printing source for the developer to paste into the editor.ABAP CloudCovers, under conditionsgeneral ADT surface
What it does

Creates, updates and deletes ABAP source and DDIC metadata with automatic lock and unlock, activates objects and manages CTS transports, under the caller's own SAP user. For RAP it scaffolds the behaviour pool, auto-creating lhc_* skeletons before signatures and stubs are injected, so an agent reaches this outcome by writing the behaviour definition, the projection and the service binding around that shell rather than by running a generator over the whole stack.

Conditions

A reachable ABAP system and credentials for it, since this is a proxy in front of ADT rather than a system.; Writes are off by default, so the package the objects go into has to be allowed first.

Remaining work

The objects are written rather than generated from a schema, so their shape, their naming and their consistency with the reference scenario are the developer's to review.

All options on the Agent access to your code page →
Let an agent change ABAP in an on-premise systemAn agent reads and changes ABAP in a system the customer runs themselves, on the classic development model, and the change is activated there.Standard ABAPCovers, under conditionsADT proxy with an identity story
What it does

Reaches an on-premise system through the Cloud Connector and forwards the caller's identity end to end with X.509 certificates, so the system sees a real SAP user and its authorisation checks still apply. On that connection it reads, writes and activates source and DDIC metadata and runs syntax check, ABAP Unit and ATC.

Conditions

A Cloud Connector between the server and the system, or an X.509 trust for per-user destinations.; Writes are off by default: the shipped posture is read-only, with no free SQL, no table preview, no transport writes and no git writes until each is turned on with an explicit flag.

Remaining work

Deciding which packages the agent may write to, and which of the off-by-default reads to turn on, before any of this happens.

All options on the Agent access to your code page →

Connections31

arc-1 connectionsarc-1FUNCTIONAL← alternative to1alternative to derivedarc-1-lsp→ provides1provides authored Exposes ADT to an MCP client as twelve tools under the caller's own SAP user, so an agent reads objects, runs ATC and ABAP Unit, activates and moves transports against a real system instead of inferring ABAP from training data. ARC-1 — README: https://github.com/arc-mcp/arc-1 ARC-1 — SAP ADT MCP Server, documentation: https://docs.arc-1-mcp.com/Agent access to your codeUSED BY← connected from1connected from derived If: an MCP server is added under Preferences → Bella → SAP-Tools & ARC-1 runs the model's tool requests through ARC-1 instead of Bella's own ADT tools, which the README states adds audit, rate limits and a package allowlist Through: inverted from its connects edge ktaubmann/Bella — README: https://raw.githubusercontent.com/ktaubmann/Bella/claude/eclipse-abap-plugin-piea3i/README.md ktaubmann/Bella — README, Architecture: who calls whom: https://raw.githubusercontent.com/ktaubmann/Bella/claude/eclipse-abap-plugin-piea3i/README.md ktaubmann/Bella — README, Architecture: who calls whom: https://raw.githubusercontent.com/ktaubmann/Bella/claude/eclipse-abap-plugin-piea3i/README.mdBellaif← needed by4needed by derived the MCP server that loads the extension as a file at startup; the four tools exist only inside it Through: inverted from its requires edge 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-bopf-enhneeded by derived the server whose `arc-1/public` extension API the sample consumes and which loads it with `ARC1_PLUGINS` Through: inverted from its requires edge arc-mcp/arc-1-extension-sample — README: https://raw.githubusercontent.com/arc-mcp/arc-1-extension-sample/main/README.mdarc-1-extension-sampleneeded by derived the MCP server the extension is loaded into and the session it calls the SAP system from; the five tools exist only inside it Through: inverted from its requires edge silvius1996/claude-sap-kit — README, Requirements: https://raw.githubusercontent.com/silvius1996/claude-sap-kit/main/README.md silvius1996/claude-sap-kit — README: https://raw.githubusercontent.com/silvius1996/claude-sap-kit/main/README.mdclaude-sap-kitneeded by derived the MCP server the extension is loaded into with `ARC1_PLUGINS`; the four tools exist only inside it Through: inverted from its requires edge F-Wer/ZARC1_EXTENSION_FORMS — README, Installation: https://raw.githubusercontent.com/F-Wer/ZARC1_EXTENSION_FORMS/main/README.md F-Wer/ZARC1_EXTENSION_FORMS — README: https://raw.githubusercontent.com/F-Wer/ZARC1_EXTENSION_FORMS/main/README.mdZARC1_EXTENSION_FORMS← optionally used by5optionally used by derived If: the backends are ARC-1 instances, which is the documented setup; the requirement the README states of a backend is XSUAA protection and Streamable HTTP, which another MCP server can meet the backends the hub fronts, one instance per SAP system, each doing its own principal propagation to SAP Through: inverted from its requires edge arc-mcp/mcp-hub — README: https://raw.githubusercontent.com/arc-mcp/mcp-hub/main/README.mdarc-mcp-hubifoptionally used by derived If: `abapValidate` is used, or the package is looked up through ARC-1 rather than supplied by the caller the buffer validation and the package lookup, both of which are calls to arc-1 over MCP; the rest of the commands work without it Through: inverted from its requires edge arc-mcp/arc1-abap-bridge — README: https://raw.githubusercontent.com/arc-mcp/arc1-abap-bridge/main/README.mdarc1-abap-bridgeifoptionally used by derived If: a read-capable MCP server is wanted for review, refactor and clean-core-check skills Reading existing object source and searching the repository for [the review, refactor and clean-core-check skills](artifact:matt1as-claude-abap-skills). Through: inverted from its requires edge claude-abap-skills README: https://github.com/matt1as/claude-abap-skillsclaude-abap-skillsifoptionally used by derived If: LISA is loaded as the ARC-1 extension rather than run as its own server only for the second distribution, `@lisa-mcp/arc1-extension`, which loads the three tools into a running [arc-1](artifact:arc-mcp-arc-1) instead of a server of its own Through: inverted from its requires edge ClementRingot/LISA — README: https://raw.githubusercontent.com/ClementRingot/LISA/main/README.mdLISAifoptionally used by derived If: the scenario involves a live system's release state or a custom API Checks the release state of a live system and the custom APIs in it, which no published catalogue can answer. Through: inverted from its requires edge SAP API Policy Evidence Skill — README, Prerequisite: the SAP MCP servers: https://github.com/marianfoo/sap-api-policy-skillSAP API Policy Evidence Skillif← used by1used by derived Every skill that touches ABAP; the prerequisite the README states as required for all of them. Through: inverted from its requires edge arc-mcp/arc-1 — skills/README.md: https://github.com/arc-mcp/arc-1/blob/main/skills/README.mdARC-1 SkillsNEEDS→ connects to4connects to stated reaches the ABAP system through its ADT REST API, on behalf of the MCP client arc-mcp/arc-1 — README: https://github.com/arc-mcp/arc-1ABAP platformInterface: ABAP Development Tools(ADT) HTTP resources · httpconnects to stated If: deployed as a Cloud Foundry app on SAP BTP reaches an ABAP environment on BTP, the user's identity exchanged for an ABAP bearer token arc-mcp/arc-1 — README: https://github.com/arc-mcp/arc-1 arc-mcp/arc-1 — README: https://github.com/arc-mcp/arc-1SAP BTP ABAP environmentifconnects to stated If: deployed as a Cloud Foundry app on SAP BTP has the Destination service forward the MCP user's identity to the SAP system it reaches through a managed destination arc-mcp/arc-1 — README: https://github.com/arc-mcp/arc-1 arc-mcp/arc-1 — README: https://github.com/arc-mcp/arc-1 arc-mcp/arc-1 — README: https://github.com/arc-mcp/arc-1SAP Destination serviceifconnects to stated Activating ABAP objects on S/4HANA systems, working around a batch-activation quirk specific to that platform. arc-1 README: https://github.com/arc-mcp/arc-1SAP S/4HANA→ needs1needs stated parses and lints ABAP source locally, through @abaplint/core arc-mcp/arc-1 — README: https://github.com/arc-mcp/arc-1abaplint→ optionally needs8optionally needs stated If: the SAPGit tool's backend auto-selects abapGit backend for Git-based ABAP workflows the SAPGit tool performs across gCTS and abapGit arc-1 README: https://github.com/arc-mcp/arc-1abapGitifoptionally needs stated If: ARC-1 is run via the Docker image or local Docker-based development running ARC-1 as the published container image or in local Docker-based development arc-1 README: https://github.com/arc-mcp/arc-1Dockerifoptionally needs stated If: OAuth 2.0 browser-based login is used for BTP ABAP Environment service-key development local browser-based login for BTP ABAP Environment service-key development arc-1 README: https://github.com/arc-mcp/arc-1OAuth 2.0 on SAP BTPifoptionally needs stated If: audit logging is configured to use the BTP Audit Log Service sending structured audit events to the BTP Audit Log Service arc-1 README: https://github.com/arc-mcp/arc-1SAP Audit Log serviceifoptionally needs stated If: XSUAA is selected as the authentication method SAP BTP native authentication with an automatic token proxy for MCP clients arc-1 README: https://github.com/arc-mcp/arc-1SAP Authorization and Trust Managementserviceifoptionally needs stated If: ARC-1 is deployed as a Cloud Foundry app on SAP BTP running ARC-1 as a Cloud Foundry app on SAP BTP with platform integration arc-1 README: https://github.com/arc-mcp/arc-1SAP BTP, Cloud Foundry Runtimeifoptionally needs declared If: ARC-1 is deployed on BTP Cloud Foundry to reach on-premise SAP systems reaching on-premise SAP systems through the Cloud Connector proxy arc-1: mta.yaml: https://raw.githubusercontent.com/arc-mcp/arc-1/main/mta.yamlSAP Connectivity serviceifoptionally needs stated If: ARC-1 runs in http-streamable mode caching SAP object reads when running in http-streamable mode arc-1 README: https://github.com/arc-mcp/arc-1SQLiteifLINEAGE← inspired2inspired derived Through: inverted from its lineage edgebtp-cf-mcpinspired derived Through: inverted from its lineage edgecalmcp→ inspired by3inspired by stated arc-1 — README: https://github.com/arc-mcp/arc-1abap-adt-apiinspired by stated arc-1 — README: https://github.com/arc-mcp/arc-1mcp-abap-adtinspired by stated arc-1 — README: https://github.com/arc-mcp/arc-1vibing-steampunk

Install

npm add arc-1

Derived from the package name. No recipe recorded; the README has the configuration.

Learn more9

Readings
  1. AI-assisted SAP development with MCPMarian Zeis, YouTube — SAP Developers playlists
  2. ARC-1 1.0: One Deployment, Multiple SAP SystemsMarian Zeis, blog.zeis.de — Marian Zeis
  3. ABAP Development Automation with ARC-1 and GitHub WorkflowsMarian Zeis, blog.zeis.de — Marian Zeis
6 more
  1. From SEGW and Legacy UI5 to RAP with ARC-1Marian Zeis, blog.zeis.de — Marian Zeis
  2. ARC-1 with Joule Studio: Bringing Real ABAP System Context into JouleMarian Zeis, blog.zeis.de — Marian Zeis
  3. ARC-1 with Copilot Studio: SAP System Context Beyond DevelopersMarian Zeis, blog.zeis.de — Marian Zeis
  4. ARC-1 on SAP BTP: Secure ABAP Agentic Development Beyond the LaptopMarian Zeis, blog.zeis.de — Marian Zeis
  5. Introducing ARC-1: A Secure ADT MCP Server for Enterprise SAP DevelopmentMarian Zeis, blog.zeis.de — Marian Zeis
  6. Patterns for using LLMs in ABAP developmentLars Hvam, Heliconia Labs
What changed
  1. v1.4.0

    ctx.run.programRun(name) lets an ARC-1 extension run an active classic ABAP report and return its list output.

5 earlier
  1. v1.1.0

    The SAPGit tool's commit action, advertised but never implemented, is removed. Committing and pushing goes through abapGit push, and gCTS mutations stay unavailable.

    Makes stale:

    Tool descriptions or prompts that call SAPGit with the commit action.

  2. v0.9.0

    SAPRead, SAPWrite and SAPActivate no longer accept type='STRU': DDIC structures are read and written as TABL. The slash type forms FUNC/FM, CLAS/LI, VIEW/V and TRAN/O fail validation, and FTG2 is renamed FEATURE_TOGGLE.

    Makes stale:

    Prompts or examples that pass STRU as an object type, or one of the removed slash forms.

  3. v0.7.0

    The negated safety flags are replaced by opt-ins: SAP_READ_ONLY, SAP_BLOCK_DATA, SAP_BLOCK_FREE_SQL, SAP_ENABLE_TRANSPORTS, SAP_ENABLE_GIT, ARC1_PROFILE, ARC1_API_KEY and their CLI flags are gone, and SAP_ALLOW_WRITES, SAP_ALLOW_DATA_PREVIEW, SAP_ALLOW_FREE_SQL, SAP_ALLOW_TRANSPORT_WRITES, SAP_ALLOW_GIT_WRITES and SAP_DENY_ACTIONS take their place, each restrictive by default. The server refuses to start while a removed variable is set.

    Makes stale:

    Any configuration, Docker command or Cloud Foundry manifest that sets SAP_READ_ONLY, --read-only, --profile or another of the removed variables and flags.

  4. v0.5.0

    The SAPQuery tool needs the data scope instead of read, and SAPTransport needs write instead of admin, under the authorization model of scopes, roles and safety settings this release introduced.

    Makes stale:

    A role or API-key setup that grants only read for table queries, or admin for transport work.

  5. v0.6.0

    Writes default to the $TMP package, the allowTransportableEdits setting is removed, and the package allowlist is enforced on every write.

    Makes stale:

    Setup instructions that switch on allowTransportableEdits to edit transportable objects.

Sign-in
OAuth / OIDC, service key, browser SSO
Your machineYour SAP BTP subaccountarc-1 — README, checked 2026-10-14: “npx arc-1@latest --url https://your-sap-host:44300 --user YOUR_USER”; arc-1 — README, checked 2026-10-14: “**OAuth 2.0** — local browser-based login for BTP ABAP Environment service-key development”; arc-1 — README, checked 2026-10-14: “Full local dev — all install methods, MCP client configs, SSO cookie extractor”connectsdocumentedHTTPoutbound, lands on ABAPDevelopment Tools (ADT) HTTP res…documentedoutboundif deployed as a Cloud Foundryapp on SAP BTPYour MCP client, actorYour MCP clientABAP platform, SAP solutionABAP platformSAP solutionarc-1, modulearc-1SAP BTP ABAP environment, service instanceSAP BTP ABAPenvironment
SAPnot SAP's, or the project's ownstated by the sourcedocumented onlyunder a condition

Documented, with no instance in the document

  • arc-1 requires Dockerartifact-arc-mcp-arc-1conditionalrunning ARC-1 as the published container image or in local Docker-based developmentarc-1 README Full local dev setup (Docker, cookie extractor, client configs)?
  • arc-1 requires SAP Authorization and Trust Management serviceartifact-arc-mcp-arc-1conditionalSAP BTP native authentication with an automatic token proxy for MCP clientsarc-1 README **XSUAA** — SAP BTP native auth with automatic token proxy for MCP clients
  • arc-1 requires OAuth 2.0 on SAP BTPartifact-arc-mcp-arc-1conditionallocal browser-based login for BTP ABAP Environment service-key developmentarc-1 README **OAuth 2.0** — local browser-based login for BTP ABAP Environment service-key development
  • arc-1 requires SAP Connectivity serviceartifact-arc-mcp-arc-1conditionalreaching on-premise SAP systems through the Cloud Connector proxyarc-1: mta.yaml Connectivity Service for Cloud Connector proxy to on-premise SAP
  • arc-1 requires SAP Audit Log serviceartifact-arc-mcp-arc-1conditionalsending structured audit events to the BTP Audit Log Servicearc-1 README **Audit logging** — structured events to stderr, file, or BTP Audit Log Service
  • arc-1 requires SQLiteartifact-arc-mcp-arc-1conditionalcaching SAP object reads when running in http-streamable modearc-1 README every SAP object read is cached in memory (stdio) or SQLite (http-streamable)
  • arc-1 requires SAP BTP, Cloud Foundry Runtimeartifact-arc-mcp-arc-1conditionalrunning ARC-1 as a Cloud Foundry app on SAP BTP with platform integrationarc-1 README Deploy ARC-1 as a Cloud Foundry app on SAP BTP with full platform integration

README

quoted from arc-mcp/arc-1 under MIT, read
arc-mcp/arc-1/README.mdOn GitHub

ARC-1 — SAP ADT MCP Server

ARC-1 (pronounced arc one [ɑːrk wʌn]) — Enterprise-ready MCP server for SAP ABAP systems. Secure by default, deployable to BTP or on-premise, and hardened with large unit/integration/E2E test coverage.

ARC-1 connects AI assistants (Claude, GitHub Copilot, Copilot Studio, and any MCP client) to SAP systems via the ADT REST API. It ships as an npm package and Docker image.

Test CodeQL Dependency Review

Full Documentation | Quickstart | Tool Reference | ARC-1 Updates | Blog Series

📬 Stay current with ARC-1 — get major releases, upgrade and security notes, practical guides, and occasional questions where your feedback can shape what comes next. Join ARC-1 Updates →

📖 New: AI ABAP Development blog series — long-form posts on AI for ABAP, ARC-1 design, and real-world BTP / Copilot Studio / Joule walkthroughs. Read the series →

Why ARC-1?

Built for organizations that need AI-assisted SAP development with guardrails. Inspired by the pioneering work of abap-adt-api, mcp-abap-adt, and vibing-steampunk — ARC-1 adds what's needed to run in production:

Security & Admin Controls
  • Safe by default — read-only, no free SQL, no table preview, no transport writes, no Git writes. Enable each capability with explicit SAP_ALLOW_* flags
  • Action deny list — block specific tool actions with SAP_DENY_ACTIONS (for example SAPWrite.delete), without exposing low-level operation codes to admins
  • Package restrictions — limit AI write operations (create, update, delete) to specific packages with wildcards (--allowed-packages "Z*,$TMP"). Read operations are not restricted by package — use SAP's native authorization for read-level access control
  • Data access control (off by default) — table previews, saved SAPscript texts and SLG1 messages require SAP_ALLOW_DATA_PREVIEW=true; freestyle SQL separately requires SAP_ALLOW_FREE_SQL=true. Review enabled uses against the SAP API Policy, your SAP agreement, and internal data-governance rules.
  • Experimental data-source emergency brake — approved data/SQL deployments can set SAP_BLOCKED_DATA_SOURCES=USR02,PA0002. ARC-1 then parses each SQL request and resolves active CDS plus replacement-object lineage before execution, denying direct or transitive exact-name matches and failing closed when lineage is unsupported or cannot be proven. The empty default adds no metadata calls. This denylist is defense in depth, not a production allowlist or replacement for SAP authorization/CDS DCL; see Authorization & Roles.
  • Transport safety — transport reads are available for review, while transport mutations require both --allow-writes and --allow-transport-writes. Update/delete operations auto-use the lock correction number when no explicit transport is provided
  • Git workflow safety — Git operations are disabled by default. Enable explicitly with --allow-git-writes / SAP_ALLOW_GIT_WRITES=true
  • API-key profiles — multi-key HTTP deployments can assign viewer, viewer-data, viewer-sql, developer, developer-data, developer-sql, or admin per key
  • Writes restricted to $TMP when enabled — only local/throwaway objects; writing to transportable packages requires explicit --allowed-packages
  • HTTP security headers (helmet) on by default — HSTS, CSP, X-Frame-Options, CORP, X-Content-Type-Options. COOP is deliberately not set so popup-based OAuth flows (Copilot Studio) keep working. No flag to disable.
  • Opt-in CORS for browser MCP clients — ARC1_ALLOWED_ORIGINS (comma-separated, exact match). Off by default; native MCP clients don't need it
  • Layered rate limiting — three layers out of the box: per-IP OAuth and shared MCP HTTP edge limits (Layer 1; MCP inherits the historical derived cap unless ARC1_MCP_HTTP_RATE_LIMIT overrides it), per-user MCP quota (Layer 2, off by default — multi-user deployments opt in via ARC1_RATE_LIMIT=60), and a server-wide SAP-bound semaphore (Layer 3, default 10, on). Honors Retry-After on 429/503 from SAP / BTP gateways. See the Rate Limiting Guide
  • Supply-chain security — Dependabot (npm + GitHub Actions + Docker, weekly + same-day security advisories), npm audit --audit-level=high PR gate, GitHub Dependency Review on every PR, CodeQL SAST, Trivy container scanning (scheduled multi-architecture HIGH/CRITICAL gate plus advisory release/dev scans), all third-party GitHub Actions pinned to commit SHA, SECURITY.md policy with severity-tiered SLAs. Image and npm package both ship with provenance attestations, and the release workflow publishes a best-effort CycloneDX SBOM for the production npm dependency graph. See the security guide §13
Authentication
  • API key — simple Bearer token for internal deployments
  • OIDC / JWT — Entra ID, Keycloak, or any OpenID Connect provider
  • OAuth 2.0 — local browser-based login for BTP ABAP Environment service-key development
  • XSUAA — SAP BTP native auth with automatic token proxy for MCP clients
  • Per-user SAP identity — BTP Destination Service forwards the MCP user to SAP: Cloud Connector principal propagation for on-premise SAP, or OAuth2UserTokenExchange for BTP ABAP Environment
BTP Cloud Foundry Deployment

Deploy ARC-1 as a Cloud Foundry app on SAP BTP with full platform integration:

  • Destination Service — connect to SAP systems via managed destinations
  • Experimental multi-target mode — the default-off BTP mode discovers destinations marked arc1.enabled=true and exposes pinned SID/client plus read-only aggregate endpoints; scoped pinned PP writes require separate destination/IAM opt-ins (setup, administration)
  • Optional target filtering — for shared multi-system gateways where teams need different target lists. Assign systems/clients through XSUAA roles; IAS changes are optional. This filters IAM-assigned targets, not automatically discovered SAP accounts.
  • Cloud Connector — reach on-premise systems through the connectivity proxy
  • Per-user destinations — user identity forwarded end-to-end via X.509 certificates for on-premise SAP, or exchanged for an ABAP bearer token for BTP ABAP Environment
  • XSUAA OAuth proxy — MCP clients authenticate via standard OAuth, ARC-1 handles the BTP token exchange
  • Audit logging — structured events to stderr, file, or BTP Audit Log Service
Token Efficiency
  • 12 intent-based tools instead of 200+ individual tools — keeps tool selection simple, with the schema payload guarded by CI budgets and a hyperfocused 1-tool mode for tight context windows
  • Method-level read/edit — read or update a single class method, not the whole source (up to 20x fewer tokens)
  • Focused source and dependency context — use targeted SAPRead for exact implementation behavior. For business purpose, reviews or test design, start with SAPContext(action="deps", type=..., name=...) for available Knowledge Transfer Documents (SKTD/KTD) and dependency contracts, then compare requirements with source. Without documented requirements, intent is unverified.
Built-in Object Caching
  • Server-validated source caching — every SAP object read is cached in memory (stdio) or SQLite (http-streamable). Repeated reads use If-None-Match/ETag conditional GET, so unchanged objects return from cache after SAP confirms 304 Not Modified.
  • Dependency parsing reuse — unchanged, authorized source can reuse parsed dependencies and contracts in memory. Aggregate dependency graphs are not cached; SAP authorization and source validation still apply.
  • KTD-aware context — Knowledge Transfer Documents use the source cache and are revalidated when composed into SAPContext(action="deps").
  • Live where-used — SAPContext(action="usages") and CDS impact analysis query SAP's current repository index with the caller's identity; no startup repository scan is required.
  • Active/inactive source views — SAPRead accepts version="active" | "inactive" | "auto" and warns when the active source has an unactivated draft.
  • Write invalidation — when SAPWrite or SAPActivate mutates an object, both active and inactive source cache entries are dropped; next read revalidates or fetches fresh source.

See docs/caching.md for full documentation.

Testing
  • 3,474 unit tests (104 unit test files, mocked HTTP)
  • 262-test default integration profile against live SAP systems, with explicit skip reasons when credentials or fixtures are missing
  • 141-test default E2E profile that executes real MCP tool calls against a running ARC-1 server and live SAP system
  • Manual slow SAP profiles keep broad where-used, RAP full-stack, and recursive CTS release coverage out of the PR path (test:integration:slow, test:e2e:slow, GitHub SAP Slow Tests workflow)
  • CRUD lifecycle and BTP smoke lanes included (test:integration:crud, test:integration:btp:smoke)
  • CI matrix on Node 22 and 24; live SAP integration + E2E run on internal PRs and manual dispatch, with SAP jobs gated off for docs/chore PRs and external forks
  • Reliability telemetry + coverage published as informational CI signals (non-blocking)
Tools Refined for Real-World Usage

The 12 tools are designed from real LLM interaction feedback:

ToolWhat it does
SAPReadRead exact ABAP source, method bodies, grep matches, table data, CDS views, access controls (DCLS), metadata extensions (DDLX), service bindings (SRVB), knowledge-transfer docs (SKTD or friendly alias KTD), message classes (MSAG), revision history (VERSIONS/VERSION_SOURCE), inactive object state, BOR objects, deployed UI5/Fiori apps (BSP, BSP_DEPLOY), and ABAP Platform 2025 server-driven objects (DESD, EVTB, EVTO, DTSC, CSNM, COTA). For "what does this object do?" use SAPContext first, then SAPRead for precise source. Enhancement implementations (ENHO) are readable on-prem and on BTP; authorization fields (AUTH) and feature toggles (FEATURE_TOGGLE) are on-prem only. Structured format for classes returns metadata + decomposed includes as JSON. Optional grep regex returns only matching source lines (+context, method-annotated for classes) for token-efficient search. (Deprecated aliases MESSAGES/FTG2 accepted for one minor.)
SAPSearchObject search + full-text source code search across the system
SAPWriteCreate/update/delete ABAP source and DDIC metadata with automatic lock/unlock (PROG, CLAS, INTF, FUNC, FUGR, INCL, DDLS, DCLS, DDLX, BDEF, SRVD, SRVB, SKTD/KTD, TABL, DOMA, DTEL, MSAG; availability adapts for BTP). Class updates can target local includes (definitions, implementations, macros, testclasses); class-section surgery (edit_class_definition, add_method, edit_method_signature, delete_method, change_method_visibility) lets an LLM edit a global class signature without re-sending /source/main; RAP behavior-pool scaffolding can auto-create lhc_* skeletons before injecting signatures/stubs. Batch creation supports terminal activation for interdependent multi-object workflows (e.g., RAP stack or domain+data element in one call)
SAPActivateActivate ABAP objects — single or batch (essential for RAP stacks), with guarded retry for the S/4HANA ED064 batch quirk. Publish/unpublish OData service bindings (SRVB)
SAPNavigateGo-to-definition, find references, code completion
SAPQueryRead saved SAPscript long texts or execute ABAP SQL; each path requires its own opt-in
SAPTransportCTS transport management (list/get/create/release/delete/reassign/release-recursive), transport layer/target lookup, package transport requirement checks, and reverse lookup history (action="history")
SAPGitGit-based ABAP workflows across gCTS and abapGit (list/clone/pull/push/commit/branch/unlink) with backend auto-selection and safety gating (--allow-git-writes)
SAPContextDependency APIs (action="deps"): optional KTD plus bounded source-derived contracts, not a complete relationship inventory. Also supports live where-used (action="usages"), CDS impact (action="impact"), and TABL includes/appends (action="structure")
SAPLintLocal ABAP lint (system/release-aware presets, auto-fix, pre-write validation) + ADT PrettyPrint (server-side formatting)
SAPDiagnoseSyntax check, ABAP Unit tests, ATC code quality, CDS test-case suggestions, active/inactive object-state comparison, generic ADT quickfix proposals/application deltas, gateway/system message diagnostics, short dumps, profiler traces, and the on-prem authorization trace (SUAUTHVALTRC, data-preview gated)
SAPManageFeature probing, cache statistics, package lifecycle/change-package operations, and FLP catalog/group/tile helpers

Tool definitions automatically adapt to the target system (BTP vs on-premise), removing unavailable types and adjusting descriptions so the LLM never attempts unsupported operations.

Feature Detection

ARC-1 probes the SAP system at startup and adapts its behavior:

  • Detects HANA, gCTS, abapGit, RAP/CDS, AMDP, UI5, and transport availability
  • Auto-detects BTP vs on-premise systems
  • Maps SAP_BASIS release to the correct ABAP language version
  • Each feature can be forced on/off or left on auto-detect
  • In shared-credential mode (technical user), runs a startup auth preflight once and blocks SAP tool calls with a clear error on 401/403 to avoid repeated failed logins and potential user lockout

ADT API Status and Strategy

For a custom MCP server such as ARC-1, SAP's Third-Party MCP Access reference architecture is the primary design and control baseline we recommend. For a shared service, start with BTP Cloud Foundry, XSUAA and strict principal propagation. SAP's API Policy FAQ Q56 allows custom MCP servers under conditions; Q32 confirms that Integration Suite is not mandatory.

SAP API Policy & Architecture Alignment explains that path, the controls ARC-1 already supports, and the remaining gaps. FAQ Q33 classifies ADT APIs as internal and limits them to endorsed development channels; ARC-1's direct TypeScript ADT client is not specifically identified as one. Clarify that channel and the intended AI-assisted development use with SAP before adoption, including dev/test. BTP hosting and security controls alone do not establish full policy adherence. Per-user SAP identity applies to PP; shared Basic modes retain a shared SAP identity.

Two ARC-1 capabilities can expose business data or execute ad-hoc SQL. Both are off by default and require explicit opt-in env vars, so the operator makes a deliberate decision before they are reachable:

CapabilityEnv varDefaultPolicy note
Table previews (SAPRead(type=TABLE_CONTENTS/TABLE_QUERY)), saved SAPscript texts and SLG1 messages (SAPQuery actions long_text / application_log)SAP_ALLOW_DATA_PREVIEW=truefalse (off)Reads application data; authenticated callers also need data scope.
Freestyle ABAP SQL (SAPQuery(action=sql))SAP_ALLOW_FREE_SQL=truefalse (off)Executes ad-hoc ABAP SQL; authenticated callers also need sql scope.
Exact source blocklist (experimental)SAP_BLOCKED_DATA_SOURCES=USR02,PA0002empty (off)Denies exact direct/transitive table or CDS dependencies; active mode is deliberately fail-closed and slower.

When either capability is enabled, successful data-preview bodies are limited cumulatively per tool call (2 MiB by default), and only two data-result calls per process remain admitted through parsing and serialization. SAPQuery.maxRows is separately clamped to 10,000, but wide rows can reach the byte limit much earlier. See Configuration before tuning ARC1_MAX_DATAPREVIEW_RESPONSE_BYTES or ARC1_MAX_CONCURRENT_DATA_RESULTS.

With both flags at their defaults, ARC-1's data/sql rows are unreachable. FAQ Q33 excludes application-table reads, business-data export and backend SQL from ADT's intended development-tooling scope. Keep these flags off unless the specific use has a documented allowance or SAP authorization under the applicable agreements; internal approval or a technical opt-in alone is insufficient. Use Published business APIs for business-data integration.

ARC-1 combines capability discovery with conservative defaults and centralized authorization. Discovery establishes technical availability, not API-policy permission. Follow the reference architecture and verify both the API-specific allowance and the deployed controls.

Versioning & Stability

From 1.0 onward ARC-1 follows semantic versioning: patch releases fix bugs, minor releases add backward-compatible capability, and breaking changes to the MCP tool surface, configuration, or auth contract bump the major version.

Experimental, default-off features are excluded from this guarantee until they are promoted — they are clearly labeled and their surface may still change in a minor release. Today this covers the multi-target BTP mode (ADR-0006 / ADR-0007) and the data-source blocklist.

What changed per release: the annotated Release Notes give each release its impact and upgrade action; CHANGELOG.md lists every merged PR.

Quick Start

Install as an Agent Plugin — one portable install for the MCP server and all bundled SAP skills in GitHub Copilot, VS Code, Cursor, Codex, and other compatible clients:

copilot plugin marketplace add arc-mcp/arc-1
copilot plugin install arc-1@arc-1

Agent Plugins 1.0 does not define secret prompts, so create the ARC-1 .env in the installed plugin's persistent data directory before connecting to SAP. See the Agent Plugin guide for client-specific installation, safe configuration, and verification.

Install in Claude — pick your surface (full guide: Install in Claude):

  • Claude Desktop — download the latest arc-1-*.mcpb from Releases and double-click it (or Settings → Extensions). Claude prompts for your SAP connection. (The .mcpb is attached to releases automatically; if the newest one doesn't have it yet, see Install in Claude.)

  • Claude Code — one install for the MCP server and all SAP skills:

    /plugin marketplace add arc-mcp/arc-1
    /plugin install arc-1@arc-1
    
  • Any MCP client / manual — run it directly:

    npx arc-1@latest --url https://your-sap-host:44300 --user YOUR_USER
  • Trying it out on your laptop? → Quickstart

  • Full local dev setup (Docker, cookie extractor, client configs)? → Local Development

  • Deploying for a team / BTP? → Deployment

Blog Series — AI ABAP Development

A long-form series on blog.zeis.de covering AI for ABAP development, ARC-1's design, and real-world walkthroughs:

  1. How I Use AI for Development and Why Context Matters
  2. ABAP and Agentic AI: The Hidden Problem in Real Projects
  3. Introducing ARC-1: A Secure ADT MCP Server for Enterprise SAP Development
  4. ARC-1 on SAP BTP: Secure ABAP Agentic Development Beyond the Laptop
  5. ARC-1 with Copilot Studio: SAP System Context Beyond Developers
  6. ARC-1 with Joule Studio: Bringing Real ABAP System Context into Joule
  7. From SEGW and Legacy UI5 to RAP with ARC-1

Full list and new posts → blog.zeis.de/tags/ai-abap-development-series.

Documentation

Full documentation is available at docs.arc-1-mcp.com.

GuideDescription
Quickstart5-minute npx + Claude Desktop setup
Agent PluginPortable server + all skills for Copilot, VS Code, Cursor, Codex, and compatible clients
Install in ClaudeDesktop .mcpb, Claude Code plugin (server + skills), and remote BTP connector
Local DevelopmentFull local dev — all install methods, MCP client configs, SSO cookie extractor
DeploymentMulti-user deployment — Docker, BTP Cloud Foundry, BTP ABAP
SAP BTP: Start HereChoose the BTP topology and follow the correct deployment, auth, destination, and operations guides
BTP Cloud FoundryMTA deployment, topology decision, role handoffs, and safe acceptance
BTP AdministrationChanges, roles, secrets, scaling, upgrades, rollback, and customer handover
Multi-System SetupBTP multi-target deployment, destinations, roles, and scoped pinned PP writes
ConfigurationEvery flag and env var, one table
UpdatingUpdate procedures per install method
Enterprise AuthLayer A / Layer B auth internals, coexistence matrix
Tool ReferenceComplete reference for all 12 tools
Extensions (Custom Tools)Add your own Custom_* tools without forking (FEAT-61) — reads, gated non-ADT writes, class/report execute
ArchitectureSystem architecture with diagrams
AI Usage PatternsAgent workflow patterns and best practices
SkillsReusable ARC-1 agent skills, including GitHub Copilot in Eclipse and VS Code ADT setup
Blog SeriesLong-form posts on AI for ABAP development, ARC-1 internals, and real-world walkthroughs

Development

npm ci && npm run build && npm test

See CLAUDE.md for codebase structure, testing commands, and contribution guidelines.

Credits

ProjectAuthorContribution
vibing-steampunkoiseeOriginal Go MCP server — ARC-1's starting point
abap-adt-apiMarcello UrbaniTypeScript ADT library, definitive API reference
mcp-abap-adtMario AndreschakFirst MCP server for ABAP ADT
abaplintLars HvamABAP parser/linter (used via @abaplint/core)

License

MIT

MIT, read

History

Latest

v1.9.0

Features 1, Fixes 1

Notes
Features
  • oauth: add DCR redirect allowlist with mandatory approval (#1091) (a2fc2a8)
Bug Fixes
  • support include read denials consistently (#1094) (1d874cf)
  1. v1.8.0

    Features 4, Fixes 6

    Notes
    Features
    Bug Fixes
    • avoid Gateway HTML parser whitespace backtracking (#1084) (7a94011)
    • enforce TABLE_CONTENTS returned row limit (#1074) (d3c0191)
    • oauth: integrate consent protection from xsuaa-auth 1.1.1 (#1088) (671c171)
    • preserve uncertainty in package quality-check preflight errors (#1076) (e118fe7)
    • retain compiled public modules in CF uploads (#1082) (35c065e)
    • reuse bounded single-target Cloud Connector PP sessions (#1086) (8562ffd)
  2. v1.7.0

    Features 7, Fixes 12, Other 3

    Notes
    Features
    • add bounded dump filtering with optional schema discovery (#1020) (b57006f)
    • add package filters and native where-used details (#1026) (a92ffa6)
    • build single-file executables with Node SEA in GitHub Actions (#1027) (a6ae0b6)
    • check bounded syntax object lists through SAPDiagnose (#1029) (ddc441d)
    • read saved SLG1 application logs via native SAP service (#1024) (2827948)
    • read stored SAPscript long texts without RFC (#1012) (37fece9)
    • read: expand nested includes of programs and includes (#1037) (1fc1e94)
    Bug Fixes
    • allow bounded long activations and report uncertain completion (#1050) (e6df1fd)
    • deps: patch follow-redirects and renew the node-forge audit exception (#1054) (079dc69)
    • keep empty native syntax reports unchecked (#1019) (498c12b)
    • keep SRVB read answers parseable JSON on cache hits and drafts (#1017) (62691e4)
    • leave out an empty KTD parent description instead of sending it (#1015) (59b3290)
    • make transport source reviews reliable and bounded over MCP (#1008) (15db422)
    • move ABAP Doc with method visibility changes (#1051) (15fd80f)
    • open one SAP security session before a cold client fans out (#1043) (3959961)
    • replace attached ABAP Doc during class surgery (#1049) (d5d080b)
    • resolve appends without the invalid where-used scope preflight (#1022) (a778d05)
    • retry stateful CSRF discovery without session header (#1046) (5cfbe93)
    • support native function parameter short texts (#1055) (8d7171e)
    Tests
    • capture where-used failure diagnostics (#1058) (6e5fa3d)
    • correct release-dependent 7.50 test prerequisites (#1013) (79088b1)
    • preserve BOR gate regression and clarify deny rules (#1016) (260c2b7)
  3. v1.6.0

    Features 10, Fixes 16, Other 2

    Notes
    Features
    • add ENHO/XHB (BAdI implementation) write support (#939) (a0fc4cb)
    • add opt-in XSUAA target authorization (#677) (8df2ae9)
    • add SAPRead lineStart/lineEnd raw line-range read (#585) (d3165ae)
    • allow class text-symbol writes on ABAP Cloud (#965) (0b30d4c)
    • enable table type authoring on ABAP Cloud (#966) (e93a3f1)
    • expose built-in table type dimensions (#963) (0123257)
    • manage classic table secondary indexes (#980) (9d8ac36)
    • read and update technical table settings (#979) (0a9f47d)
    • support explicit API release visibility (#967) (75f6ca9)
    • transfer local source through connected Codex tools (#981) (128aafb)
    Bug Fixes
    • allow bounded opt-in MCP HTTP request bodies (#972) (d32b605)
    • avoid class-include advice for missing programs (#1002) (fc240cf)
    • avoid retrying verified text-pool validation failures (#976) (c7385fe)
    • pass transport owner to legacy CTS handlers (#1003) (ce649ca)
    • preserve canonical SAP revision source URLs (#998) (b28fb4e)
    • preserve data-preview cell whitespace and SQL echoes (#983) (a09b2db)
    • prevent quick-fix dumps and preserve replacement text (#995) (1c10e14)
    • read SMBC configuration and resolve transport routes (#973) (32fb4c1)
    • refuse package listings without native filtering (#999) (e32388b)
    • reject empty ADT HTML and complete legacy request fallback (#1007) (9aad13a)
    • report text-part removals from native read-back (#977) (150dc8b)
    • resolve decorated names in exact object lookup (#971) (427e8aa)
    • retain safe per-target source search capabilities (#1006) (b10acb1)
    • send freestyle SQL with consistent CRLF line endings (#984) (85a1be1)
    • support v1-only service-binding metadata reads (#994) (b0f792c)
    • verify text-pool activation and prevent empty-save drafts (#978) (91042c3)
    Tests
    • qualify 1.6 workflows and correct release documentation (#997) (ba0059b)
    • separate BTP index fixtures from standalone SDOs (#1001) (9775645)
  4. v1.5.2

    Fixes 21

    Notes
    Bug Fixes
    • activate a program's inactive text pool before deleting it (#952) (3fc533a)
    • activate saved text pools after releasing their lock (#946) (d9a6d48)
    • allow valid DDLX annotations through preflight (#947) (096a3e1)
    • clear inactive function-group text pools before deletion (#959) (813abea)
    • explain count-only grouped SQL generation failures (#962) (ab19f30)
    • honor cursor position and SAP reference scope (#929) (c7bbfb5)
    • infer HANA for verified ABAP Environment components (#964) (a3646f1)
    • keep pre-write literal spacing findings advisory (#958) (03a9735)
    • lint source before creating SAP objects (#945) (3e669fc)
    • preserve inactive text pools across owner deletion (#969) (3abcf2b)
    • preserve method documentation and boundary formatting (#961) (81da556)
    • prove active table entity lineage for guarded reads (#968) (f2d4e02)
    • reject domain fixed values that SAP would truncate (#944) (759ce11)
    • report "not checked" when an unsaved-source syntax check targets an absent object (#951) (3a2d372)
    • resolve structure endpoints for syntax checks (#960) (59996cb)
    • restore ADT code completion and report result completeness (#930) (81c5b61)
    • retain discovery collections without advertised media types (#953) (3ac9caa)
    • route explicit program text-pool activation (#949) (d6cb053)
    • stop inferring HANA from NHI discovery (#937) (3970c11)
    • support API release state for function modules and namespaced objects (#931) (fa330ca)
    • support KTD documentation for business configuration objects (#934) (afe29f9)
  5. v1.5.1

    Fixes 7

    Notes
    Bug Fixes
    • btp: keep local credentials out of the MTAR (#913) (00ef945)
    • extract function body dependencies and resolve exact function groups (#911) (f58d98d)
    • handle namespaced includes and lowercase function-group names (#905) (4ad7d16)
    • recover legacy ADT class and program media types (#909) (cf7879b)
    • repair ADT definition navigation and cursor validation (#910) (74385fb)
    • resolve CDS view-entity and projection lineage (#914) (1d24222)
    • skip post-activation cache promotion when principal propagation is enabled (#917) (11e4b89)
  6. v1.5.0

    Features 6, Fixes 30, Other 2

    Notes
    Features
    • add APLO, SAJC and SAJT server-driven object support (#876) (fc2e02c)
    • add ENQU lock object read and write support (#877) (1913592)
    • add explicit source preconditions to SAPWrite (#853) (699b965)
    • add surgical FORM and MODULE insertion (#880) (d43e9f8)
    • expose syntax checks through read-only SAPRead (#855) (08bfa42)
    • identify outbound SAP requests with a configurable User-Agent (#859) (9bf8423), closes #796
    Bug Fixes
    • accept pooled and cluster tables in replacement lineage (#863) (6c517de)
    • accept version in hyperfocused SAP calls (#856) (53fd698)
    • apply bounded source grep to function groups (#889) (a1875ea)
    • correct SAP authorization guidance and honor log levels (#816) (f99b4d5)
    • decode SAP errors once and protect abapGit diagnostics (#894) (20643a0)
    • decode XML entities once at the parse boundary (#890) (69b0ae7)
    • deps: patch ip-address IPv6 classification vulnerabilities (#883) (2437dbe)
    • expose only reviewed reads to extension tools (#886) (ac97838)
    • expose SAP session failures in tests and CSRF audit (#860) (40aa1cc)
    • honor explicit server-driven read versions (#846) (e7a3087)
    • keep interface redefinitions public during visibility edits (#902) (7617bf4)
    • keep stored descriptions and row types on TTYP updates (#891) (b08f3b4)
    • merge metadata updates inside the SAP lock (#879) (050dee0)
    • patch optional UI AppRouter dependencies (#897) (e2638ce)
    • precheck and confirm server-driven deletions (#847) (5f80e23)
    • preserve class drafts throughout surgical edits (#845) (056f416)
    • preserve concurrent edits during RAP scaffolding (#857) (934cc0a)
    • preserve inherited visibility when moving methods (#903) (2673809)
    • preserve tool-call IDs across eval turns (#854) (be600d9)
    • prevent malformed SAP errors from stalling the parser (#893) (d7c4c4f)
    • prevent transient replay of extension POST requests (#887) (969159d)
    • re-resolve TABL write routes on every mutation (#873) (716d9a5)
    • read enhancement implementations by ADT subtype (#901) (f0f8a33)
    • recognize Windows drive-letter paths in SAP_DENY_ACTIONS (#598) (e94fd16)
    • refuse TABL mutations whose subtype cannot be verified (#874) (88819aa)
    • resolve function-group objects in transport checks and history (#576) (4d00479)
    • resolve replacement lineage through the active DDIC catalog (#848) (e6314ab)
    • reuse the SAP login across HTTP tool calls (#871) (3547812)
    • route generic server-driven calls through the registry (#849) (202ad56)
    • support interface method redefinitions in class surgery (#900) (0fa0418)
    Tests
    • integration: delete composition-linked DDLS pairs as one set (#872) (9fcad11)
    • normalize Windows paths in skip-discipline exclusions (#599) (b9755b2)
  7. v1.4.0

    Features 3, Fixes 9, Other 1

    Notes
    Features
    • add DRTY (CDS Type) read and write support (#832) (0cf57f1)
    • add extension report execution (#829) (1af57ea)
    • dumps: window and page the ST22 feed past SAP's 100-entry ceiling (#835) (06967ae)
    Bug Fixes
    • align edit_unit lint fallback and report configuration (#597) (c624445)
    • deploy: drop custom-scheme redirect URIs that XSUAA rejects (#813) (57843fc)
    • inspect publication failures and prevent transient replays (#795) (4253d00)
    • navigate: resolve server-driven types to their own URI in where-used (#809) (c95840f)
    • preserve concurrent changes during edit_unit (#831) (674ac69)
    • prevent replay of ambiguously completed creates (#830) (3f78ea8)
    • restrict OAuth callbacks to deployment-owned routes (#678) (ef9f61b)
    • reuse Connectivity proxy client for stateful sessions (#807) (2940971)
    • support legacy ADT discovery on older ABAP backends (#828) (4111754)
    Tests
    • keep supertest requests on their own server (#836) (9ca2c09)
  8. v1.3.0

    Features 5, Fixes 14

    Notes
    Features
    • add bounded live repository relations and refresh dependency context (#769) (81baa51)
    • batch ATC checks with explicit object coverage (#772) (0440bea)
    • diagnose: add package CI gates for ATC and harmless AUnit (#779) (556d503)
    • support per-node KTD short texts (#750) (5c36f2a)
    • textelements: write program and function-group text pools (#768) (c55adcb)
    Bug Fixes
    • activate: preserve uncertain batch outcomes and correct error attribution (#790) (7931245)
    • close stateful ADT sessions after writes (#803) (2c7d01a)
    • gate unsupported data-source lineage metadata on SAP 7.50 (#800) (3169034)
    • honour minimal errors in internal data-read denials (#804) (cfd399d)
    • ktd: address KTD nodes by the name SAPRead prints, abort on unknown routes, add dryRun (#766) (3180037)
    • preserve DTEL metadata across writes and reads (#774) (ecb7c5e)
    • prevent proxy response disposal from terminating the server (#806) (112af34)
    • query: fit freestyle SQL lines and honor minimal errors (#785) (63c07d2)
    • read: expose package listing limits and unknown completeness (#787) (23796e5)
    • restore BTP Audit Log mTLS delivery (#802) (c5102a5)
    • safely update multi-node Knowledge Transfer Documents (#749) (347d83f)
    • search: honor object type filters in normal searches (#786) (1942341)
    • write: preflight complete batches and preserve partial outcomes (#788) (9b188a4)
    • write: validate UIAD candidates and report partial saves (#789) (48baeb6)
  9. v1.2.0

    Features 3, Fixes 2

    Notes
    Features
    • add experimental data-source blocklist (#740) (97560ae)
    • bound data-preview response memory (#739) (e0320b3)
    • identify direct-connect SAP systems in instructions (#735) (7969a9b)
    Bug Fixes
    • security: patch pre-authentication decoder DoS in optional BTP AppRouter (#738) (3d89008)
    • read local-class methods from class includes (#744) (978c0fe)
  10. v1.1.2

    Fixes 1

    Notes
    Bug Fixes
  11. v1.1.1

    Fixes 6

    Notes
    Bug Fixes
    • add Agent Plugins 1.0 package (#695) (03ec895)
    • bind the ATC check variant SAPDiagnose claims to run (#708) (3c3e9f1)
    • forward user=* when listing transports across owners (#706) (e1b9dfb)
    • refresh runtime security packages before image scans (#726) (284935c)
    • resolve BSP paths from response metadata (#727) (c429720)
    • stop ATC polling once the worklist settles (#710) (4dcde5f)
  12. v1.1.0dated in the atlas

    Breaking 1, Features 2, Fixes 7

    Notes
    ⚠ BREAKING CHANGES
    • SAPGit no longer accepts the advertised but unimplemented commit action. Use abapGit push for supported commit-and-push workflows; gCTS mutations remain quarantined.
    Features
    • add SAPTransport action="diff" for transport review (#671) (475e6f0)
    • harden ARC-1 CLI for SAP CI workflows (#703) (8c09b81)
    Bug Fixes
    • add opt-in gzip for WAF-blocked data-preview requests (#694) (ba3e1d9)
    • correct and harden ADT source text search (#683) (33546e3)
    • correct TABLE_QUERY IN value guidance (#691) (9fba0b6)
    • deps: resolve npm audit advisories in transitive dependencies (#672) (c24fb13)
    • never report a syntax check as clean when SAP refused to run it (#681) (a9aedeb)
    • read the CSRF token and session cookie atomically (#680) (9c29f6d)
    • support DDLS table functions on 7.50 (#693) (1f29817)
  13. v1.0.2

    Fixes 1

    Notes
    Bug Fixes
    • restore the release gate that ran publish jobs on every push (#669) (d6d56f4)
  14. v1.0.1

    Fixes 4

    Notes
    Bug Fixes
    • correct CTS transport checks (#659) (70bce30)
    • drop inapplicable FUNC processing metadata instead of rejecting the write (#665) (9f1ecbb)
    • load extension plugins on Windows (#662) (83bf1c5)
    • read FLP tiles through the Pages association instead of a $filter (#663) (7a1dee3)
  15. v1.0.0

    Features 13, Fixes 15

    Notes
    Features
    • add experimental destination-discovered multi-target endpoints (#579) (5ec27fc)
    • add procedural unit source surgery (#571) (b712616)
    • advertise configurable MCP server name per deployment (#606) (0374f83)
    • bound unbounded tool results, reject unknown params, compact JSON (#583) (5de5b96)
    • create Remote-Enabled and update-task function modules (#634) (91dc911)
    • DTDC (Dynamic Cache) read/write — generalize the server-driven engine off blue-only (#612) (dea5d0f)
    • FUGR structural includes, NW 7.50 release gates, FUNC processing-type read-back (#637) (3811587)
    • propagate W3C trace context to SAP and record calling-agent identity (#641) (a3d765a)
    • publish CycloneDX npm SBOM with releases (#633) (542f699)
    • read Launchpad App Descriptor Items (UIAD) and gate SDO types on discovery (#642) (a0d3f5c)
    • remove cache warmup (#573) (525aca3)
    • SAPDiagnose action=atc_variants — list ATC check variants + system default (FEAT-68) (#611) (3b0bc93)
    • serve RFC 9728 protected-resource metadata in OIDC mode (#632) (ee6922f)
    Bug Fixes
    • abapgit: match the ADT bridge wire contract and support private repos (#635) (c60da36)
    • btp: allow jwt-bearer exchange against ARC-1's XSUAA client (#605) (cc7ad92)
    • don't crash startup on PP-off overrides, and harden the mta.yaml/mtaext stranding class (#582) (d7e2cb8)
    • harden multi-target behavior (#628) (879376d)
    • improve DDLS view-extension lint and diagnostics (#627) (871bb7e)
    • lead SAPWrite with its purpose and complete the TTYP documentation (#644) (cef92d0)
    • never block tools/list on startup feature discovery (#639) (c70390c)
    • per-type source format for server-driven objects (DTSC write was 415) + add DSFD (#604) (543f633)
    • propagate corrNr to the class-include init POST (#645) (#646) (0adb40e)
    • reconcile recursive transport release with terminal SAP state (#613) (002f24d)
    • reload rotated cookie file before the 401 retry (#631) (8103452)
    • security: patch and monitor AppRouter dependencies (#625) (7a0a835)
    • server: MCP 2026-07-28 forward-compat — CORS protocol headers, era-contract tests, ADR-0006 (#601) (dd99c17)
    • walk the AUnit result structure so alerts, program name and skips survive (#648) (0025ec3)
    • write: omit adtcore:responsible when it cannot be an on-prem user name (#638) (75bf274)
  16. v0.9.27

    Fixes 1

    Notes
    Bug Fixes
    • pin release npm to 11.x so npm ci builds better-sqlite3 (#568) (d38eee2)
  17. v0.9.26

    Features 1, Fixes 6

    Notes
    Features
    Bug Fixes
    • default minimal errors for HTTP (#552) (4ed0dcf)
    • harden change_package object type matching (#556) (940b7c5)
    • harden principal-propagation identity boundaries (d458c66)
    • improve SAPQuery Open SQL guidance (#559) (636eb6c)
    • make sqlite source cache explicit opt-in (#557) (7864e89)
    • open browser via rundll32 on Windows to preserve & in URLs (#549) (#555) (dbf2123)
  18. v0.9.25

    Features 1, Fixes 1

    Notes
    Features
    • read + write class text symbols via ADT textelements service (#541) (f7ac732)
    Bug Fixes
    • default DCR client_id TTL to never-expire and warn when the signing secret is missing (#540) (dd833b8)
  19. v0.9.24

    Fixes 2

    Notes
    Bug Fixes
    • foolproof add_method — auto-append missing terminating period (#536) (#539) (c525c04)
    • mcpb: ship the bundle unsigned so strict third-party hosts can install it (#537) (50a7948)
  20. v0.9.23

    Features 3, Fixes 1, Other 3

    Notes
    Features
    • Add labels to source diffs (#528) (bd6e520)
    • cloud-correct object create on BTP ABAP Environment (G-2..G-5) (#522) (515b91f)
    • create packages on the BTP ABAP Environment (cloud-correct DEVC body) (#534) (25a017b)
    Bug Fixes
    • serve just-activated source on next read without force_refresh (#530) (c7535d3)
    Tests
    • btp: cover SDO create + tool-level dispatch on BTP; fix smoke read-restriction assertion (#533) (d124ead)
    • btp: verify + cover SRVB update on the ABAP Environment (B3) (#532) (3a0b403)
    • verify RAP-stack (BDEF/SRVD/SRVB) cloud create on BTP (#529) (8451372)
  21. v0.9.22

    Features 3, Fixes 1, Other 1

    Notes
    Features
    • add DDIC structure context (#515) (76e24dc)
    • diagnose: odata_perf client-wait + debug-slow-sql field findings (#521) (ddb0ffe)
    • S/4HANA Public Cloud support (#524) (bdcd330)
    Bug Fixes
    • make nullable SAPWrite schemas opt-in (#526) (992ce76)
    Tests
    • cover per-user Cloud Connector proxy selection (#525) (d755ff9)
  22. v0.9.21

    Features 11, Fixes 12

    Notes
    Features
    • ddic: TTYP (table type) read + create (FEAT-65) (#504) (22c49b6)
    • diagnose: ABAP Unit test coverage (statement/branch/procedure) for SAPDiagnose (#503) (f6ab40e)
    • diagnose: OData sap-statistics perf probe + CDS Show-SQL + ICF-inactive guard (#509) (f111216)
    • diagnose: ST05 SQL-trace state control + record-viewer directory (#510) (a54a99b)
    • fugr: write FUGR structural include source (#505) (0e4f522)
    • manage: SAPManage set_api_state — write an object's API release contract (clean-core) (#506) (30d68fd)
    • query: self-correcting "unknown column" hint for SAPQuery + TABLE_QUERY (FEAT-64) (#502) (39c119b)
    • rap: create RAP behavior extensions (extend behavior for) (#507) (209893b)
    • SAPQuery datapreview metrics + SAPDiagnose ABAP trace requests (#508) (b10fab9)
    • transport: pre-release inactive-objects check + fix misleading K/W/T create claim (#501) (3519b1b)
    • transport: surface release-check report from SAPTransport release (#514) (fd7e907)
    Bug Fixes
    • add minimal client-facing SAP errors (#495) (f6b7fea)
    • cli: send correct arg shapes from sql/search shortcuts (#512) (b7e5325)
    • create audit and cache files privately (#496) (b409672)
    • default deployment descriptors to verified SAP TLS (#491) (e70eaf7)
    • diagnose: correct odata_perf "app" verdict note (#513) (fe12767)
    • enforce package allowlist for gCTS mutations (#490) (dfce4be)
    • fail closed on principal propagation errors (#488) (8c22795)
    • gate quickfix application as a write (#489) (f25dce5)
    • probe UI5 BSP filestore via /objects, not the handler-less bare node (#498) (0f1676c)
    • redact audit events before sink writes (#493) (f7af34e)
    • require auth for HTTP transport (#487) (46c68a0)
    • warn on insecure SAP TLS and encode trace paths (#494) (b67586e)
  23. v0.9.20

    Features 3, Fixes 1

    Notes
    Features
    • add context-first KTD workflow with guarded writes (#486) (32cc3bc)
    • add read-only UI console (#485) (68b3f2a)
    • extensions: gated non-ADT writes via ctx.http (v2 §2.2 Path B) (#474) (4294c94)
    Bug Fixes
    • avoid regex backtracking in ADT error parsing (#476) (48b32bc)
  24. v0.9.19

    Features 3, Fixes 2

    Notes
    Features
    • auth: use @arc-mcp/xsuaa-auth for XSUAA/OAuth + BTP principal propagation (#456) (0e4795b)
    • config: reject non-3-digit SAP_CLIENT at startup (#471) (4e1b8e4)
    • extensions: extension framework for Custom_* plugin tools (#454) (7425f00)
    Bug Fixes
    • auth: adopt @arc-mcp/xsuaa-auth hardened OIDC + constant-time api-key verifiers (#468) (2dfb512)
    • extensions: close 2 policy-boundary gaps + doc sharp edges (post-merge review) (#467) (8c6bbb4)
  25. v0.9.18

    Features 2, Fixes 1

    Notes
    Features
    • SAPRead: add action="diff" for server-side single-system version diff (#445) (7d603ef)
    • SAPTransport: add summary=true headers-only mode for list (#448) (3ac3619)
    Bug Fixes
    • startup: quiet expected feature-probe log noise + deployment/onboarding docs (#444) (951cb38)
  26. v0.9.17

    Features 1, Fixes 2

    Notes
    Features
    • transport: add SAPTransport remove_object to clean an object out of a request (#432) (fc4e7d4)
    Bug Fixes
    • clearer guidance for cross-subaccount OAuth2UserTokenExchange (#436) (226c437), closes #434
    • http: handle 304/204/205 null-body status on Cloud Connector proxy path (#440) (9e3906e)
  27. v0.9.16

    Fixes 1

    Notes
    Bug Fixes
    • initialise class test include surgery (#429) (f076a67)
  28. v0.9.15

    Features 1, Fixes 9, Performance 1, Other 4

    Notes
    Features
    • one-step "Install in Claude" — Claude Code plugin, MCPB bundle, tool annotations (#425) (48013b7)
    Bug Fixes
    • adt: make SRVB publish/unpublish content negotiation 758-proof (#403) (909f253)
    • cache: batch warmup writes in transactions (#417) (6a5ec76)
    • config: empty env values fall back to defaults (fail closed, not fail open) (#427) (cd32f54)
    • context: avoid SAPContext dependency convoy (#411) (f37373b)
    • docker: patch OpenSSL CVE-2026-45447 and harden release CVE gate (#400) (951ca09)
    • handlers: accept any maxResults number, floor+clamp at the sinks (#423) (1eb1758)
    • type-check the test suite + split intent.test.ts (#405) (5cb235c)
    • xml: make XML escaping single pass (#414) (df0c285)
    • xml: reuse parser array tag set (#412) (2d12d3d)
    Tests
    • handlers: Zod↔JSON-Schema type-parity guard (#415) (0855e2c)
    • isolate concurrent integration/e2e runs, add teardown janitor, fix flake (#426) (5895a75)
    • rename dispatch-rate-limit test, featuresOff() sweep, strip intent.ts provenance (#410) (8a34886)
    • server: de-flake auth-rate-limit (one server per test) + diagnosable transport errors (#424) (96fb89d)
    Performance Improvements
    • lint: memoize abaplint default configs (#413) (1e78acb)
  29. v0.9.14

    Fixes 5

    Notes
    Bug Fixes
  30. v0.9.13

    Fixes 4

    Notes
    Bug Fixes
    • git: enforce package allowlist on abapGit pull/push (#389) (82cec9b)
    • limits: clamp unbounded result limits to prevent resource exhaustion (#388) (9656162)
    • oauth: match redirect-uri allowlist against parsed URL components (#387) (c795b53)
    • transport: delete requests holding locked objects via removeLockedObjects (#386) (e64b497)
  31. v0.9.12

    Features 4, Fixes 6, Other 5

    Notes
    Features
    • diagnose: SAPDiagnose action=cds_testcases — CDS test-case scaffolding (#351) (b54ccd0)
    • read: generic server-driven object read — SAPRead DESD/EVTB/DTSC/CSNM/EVTO/COTA (#356) (ce3dacc)
    • write: server-driven object write — SAPWrite create/update/delete + SAPActivate (DESD/EVTB/DTSC/CSNM/EVTO/COTA) (#362) (0c7f0a6)
    • xsuaa: raise default refresh-token-validity to 30 days (#383) (8e0ee71)
    Bug Fixes
    • handlers: harden tool-arg validation against GPT/OpenAI schema pollution (#363) (138d89c)
    • security: close scope-router privilege escalation and bind OAuth state to client_id (#352) (ba0a21b)
    • security: enforce allowedPackages ceiling on activation and change_package (#357) (2a1135e)
    • security: XSUAA redirect-uri allowlist for the shared default client (#358) (d204eb8)
    • write: emit pak:recordChanges so transportable package creation works on SAP_BASIS 816 (#375) (00e4197)
    • write: thread logon user into adtcore:responsible (#380) (3f8dc12)
    Tests
  32. v0.9.11

    Fixes 2

    Notes
    Bug Fixes
    • lint: don't block writes on parse errors beyond abaplint's grammar (8xx / SAP_BASIS 816) (#350) (79b5687)
    • probe: repair broken probe CLI and validate ABAP Platform 2025 (SAP_BASIS 816) (#347) (6c307ec)
  33. v0.9.10

    Fixes 1

    Notes
    Bug Fixes
    • adt/client: copy tablWriteUrlCache in withSafety() clone (#335) (dbcd8a1)
  34. v0.9.9

    Features 2, Fixes 5

    Notes
    Features
    • fugr: recursive include expansion for SAPRead(type=FUGR) — captures function module code (#341) (2f99335)
    • transport: set explicit transport target (TR_TARGET) on SAPTransport.create (#339) (95d6a9c)
    Bug Fixes
    • atc: bind check variant via worklist so SAPDiagnose(atc) returns findings (#336) (5386465)
    • deps: bump express-rate-limit to 8.5.2 and key IPv6 by /56 subnet (#330) (1bb5e31)
    • fugr: non-expand SAPRead(FUGR) returns the real function-module list (objectstructure) (#342) (93b6c22)
    • surface XSUAA OAuth errors on /oauth/callback + don't prefix reserved scopes (#327) (f7418ed)
    • write: derive created-object master language from SAP_LANGUAGE (#344) (18672fd)
  35. v0.9.8

    Fixes 1

    Notes
    Bug Fixes
    • callback proxy for XSUAA OAuth state — fixes "State does not match" from VS Code (#325) (c41ed97)
  36. v0.9.7

    Features 5, Fixes 5, Other 4

    Notes
    Features
    • auto-initialise class-local includes on write (testclasses/CCAU) (#314) (2a7bdc0)
    • class-section surgery for CLAS (#307) (7d17ea2)
    • read: add TABLE_QUERY type for multi-column structured queries (#309) (7eb01f4)
    • read: SAPRead grep — regex search within object source (#316) (0d338e2)
    • safety: allowedPackages X/** subtree rule + nodestructure-backed resolver (#284) (2d34909)
    Bug Fixes
    • btp: per-user OAuth2UserTokenExchange Bearer token for headless BTP → ABAP (#315) (d5bb9ca)
    • http: dedupe Cookie header so live session id wins over stale file copy (#293, part 1) (#310) (fdb478e)
    • intent: replace 3 raw NUL bytes in source with \x00 escapes (#317) (d125142)
    • release-aware 423 lock-handle guidance (#312) (9c7e021)
    • write: reject mixed-case object names on update/edit_method/delete (#311) (2cff142)
    Tests
    • clean up transport test requests (#308) (5d643d2)
    • convert pseudo skips to real skips (#304) (73437e8)
    • e2e: fix ZI_ARC1_I33_PROJ fixture activation on S/4HANA 2023 (#318) (9d8ac15)
    • harden e2e fixture activation (#306) (ab5eaa7)
  37. v0.9.6

    Features 2, Fixes 3

    Notes
    Features
    • ARC-1-native pre-write hint for canonical %admin draft include (#271) (21ac60b)
    • layered rate limiting (Layers 1+2+3) (#276) (1994298)
    Bug Fixes
    • features: fall back to syntax-configurations endpoint for abapRelease (95ce9bc)
    • refuse TABL/DT writes on NW 7.50/7.51 with SE11 hint (#285) (#286) (b098140)
    • route TABL/DS create to /ddic/structures (#302) (039d800)
  38. v0.9.5

    Features 2, Fixes 1

    Notes
    Features
    • add SAPSearch tadir_lookup source modes + SAPWrite batch_create activateAtEnd (#270) (dec53b4)
    • stable DCR signing key + 0/negative TTL = infinite (#267) (1b4b191)
    Bug Fixes
    • rap: write handler skeletons to CCIMP, not CCDEF (#263) (60773f6)
  39. v0.9.4

    Features 5, Fixes 3

    Notes
    Features
    • add FUNC structured-parameter support (#259) (154db0f)
    • add sprint 3 diagnostics cleanup (#254) (0bb34cc)
    • add TADIR lookup and batch package overrides (#256) (dc2fe3d)
    • edit_method splices into class-local includes (CCDEF/CCIMP) (#261) (99ba5a1)
    • SAPWrite generate_behavior_implementation action (PR-C) (#260) (5151d13)
    Bug Fixes
    • harden apply_quickfix payloads (#253) (a859fc5)
    • retry ED064 activation and support ABAP release lint override (#255) (8cc8833)
    • support class include writes and RAP skeletons (#257) (c4ac325)
  40. v0.9.3

    Fixes 2

    Notes
    Bug Fixes
    • add FUGR + FUNC create/update/delete (#251) (f5ed2b8)
    • btp: harden CF deploy + add Viewer+SQL XSUAA role-collection (#246) (a3bfb5e)
  41. v0.9.2

    Fixes 1

    Notes
    Bug Fixes
    • ci: re-trigger release after #244 chore-merge (6345625)
  42. v0.9.1

    Fixes 3

    Notes
    Bug Fixes
    • adt: align DEVC listing descriptions with object names (#242) (63cfc70)
    • adt: decode XML entities in parseSearchResults description (#243) (c522866)
    • docker: drop bundled npm CLI from runtime image (#240) (e480206)
  43. v0.9.0dated in the atlas

    Breaking 3, Features 5, Fixes 3, Other 1

    Notes
    ⚠ BREAKING CHANGES
    • MSAG read enum + FTG2→FEATURE_TOGGLE rename (audit Plan B) (#224)
    • callers that passed type='FUNC/FM', 'CLAS/LI', 'VIEW/V', or 'TRAN/O' will now fail Zod schema validation. Migrate to FUGR/FF, CLAS/I (if needed — currently absent), VIEW/DV, TRAN/T respectively, or use the canonical short forms FUNC/CLAS/VIEW/TRAN.
    • SAPRead/SAPWrite/SAPActivate no longer accept type='STRU'. Callers must use type='TABL' for both transparent tables and DDIC structures. ARC-1 ships pre-1.0; the slash form 'STRU/DS' is preserved as a back-compat alias inside SLASH_TYPE_MAP only.
    Features
    • cookie hot-reload on stale 401 (#200) (23d4bfe)
    • layered lock-conflict detection + MSAG transport guard (#202) (cf0a126)
    • MSAG read enum + FTG2→FEATURE_TOGGLE rename (audit Plan B) (#224) (d4c0fd3)
    • purge invented ADT slash aliases (issue #218 audit, Plan A) (#223) (e130b87)
    • three-file sync (messages + STRU) + universal write guards (#201) (2afedf1)
    Bug Fixes
    • adt: tighten HTML entity decoder + tag stripper (CodeQL alerts 6, 7, 8) (#238) (3bd7dac)
    • collapse STRU type into TABL (#219) (1a310e9)
    • SAPTransport.create works on NW 7.50 (non-breaking, defaults DEVCLASS=$TMP) (#228) (fc29c41)
    Tests
    • add SAPLint PrettyPrint and revision eval scenarios (#151) (283b744)
  44. v0.8.0

    Breaking 1, Features 3, Fixes 1

    Notes
    ⚠ BREAKING CHANGES
    • make OAuth DCR registrations survive container restarts (#212)
    Features
    • ARC1_PUBLIC_URL env var for reverse-proxy / different-hostname deployments (#216) (6e219dd)
    • HTTP security headers (helmet) + opt-in CORS for browser MCP clients (#215) (8929d21)
    • make OAuth DCR registrations survive container restarts (#212) (0d78a6b)
    Bug Fixes
    • defensive dumpId encoding + endpoint-aware 403 hints (#206) (9046fa7)
  45. v0.7.2

    Features 1, Fixes 1

    Notes
    Features
    • ETag-validated source cache + active/inactive SAPRead version parameter (#186) (70bed22)
    Bug Fixes
    • detect HANA via S4CORE/HDB components (#182) (87ec553)
  46. v0.7.1

    Fixes 1

    Notes
    Bug Fixes
  47. v0.7.0dated in the atlas

    Breaking 9, Features 9, Fixes 2

    Notes
    ⚠ BREAKING CHANGES
    • authorization refactor (#181)
    Features
    • add cds crud dependency guidance for ddls workflows (#176) (f597486)
    • authorization refactor (#181) (7be4ff0)
    • close RAP on-prem authoring gaps with preflight and handler scaffolding (#173) (29ee0b5)
    • detect sibling DDLS DDLX coverage mismatches in SAPContext impact (#177) (4f6e822)
    • harden SAPDiagnose dump and gateway diagnostics (#174) (9383891)
    Bug Fixes
    • harden SAP data preview diagnostics and SAPManage scope behavior (#171) (6697d3e)
    • SAPActivate phantom success + CLI/server alignment gaps (NW 7.50) (#179) (4f2028e)

    [Unreleased] — v0.7 — Authorization Refactor (breaking change)

    Complete rewrite of the authorization model. Introduces a single ACTION_POLICY matrix as the source of truth for (tool, action) → (scope, opType); replaces negated safety flags with positive opt-ins; adds per-user transports and git scopes; makes admin imply all scopes; and makes allowWrites=false truly block every mutation.

    See docs_page/updating.md for the full migration guide.

    Breaking — removed
    • Env vars: SAP_READ_ONLY, SAP_BLOCK_DATA, SAP_BLOCK_FREE_SQL, SAP_ENABLE_TRANSPORTS, SAP_ENABLE_GIT, SAP_ALLOWED_OPS, SAP_DISALLOWED_OPS, ARC1_PROFILE, ARC1_API_KEY (single-key mode).
    • CLI flags: --read-only, --block-data, --block-free-sql, --enable-transports, --enable-git, --allowed-ops, --disallowed-ops, --profile, --api-key.
    • Server config fields: readOnly, blockData, blockFreeSQL, enableTransports, enableGit, allowedOps, disallowedOps, dryRun, transportReadOnly.
    • Server-side profile system (PROFILES, PROFILE_SCOPES tables).

    Startup aborts with a specific migration error pointing to docs_page/updating.md if any of these are set.

    Breaking — added
    • New env vars: SAP_ALLOW_WRITES, SAP_ALLOW_DATA_PREVIEW, SAP_ALLOW_FREE_SQL, SAP_ALLOW_TRANSPORT_WRITES, SAP_ALLOW_GIT_WRITES, SAP_DENY_ACTIONS. All positive opt-ins; all defaults are restrictive.
    • New scopes (xs-security.json + API_KEY_PROFILES): transports, git. admin now implies all 7 scopes at extraction time.
    • New role templates: MCPDeveloper bundles [read, write, transports, git]; MCPAdmin lists all 7 scopes explicitly.
    • New API-key profile admin in addition to existing viewer/viewer-data/viewer-sql/developer/developer-data/developer-sql.
    Fixed — six scope/safety classification bugs
    1. SAPLint.set_formatter_settings — was scope read at tool level, but the implementation called OperationType.Update. Now correctly classified as write.
    2. SAPManage.flp_list_catalogs / flp_list_groups / flp_list_tiles — were scope write, but the implementation called OperationType.Read. Now correctly classified as read.
    3. SAPTransport.check — was scope write, but is a read operation. Now correctly read.
    4. SAPTransport.history — was scope write, but is a read operation. Now correctly read.
    5. checkTransport did not consult readOnly (silent security gap). Transport mutations now require allowWrites=true && allowTransportWrites=true.
    6. checkGit did not consult readOnly. Git mutations now require allowWrites=true && allowGitWrites=true.
    Added — observability
    • Startup effective safety log line with per-field source attribution (env / flag / file / default).
    • Contradiction warnings for useless combos (e.g., allowTransportWrites=true with allowWrites=false).
    • New arc-1 config show CLI subcommand (--format=json|table) that dumps the resolved effective policy without starting the server. Exits non-zero on config error.
    • CI validator (npm run validate:policy) asserts ACTION_POLICY matches src/handlers/schemas.ts action/type enums.
  48. v0.6.10

    Features 2, Fixes 5

    Notes
    Features
    • add SAPGit tool with gCTS and abapGit integration (#159) (196b8a0)
    • diagnostic ADT type-availability probe (#163) (6bf4365)
    Bug Fixes
    • DTEL v2→v1 content-type fallback + SICF-aware error hints (#169) (1b6760f)
    • e2e: make E2E suite pass cleanly on NetWeaver 7.50 (#168) (750be05)
    • filter empty SAP_ALLOWED_PACKAGES entries and clarify docker docs (#156) (81001da)
    • integration suite passes cleanly on NW 7.50 (#167) (1bc2984)
    • make extract-sap-cookies work on Windows + Edge (fix #149) (#154) (8e87600)
  49. v0.6.9

    Features 6, Fixes 1, Other 1

    Notes
    Features
    • Add CDS-specific impact analysis (#143) (0dab061)
    • FEAT-43 SAPRead for AUTH, FTG2, ENHO (on-prem) (#142) (2a827a1)
    • fix cookie→PP leak, gate saml2=disabled, wire cookies & verbose CLI (#149) (74111ff)
    • SAPLint PrettyPrint (ADT code formatter) (#145) (af6da11)
    • SAPTransport history action (object transport reverse lookup) (#146) (8cae8f2)
    • Source Version / Revision History (on-prem) (#144) (92f6ef2)
    Bug Fixes
    • modificationSupport guard + CSRF HEAD→GET fallback for S/4HANA Public Cloud (#140) (9fcd4aa)
    Tests
    • restructure LLM evals by feature bucket + live MCP backend (#147) (27f4f51)
  50. v0.6.8

    Features 2, Fixes 1

    Notes
    Features
    • add change_package action for moving objects between packages (#133) (de2bc1a)
    • implementation for creationg sktd objects (#134) (1e8f59c)
    Bug Fixes
    • retry all HTTP methods on 503 and add CSRF token retry (#135) (39e3529)
  51. v0.6.7

    Features 4, Fixes 1

    Notes
    Features
    • add concurrency limiter and 503 retry (#132) (ab18e25)
    • add DCLS read/write support (FEAT-37) (#129) (b4424e2)
    • add proactive ADT discovery MIME negotiation (#127) (418b3d1)
    • implement FEAT-16 SAP-domain error intelligence hints (#128) (ce80aea)
    Bug Fixes
    • route SRVB publish/unpublish to correct OData version endpoint (#130) (9b0601c)
  52. v0.6.6

    Fixes 1

    Notes
    Bug Fixes
    • wait for Docker image before publishing to MCP Registry (#125) (cab65bc)
  53. v0.6.5

    Features 3, Fixes 4

    Notes
    Features
    • add quickfix proposals and auto-fix from ATC findings (#123) (e3c4233)
    • add SAP object type auto-normalization (#122) (750c835)
    • extend abaplint CDS lint support for DDLS pre-write validation (#121) (b2324cc)
    Bug Fixes
    • add structured DDIC diagnostics, inactive syntax check, and BDEF package handling (#119) (20c7ddb)
    • CF buildpack deployment fixes and BTP write tool support (#107) (5fb05e0)
    • normalize SRVB bindingType and support OData V4 bindings (#120) (6e1735c)
    • skip abaplint for non-ABAP types and add per-call lintBeforeWrite (#117) (362e429)
  54. v0.6.4

    Fixes 1

    Notes
    Bug Fixes
    • add MCP Registry OCI annotation to Dockerfile (#115) (15c4354)
  55. v0.6.3

    Fixes 1

    Notes
    Bug Fixes
    • add mcpName for MCP Registry publishing (#113) (bd346c5)
  56. v0.6.2

    Features 13, Fixes 7

    Notes
    Features
    • add 401 session timeout auto-retry and XML attribute escaping (#85) (37f8839)
    • Add DOMA/DTEL write support to SAPWrite (#86) (252d048)
    • add FLP launchpad management via SAPManage (#87) (8026a84)
    • BTP Cloud Foundry deployment with SAP Cloud SDK and MTA support (#97) (29e6685)
    • CDS write robustness and error handling improvements (#101) (c06d884)
    • DEVC package create/delete via SAPManage (#110) (72478d3)
    • improve activation structured responses, inactive objects, preaudit (#90) (b8d5db0)
    • MSAG (message class) read/write support (#109) (9a80416)
    • safe by default — read-only, no SQL, no data preview out of the box (#89) (5a46c9c)
    • SRVB (Service Binding) create/update/delete via SAPWrite (#111) (3e135a8)
    • TABL create/update/delete support (#104) (03f1ece)
    • transport enhancements — delete, reassign, types, recursive release (FEAT-39) (#88) (0f7ac83)
    • transport pre-flight check for non-$TMP package writes (#99) (36d7787)
    Bug Fixes
    • align ADT API patterns with reference abap-adt-api implementation (#98) (9607510)
    • enforce allowedPackages on all SAPWrite operations (#81) (5de8b44)
    • feature probe only treats 404 as unavailable, not all HTTP errors (#95) (5119615)
    • RAP write guard, block CDS writes when RAP unavailable (#93) (dea0099)
    • remove RAP write guard that blocked all CDS/DDLS writes (#96) (5ffef19)
    • transport hint false positive when corrNr present in URL path (#100) (2026702)
    • use HEAD instead of GET for feature probing (#94) (4a8a156)
  57. v0.6.1

    Features 7, Fixes 4, Other 1

    Notes
    Features
    • add API release state tool for clean core compliance (FEAT-02) (#77) (57e5eaf)
    • add BSP types and Atom XML parsers for UI5 filestore (#61) (264af14)
    • add BSP_DEPLOY type for ABAP Repository OData queries (#66) (90a2fc6)
    • add class hierarchy to SAPNavigate and fix doc inaccuracies (#70) (1831808)
    • add publishServiceBinding and unpublishServiceBinding to devtools (#62) (ced5639)
    • add transliteration, field hints, cache indicators (#64) (0ce3347)
    • transport/write compatibility — CTS media types, 406/415 retry, corrNr auto-propagation (#78) (42f0786)
    Bug Fixes
    • add pre-cleanup for stale E2E write object (#76) (a5aa26f)
    • correct Accept headers and entity expansion limit for ADT APIs (#69) (ff96ea8)
    • implement comprehensive ADT API audit reports (#65) (9f210ab)
    • improve LLM guidance for SAPSearch empty results and SAPContext CDS usage (#59) (1df565a)
    Tests
    • reliability hardening, fixtures, skip policy, coverage, try/catch, CRUD lifecycle, telemetry (#72) (be42998)
  58. v0.6.0dated in the atlas

    Breaking 1, Features 2

    Notes
    ⚠ BREAKING CHANGES
    • simplify write safety — default $TMP, remove allowTransportableEdits, enforce package allowlist (#56)
    Features
    • add class metadata types and ADT metadata parser (#55) (0b44fb7)
    • simplify write safety — default $TMP, remove allowTransportableEdits, enforce package allowlist (#56) (1f6ac1d)
  59. v0.5.0dated in the atlas

    Breaking 1, Features 4, Fixes 2

    Notes
    ⚠ BREAKING CHANGES
    • SAPQuery now requires 'data' scope (was 'read'), SAPTransport requires 'write' (was 'admin')
    Features
    • add J4D skills parity plan (#47) (df7ef1f)
    • add textSearch smoketest at startup and other improvments (#45) (792ff5b)
    • add Zod v4 runtime input validation for all MCP tools (#52) (9eea32a)
    • two-dimensional authorization model (scopes, roles, safety) (#48) (8ce07d1)
    Bug Fixes
    • implement OAuth security review verification report(RFC 9700) (#51) (3ef81e1)
    • use standard HTTP proxy for BTP connectivity (#43) (a60dd1b)
  60. v0.4.4

    Fixes 1

    Notes
    Bug Fixes
    • use native arm64 runners instead of QEMU for Docker builds (b65fba4)
  61. v0.4.3

    Fixes 1

    Notes
    Bug Fixes
    • use separate deps stage to avoid QEMU arm64 crash in Docker build (cab08fa)
  62. v0.4.2

    Fixes 1

    Notes
    Bug Fixes
    • avoid QEMU emulation crash in arm64 Docker build (7ea7883)
  63. v0.4.1

    Fixes 1

    Notes
    Bug Fixes
    • fix npm self-upgrade in release workflow (Node 22.22.x bug) (17b6bf3)
  64. v0.4.0

    Features 9, Fixes 1

    Notes
    Features
    • add DDIC completeness — structures, domains, data elements, transactions (#21) (9e0fa2a)
    • add DDLS support to SAPContext and include=elements to SAPRead (#30) (6a2883e)
    • add LLM eval harness for testing tool-call accuracy (#33) (e8c8a65)
    • add object caching with on-demand + pre-warmer support (#31) (8ba2f0d)
    • add runtime diagnostics (short dumps + ABAP traces) to SAPDiagnose (#24) (ab177fc)
    • DDLX, SRVB read support and batch activation for RAP completeness (#22) (402c57b)
    • enhanced abaplint integration with system-aware presets and pre-write validation (#37) (f17d4fa)
    • method-level surgery and hyperfocused mode (#23) (dbd27b9)
    • scope-based Where-Used analysis for SAPNavigate (#38) (f805441)
    Bug Fixes
    • post-merge consistency — SAPLint schema cleanup and objectUrlForType completeness (#26) (214ebec)
  65. v0.3.0

    Features 1

    Notes
    Features
    • direct BTP ABAP Environment connectivity via OAuth 2.0 (#18) (b1cf86c)
  66. v0.2.0

    Features 2, Fixes 1

    Notes
    Features
    • E2E testing infrastructure, XML error cleanup, and CI hardening (#13) (3830ff9)
    • improve tooling based on real-world LLM feedback (#14) (3bcb59e)
    Bug Fixes
    • correct Docker image name to arc-1 and fix GHCR link (ae58467)
  67. v0.1.4

    Fixes 1

    Notes
    Bug Fixes
    • add repository field for npm OIDC provenance verification (b3a55aa)
  68. v0.1.3

    Fixes 1

    Notes
    Bug Fixes
    • install npm 11.5+ for OIDC trusted publishing support (300f846)
  69. v0.1.2

    Fixes 2

    Notes
    Bug Fixes
    • restore NPM_TOKEN for publish and reorganize docs navigation (6d76b4b)
    • use npm OIDC trusted publishing instead of NPM_TOKEN (ab9f50c)
  70. v0.1.1

    Notes

    Initial release. Ported from oisee/vibing-steampunk.

2,966downloads per week, npm
Weekly downloads for arc-126 complete calendar weeks from 2026-04-20 to 2026-10-18; the latest total is 2966.20 Apr – 26 Apr: 22427 Apr – 3 May: 5484 May – 10 May: 92911 May – 17 May: 39218 May – 24 May: 20625 May – 31 May: 7361 Jun – 7 Jun: 1,1618 Jun – 14 Jun: 1,92315 Jun – 21 Jun: 1,52922 Jun – 28 Jun: 1,41929 Jun – 5 Jul: 2,4056 Jul – 12 Jul: 1,29713 Jul – 19 Jul: 1,51020 Jul – 26 Jul: 1,29527 Jul – 2 Aug: 2,0093 Aug – 9 Aug: 1,66410 Aug – 16 Aug: 77817 Aug – 23 Aug: 1,53424 Aug – 30 Aug: 84231 Aug – 6 Sept: 1,8787 Sept – 13 Sept: 50914 Sept – 20 Sept: 1,25221 Sept – 27 Sept: 1,95828 Sept – 4 Oct: 2,0185 Oct – 11 Oct: 2,19512 Oct – 18 Oct: 2,966
Declared alternative
  1. arc-1-lspEdition of ARC-1 that runs ADT calls through adt-ls
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. 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

Sources4
GitHub APIdiscovered here, arc-mcpchecked
npm registry, arc-1version, releases, installschecked
github.com/git+https://github.com/arc-mcp/arc-1.gittree, 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
runtimesnode
deploymentCloud Foundry, local
latestv1.9.0
first release
releases and cadence67, ~5d median
discovered viaGitHub API · arc-mcp
first seen in the atlas
ecosystem and domainabap, ai-and-agents
Flavors2
Standard ABAP
“Cloud Connector principal propagation for on-premise SAP, or `OAuth2UserTokenExchange` for BTP ABAP Environment” — arc-mcp/arc-1 — READMEchecked
ABAP Cloud
“Cloud Connector principal propagation for on-premise SAP, or `OAuth2UserTokenExchange` for BTP ABAP Environment” — arc-mcp/arc-1 — READMEchecked
Contributors13
History in the atlas7
  1. The licensing side is its explicit SAP API Policy relation, sourced to its README; the rest restated what any server in front of ADT is. Removed at the atlas maintainer's request on 2026-10-14.
  2. the `Custom_*` extension API and the agent-plugin install in what_it_solves, the rest of the guardrails the README states, the tool-count sentence as the README writes it, the release-notes link, and 1.4.0's extension report execution as the first changed_in
  3. connections to the ABAP platform over its ADT REST API and, when deployed on BTP, to an ABAP environment there and to the Destination service that forwards the user's identity; abaplint as a requirement; the abapGit and Docker links alone; the three inspirations the README names
  4. corrected against the README
  5. docs/NEIGHBOURS.md §2 assigns ARC-1 the posture ingest — as an entry — and §3.1 names its author, but nothing in data/artifacts held it. Entered as the artifact the posture calls for, and it is the first provider of capability:abap-agent-tooling in the corpus.
  6. abap-agent-tooling generalised into agent-code-access: the same concern exists in CAP, and the ABAP framing keeps the local name.
  7. First seen.
For your agent
Ref
artifact:arc-mcp-arc-1
JSON
/artifacts/arc-mcp-arc-1.json
MCP
Connecting an agent