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. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| SAPReadA | Read SAP ABAP source, metadata and syntax results. For source purpose, explanations, specs, reviews or pre-change context, prefer SAPContext first. DDIC metadata: omit format (default text); structured is CLAS-only for ordinary reads. TABLE_QUERY: multi-column filters, data preview required; CDS needs SAP_BASIS 752+. TABLE_CONTENTS: single-column filter. INACTIVE_OBJECTS: no name. TABL/DTT: technical settings. SYNTAX: read-only SAP check (objectType+name, optional source for unsaved text). CLAS: method="*" for signatures, method="NAME" for one body, or grep. Global class declaration/implementation: MAIN (omit include). definitions/implementations contain local helpers. |
| SAPSearchA | Search for ABAP objects, exact object-directory entries, or source code. Modes:
|
| SAPNavigateA | Navigate code: definitions, references, completion, hierarchy. references: where-used objects by default; detail=positions/snippets adds bounded native usages; objectType filters results (e.g. CLAS/OC, PROG/P); type+name replaces uri. hierarchy queries SEOMETAREL for superclass/interfaces/direct subclasses: requires data/SQL opt-in + matching scope; otherwise inspect class MAIN with SAPRead. CDS (DDLS) impact: SAPContext(action="impact") classifies where-used into RAP buckets. Experimental relations: dependency maps or package neighborhoods, then selected reads. Consumer locations: references; objectType="CLAS/OC" for class-only; otherwise omit. Active metadata, not source-call/runtime proof. Coverage unknown. type+name required, no uri/source. |
| SAPLintA | Run local abaplint rules on ABAP/CDS source (auto-selects cloud or on-prem rules by system type). Actions:
|
| SAPDiagnoseA | ABAP diagnostics:
|
| 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: target KTD when available + selected dependency contracts, derived from source (not SAP-native relationships or a complete inventory). Counts distinguish root candidates from recursive attempts. Standard helper names are filtered. For CDS, includes dependency DDL/field catalogs for cl_cds_test_environment. structure (TABL only): the DDIC include/append tree. Non-CDS reverse-lookup: SAPNavigate(references); CDS: 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 (legacy name: current object lock plus assignment candidates — type, name; not complete transport history; read-only, no write scope needed). IDs look like A4HK900123. Status: D/L=modifiable, O/P=releasing, R/N=released. |
| SAPGitC | Git reads and gated abapGit workflows. gCTS mutations are quarantined. abapGit mutations need write/Git gates and allowedPackages ROOT/** or *; clone/pull evidence is unverified. external_info is gated HTTPS SAP egress. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
SAPRead, SAPContext, and SAPNavigate all cover code understanding; SAPContext action=usages overlaps with SAPNavigate references, and SAPRead SYNTAX overlaps with SAPDiagnose syntax. The descriptions provide decision rules that mitigate this, but boundary selection still requires careful reading.
All tool names use a consistent SAP prefix with PascalCase suffixes. The suffixes mix verbs (Read, Navigate, Diagnose) with nouns (Context, Git, Transport), which is a minor inconsistency but still readable and predictable.
Nine tools is well within the appropriate 3-15 range for a broad SAP ABAP assistant. Each major capability has a tool home, even though several tools bundle many sub-actions.
Read, navigation, diagnostics, lint, search, transport, git, and management coverage are present, but descriptions reference SAPWrite and SAPActivate that are absent from the set. The quickfix flow ends with text deltas and no save path, leaving a significant gap for editing and activating ABAP objects.