By arc-mcp
Develop ABAP for SAP S/4HANA and BTP with AI-assisted code generation for RAP OData services, CDS views, analytical star schemas, Fiori Elements UIs, and ABAP Unit tests. Automates clean-core audits, ATC remediation, transport reviews, and unused-code analysis via the ADT REST API with read-only defaults and opt-in write gates.
Analyze the current conversation's tool calls, responses, errors, and approach to produce a structured feedback report for improving MCP tool usage with ARC-1. Use when the user asks to "analyze this session", "review my chat", "give feedback on tool usage", "how did I do", or wants a retrospective on a debugging session.
Ground the assistant in the target SAP system before any coding work by producing a local system-info.md that captures SID, release, components, detected features, RAP constraints, and ARC-1 lint preset. Use when asked to "set up system context", "bootstrap the SAP system", "create system-info.md", or when starting a session against an unfamiliar SAP system.
Generate a Fiori Elements V4 LROP app (list report + object page) driven by @UI.* annotations on a V4 RAP service, using the Fiori MCP server's 3-step (list_functionalities → get_functionality_details → execute_functionality) workflow. Use when asked to "build a Fiori Elements app", "generate LROP from this V4 service", "convert to annotation-driven UI", or "scaffold Fiori Elements V4".
Explain ABAP objects with full dependency context (via SAPContext) and optional ATC code quality analysis — replicates SAP Joule's "Explain Code" capability, including behavior definitions (BDEF — CRUD graph, determinations/validations, bound handler class). Use when asked to "explain this ABAP", "what does ZCL_X do", "walk me through this class/CDS view/behavior definition", or "review this object's quality".
Generate ABAP Unit tests for classes with dependency analysis, interface-based test doubles, and method-level surgical insertion. Use when asked to "generate unit tests for this class", "add ABAP Unit tests", "write tests for this method", or "create test doubles for ZCL_X".
Requires secrets
Needs API keys or credentials to function
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
This plugin requires configuration values that are prompted when the plugin is enabled. Sensitive values are stored in your system keychain.
sap_urlURL of your SAP system (e.g. http://host:50000 or https://host:44300).
${user_config.sap_url}sap_userYour SAP user ID for authentication.
${user_config.sap_user}sap_clientSAP logon client number.
${user_config.sap_client}sap_insecureSkip TLS certificate verification (only for self-signed dev/test systems).
${user_config.sap_insecure}sap_languageSAP logon language and master language for created objects.
${user_config.sap_language}sap_passwordYour SAP password (stored securely in the OS keychain).
${user_config.sap_password}sap_allow_writesAllow ABAP object mutations (create/update/activate). Prerequisite for transport and Git writes. Keep off for read/search-only usage.
${user_config.sap_allow_writes}sap_allow_free_sqlAllow read-only ad-hoc ABAP SQL via SAPQuery. Can expose application data — review your data-governance rules.
${user_config.sap_allow_free_sql}sap_allow_git_writesAllow gCTS / abapGit mutations (commit/push/pull). Also requires Allow Writes.
${user_config.sap_allow_git_writes}sap_allowed_packagesComma-separated write allowlist: exact names, Z* wildcards, ZFOO/** subtrees, or * for ALL packages. Default $TMP (local/throwaway only); leave empty to keep the $TMP default. Only applies when Allow Writes is on.
${user_config.sap_allowed_packages}sap_allow_data_previewAllow SAPRead(type=TABLE_CONTENTS) and SAPQuery table preview. Can expose application data — review your data-governance rules.
${user_config.sap_allow_data_preview}sap_allow_transport_writesAllow CTS transport mutations (create/assign/release). Also requires Allow Writes.
${user_config.sap_allow_transport_writes}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.
Full Documentation | Quickstart | Tool Reference | Blog Series
📖 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 →
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:
SAP_ALLOW_* flagsSAP_DENY_ACTIONS (for example SAPWrite.delete), without exposing low-level operation codes to admins--allowed-packages "Z*,$TMP"). Read operations are not restricted by package — use SAP's native authorization for read-level access controlSAPRead(type=TABLE_CONTENTS) and SAPQuery are gated behind explicit env vars (SAP_ALLOW_DATA_PREVIEW=true, SAP_ALLOW_FREE_SQL=true). These capabilities can expose application data or run ad-hoc SQL, so they are intentionally separated from the default development-tooling surface. They can be enabled for governed use cases, but should be reviewed against the current SAP API Policy, your SAP agreement, and internal data-governance rules--allow-writes and --allow-transport-writes. Update/delete operations auto-use the lock correction number when no explicit transport is provided--allow-git-writes / SAP_ALLOW_GIT_WRITES=trueviewer, viewer-data, viewer-sql, developer, developer-data, developer-sql, or admin per key$TMP when enabled — only local/throwaway objects; writing to transportable packages requires explicit --allowed-packagesARC1_ALLOWED_ORIGINS (comma-separated, exact match). Off by default; native MCP clients don't need it/mcp edge (Layer 1, default 20/min/IP, on), per-user MCP quota (Layer 2, off by default — multi-user deployments opt in via ARC1_RATE_LIMIT=60), server-wide SAP-bound semaphore (Layer 3, default 10, on). Honors Retry-After on 429/503 from SAP / BTP gateways. Two operator env vars; per-endpoint OAuth ceilings are constants in code. Closes CodeQL alert js/missing-rate-limiting. See the Rate Limiting Guidenpx claudepluginhub arc-mcp/arc-1 --plugin arc-1Comprehensive ABAP development skill for SAP systems. Use when writing ABAP code, working with internal tables, structures, ABAP SQL, object-oriented programming, RAP (RESTful Application Programming Model), CDS views, EML statements, ABAP Cloud development, string processing, dynamic programming, RTTI/RTTC, field symbols, data references, exception handling, or ABAP unit testing. Covers both classic ABAP and modern ABAP for Cloud Development patterns.
Claude Code plugin for SAP ABAP development — 25 specialized agents (10 core + BC + 14 module consultants), 16 workflow skills (create-program with Phase 4/6 hardening & multi-executor split, create-object, program-to-spec, compare-programs, analyze-code/symptom/cbo-obj, ask-consultant, deep-interview, team, release, setup/mcp-setup, sap-option/sap-doctor, internal trust-session), 4-Tier context loading (Tier 1 safety baseline + Tier 2 role-mandatory + Tier 3 triggered + Tier 4 per-task kit), Sonnet/Opus/Haiku model routing, OK_CODE binding pattern for Procedural screens, paradigm-split Clean ABAP, 4 RFC backends (soap/native/gateway/odata), SPRO config for 14 modules.
ABAP system exploration and analysis tools powered by sapcli
Generate SAP Fiori Launchpad URLs from app names
Model Context Protocol (MCP) server for AI-assisted development of CAP applications.
Full SAP toolkit for building, deploying, and connecting AI agents to SAP Joule via the A2A protocol (v0.3.0) on BTP Cloud Foundry. Supports TypeScript (Express or CAP) and Python agents with LangGraph, SAP GenAI Hub, and automated Joule capability deployment.