ARC-1
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ARC1_URL | No | URL of the SAP system (e.g., https://your-sap-host:44300). Required unless using BTP Destination Service. | |
| ARC1_USER | No | Username for SAP system authentication. Required for basic auth or API key methods. | |
| ARC1_API_KEY | No | Bearer token for API key authentication. | |
| ARC1_PROFILE | No | Safety profile: viewer, viewer-data, viewer-sql, developer, developer-data, developer-sql. | viewer |
| ARC1_PASSWORD | No | Password for SAP system authentication. Required for basic auth. | |
| ARC1_BLOCK_DATA | No | Block table data preview (true/false). | true |
| ARC1_OIDC_ISSUER | No | OpenID Connect issuer URL for OIDC/JWT authentication. | |
| ARC1_CACHE_WARMUP | No | Pre-warm cache at startup (true/false). | false |
| ARC1_BLOCK_FREE_SQL | No | Block free-form SQL queries (true/false). | true |
| ARC1_OIDC_CLIENT_ID | No | Client ID for OIDC/JWT authentication. | |
| ARC1_XSUAA_INSTANCE | No | XSUAA service instance name for BTP native auth. | |
| ARC1_OAUTH_CLIENT_ID | No | Client ID for OAuth 2.0 authentication (e.g., for BTP ABAP Environment). | |
| ARC1_ALLOWED_PACKAGES | No | Comma-separated list of packages for write operations (e.g., Z*,$TMP). | |
| ARC1_OIDC_CLIENT_SECRET | No | Client secret for OIDC/JWT authentication. | |
| ARC1_OAUTH_CLIENT_SECRET | No | Client secret for OAuth 2.0 authentication. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| SAPReadA | Read SAP ABAP objects — exact raw source, a method body, grep output, inactive drafts, revision history, or metadata. For "what does this object do?", explanations, spec work, reviews, or pre-change orientation, prefer SAPContext first (intent-level context before raw source). Types: PROG, CLAS, INTF, FUNC, FUGR (expand_includes=true for all include sources), INCL, DDLS, DCLS, DDLX, BDEF, SRVD, SRVB, SKTD/KTD (KTD aliases SKTD), TABL (covers both transparent tables AND DDIC structures — no separate STRU type), VIEW, DOMA, DTEL, TRAN, TABLE_CONTENTS (single-column filter), TABLE_QUERY (multi-column WHERE via the freestyle endpoint; gated by allowDataPreview; CDS views need SAP_BASIS 752+), DEVC, SOBJ (BOR — method param reads one method), SYSTEM, COMPONENTS, MSAG, TEXT_ELEMENTS, VARIANTS, BSP, BSP_DEPLOY, API_STATE (contract states C0-C4; objectType for non-class), INACTIVE_OBJECTS (no name; pending-activation list), AUTH, FEATURE_TOGGLE, ENHO, VERSIONS, VERSION_SOURCE. AUTH/FEATURE_TOGGLE/ENHO/VERSIONS/VERSION_SOURCE are on-prem only. CLAS: to save tokens, prefer method="*" (all signatures), method="NAME" (one body, ~95% fewer tokens than the full class), or grep over reading the full source. Omit include for the full source, or include=definitions|implementations|macros|testclasses for a local section. Full per-type detail: docs_page SAPRead. Optional grep: case-insensitive regex returning only matching source lines (+context, line numbers); for CLAS, matches are annotated with the owning class/method. Optional version parameter (default "active"): "inactive" reads the user's draft, "auto" the developer view. Active reads note when an inactive draft exists. |
| SAPSearchA | Search for ABAP objects, exact object-directory entries, or source code. Modes:
|
| SAPNavigateA | Navigate code: definitions, references (where-used), completion, class hierarchy. references uses the scope-based Where-Used API (line numbers, snippets, package); optional objectType filters by ADT slash type (e.g. CLAS/OC, PROG/P); pass type+name instead of uri. hierarchy returns superclass + interfaces + direct subclasses. For CDS (DDLS), prefer SAPContext(action="impact") — the same where-used pre-classified into RAP buckets, answering "what breaks if I change this view". |
| SAPLintA | Run local abaplint rules on ABAP/CDS source (auto-selects cloud or on-prem rules by system type). Actions:
|
| SAPDiagnoseA | Run diagnostics on ABAP objects and analyze runtime errors. Actions:
|
| SAPContextA | Primary tool for understanding ABAP/CDS objects before specs, reviews, explanations, or changes — use instead of SAPRead when the user asks what an object does. Returns intent first (the object KTD when available) then compressed dependency contracts. Use SAPRead after SAPContext for exact source/method bodies/grep/drafts. Decision rule — pick the action from the user's question:
impact (CDS blast-radius): upstream AST deps + downstream where-used, classified into RAP buckets (projectionViews, bdefs, serviceDefinitions, serviceBindings, accessControls, metadataExtensions, abapConsumers, documentation, tables, other) + sibling-consistency hints. Use this instead of text-scanning DDDDLSRC/ACMDCLSRC with SAPQuery (it filters the noise). Optional includeIndirect, siblingCheck, siblingMaxCandidates. deps (default): target KTD + the public API contracts of its dependencies (not full source) — one compact response vs N SAPRead calls (7-30x fewer tokens); SAP standard objects filtered out. For CDS, includes dependency DDL/field catalogs for cl_cds_test_environment. structure (TABL only): the DDIC include/append tree. Use SAPContext BEFORE editing existing objects. For non-CDS reverse-lookup use SAPNavigate(references); for CDS prefer impact. Full detail: docs_page SAPContext. |
| SAPManageA | Probe and report SAP system capabilities. Use BEFORE operations that depend on optional features (abapGit, RAP/CDS, AMDP, HANA, UI5/Fiori, CTS transports, FLP). Also handles package (DEVC) lifecycle. Actions:
Returns features + systemType ("onprem"/"btp"); "available: false" means do NOT attempt dependent operations. |
| SAPTransportA | Manage CTS transport requests (SE09/SE10). Actions: list (current user, modifiable), get (tasks + objects), create (always a Workbench (K) request — the package/target sets target & layer, not the request category; optional explicit target), release, delete, remove_object (keep the request), reassign (change owner), release_recursive (tasks then parent), check (does a package need a transport — type, name, package), history (transports referencing an object — type, name; read-only, no write scope needed). IDs look like A4HK900123. Status: D=modifiable, R=released. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/arc-mcp/arc-1'
If you have feedback or need assistance with the MCP directory API, please join our Discord server