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 skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Develop, test, build, and deploy Godot 4.x games with Claude Code. Includes GdUnit4 testing, web/desktop exports, CI/CD pipelines, and deployment to Vercel/GitHub Pages/itch.io.
Comprehensive feature development workflow with specialized agents for codebase exploration, architecture design, and quality review
A growing collection of Claude-compatible academic workflow bundles. Covers scientific figures, manuscript writing and polishing, reviewer assessment, citation retrieval, data availability, paper reading, literature search, response letters, paper-to-PPTX conversion, and evidence-grounded Chinese invention patent drafting. Rules are organized as reusable skill folders with explicit workflows and quality checks.
Access thousands of AI prompts and skills directly in your AI coding assistant. Search prompts, discover skills, save your own, and improve prompts with AI.
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.