Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ARC1_URLNoURL of the SAP system (e.g., https://your-sap-host:44300). Required unless using BTP Destination Service.
ARC1_USERNoUsername for SAP system authentication. Required for basic auth or API key methods.
ARC1_API_KEYNoBearer token for API key authentication.
ARC1_PROFILENoSafety profile: viewer, viewer-data, viewer-sql, developer, developer-data, developer-sql.viewer
ARC1_PASSWORDNoPassword for SAP system authentication. Required for basic auth.
ARC1_BLOCK_DATANoBlock table data preview (true/false).true
ARC1_OIDC_ISSUERNoOpenID Connect issuer URL for OIDC/JWT authentication.
ARC1_CACHE_WARMUPNoPre-warm cache at startup (true/false).false
ARC1_BLOCK_FREE_SQLNoBlock free-form SQL queries (true/false).true
ARC1_OIDC_CLIENT_IDNoClient ID for OIDC/JWT authentication.
ARC1_XSUAA_INSTANCENoXSUAA service instance name for BTP native auth.
ARC1_OAUTH_CLIENT_IDNoClient ID for OAuth 2.0 authentication (e.g., for BTP ABAP Environment).
ARC1_ALLOWED_PACKAGESNoComma-separated list of packages for write operations (e.g., Z*,$TMP).
ARC1_OIDC_CLIENT_SECRETNoClient secret for OIDC/JWT authentication.
ARC1_OAUTH_CLIENT_SECRETNoClient secret for OAuth 2.0 authentication.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
SAPRead

Read SAP ABAP objects. Types: PROG, CLAS, INTF, FUNC, FUGR (use expand_includes=true to get all include sources), INCL, DDLS, DDLX (CDS metadata extensions — UI annotations), BDEF, SRVD, SRVB (service bindings — returns structured binding info: OData version, publish status, service definition ref), SKTD (Knowledge Transfer Documents — Markdown documentation attached to ABAP objects like CDS views, BDEFs, classes), TABL (DDIC TABL — covers transparent tables like T000 AND DDIC structures like BAPIRET2; returns CDS-like source. ARC-1 auto-resolves the URL: tries /sap/bc/adt/ddic/tables/ first, falls back to /sap/bc/adt/ddic/structures/. Note: there is no separate STRU type — TABL is the canonical short type for both, mirroring TADIR R3TR TABL and abapGit conventions), VIEW, DOMA (DDIC domains — returns type info, value table, fixed values), DTEL (data elements — returns domain, labels, search help), TRAN (transaction codes — returns description, program, package), TABLE_CONTENTS, DEVC, SOBJ (BOR business objects — returns method catalog or full implementation), SYSTEM, COMPONENTS, MSAG (message classes — returns class metadata + messages array), TEXT_ELEMENTS, VARIANTS. For CLAS: omit include to get the full class source (definition + implementation combined). The include param is optional — use it only to read class-local sections: definitions (local types), implementations (local helper classes), macros, testclasses (ABAP Unit). For CLAS with method param: use method="*" to list all methods with signatures and visibility, or method="method_name" to read a single method implementation (95% fewer tokens than full source). For SOBJ: returns BOR method catalog; use method param to read a specific method implementation. BSP (deployed UI5/Fiori apps — list apps, browse files, read content; use name to browse app structure, include for subfolder or file), BSP_DEPLOY (query deployed UI5 apps via ABAP Repository OData Service — returns name, package, description). API_STATE (API release state — checks if an object is released for ABAP Cloud / S/4HANA Clean Core; returns contract states C0-C4, successor info; use objectType param for non-class objects). INACTIVE_OBJECTS (list all objects pending activation — no name param needed; use before SAPActivate batch_activate to see what needs activating). AUTH (Authorization Fields — returns check table, domain, conversion exit, org-level flags; on-prem only). FEATURE_TOGGLE (Feature Toggles — returns current toggle state per system from SAP switch framework; on-prem only). ENHO (Enhancement Implementations / BAdI — returns technology type, referenced enhancement object, and BAdI implementations with implementing classes; on-prem only). VERSIONS (list revision history of an object — returns JSON with object metadata and revisions [{id, author, timestamp, versionTitle?, transport?, uri}]; pass optional include for CLAS or group for FUNC; on-prem only and may return 404 for some DDIC types on non-S/4 backends). VERSION_SOURCE (fetch source at a specific revision URI from VERSIONS response; returns raw source text; on-prem only). Optional version parameter (default "active"): set to "inactive" to read the user's unactivated draft, or "auto" for the developer view. Active reads include a note when an inactive draft exists.

SAPSearch

Search for ABAP objects. Search by name pattern with wildcards (* for any characters). Returns object type, name, package, description, and ADT URI. Use this to find classes, programs, function modules, tables, etc. 2. TADIR lookup (searchType="tadir_lookup"): Exact cross-package object lookup for one or more names via ADT repository quick search. Use this before create/reset workflows instead of long SAPQuery TADIR IN-lists.

Tips: BOR business objects appear as SOBJ type in results. The uri field from results can be used directly with SAPNavigate for references. The objectType field from results can be passed directly to SAPRead/SAPWrite/SAPActivate (ARC-1 auto-normalizes slash suffixes like DDLS/DF, CLAS/OC, PROG/P).

Note: Searches object names only (classes, tables, CDS views, etc.) — field/column names are not searchable here. To find fields by name, use SAPRead(type='DDLS', include='elements') for CDS views or SAPQuery against DD03L.

SAPNavigate

Navigate code: find definitions, references (where-used), code completion, and class hierarchy. Use for "go to definition", "where is this used?", "what does this class inherit?", and auto-complete. For references: uses the full scope-based Where-Used API returning detailed results with line numbers, snippets, and package info. Optional objectType filter narrows results to a specific ADT type in slash format (e.g., CLAS/OC, PROG/P). Type+name params are auto-normalized (e.g., type="clas" works). For hierarchy: returns superclass, implemented interfaces, and direct subclasses via SEOMETAREL. You can use type+name instead of uri (e.g., type="CLAS", name="ZCL_ORDER") for a where-used list without needing the full ADT URI.

For CDS entities (DDLS), prefer SAPContext(action="impact") — it returns the same where-used data pre-classified into RAP buckets (projection views, BDEFs, SRVDs, access controls, metadata extensions, documentation, ABAP consumers), which answers "what breaks if I change this view" directly without manual bucketing.

SAPLint

Run local abaplint rules on ABAP and CDS source code. System-aware: auto-selects cloud or on-prem rules based on detected system type.

Actions:

  • "lint": Check source for issues. Returns errors and warnings. Works for ABAP (PROG, CLAS, INTF, FUNC) and CDS views (DDLS) — catches syntax errors, naming conventions, field order, legacy view patterns.

  • "lint_and_fix": Lint + auto-fix all fixable issues (keyword case, obsolete statements, etc.). Returns fixed source.

  • "list_rules": List all available rules with current config. No source needed.

  • "format": Pretty-print ABAP source via SAP's ADT formatter (uses the SAP system's global formatter settings). Requires source. Returns the formatted source.

  • "get_formatter_settings": Read the SAP system's global PrettyPrinter settings (indentation, keyword style). No params.

  • "set_formatter_settings": Update the SAP system's global PrettyPrinter settings. Requires indentation (bool) and/or style (keywordUpper|keywordLower|keywordAuto|none). Blocked in read-only mode.

For server-side checks (ATC, syntax check, unit tests), use SAPDiagnose instead. Note: lint/lint_and_fix/list_rules run locally; format/*_formatter_settings call the SAP system.

SAPDiagnose

Run diagnostics on ABAP objects and analyze runtime errors.

Actions:

  • "syntax": Syntax check an ABAP object. Requires name + type. Optional: version ("active" or "inactive", defaults to active). Optional: source — when supplied, SAP compiles the given content as if it lived at the object's URI (pre-write dry-run, nothing is written). Omit source to check what is stored.

  • "unittest": Run ABAP unit tests. Requires name + type.

  • "atc": Run ATC code quality checks. Requires name + type. Optional: variant.

  • "object_state": Compare active and inactive source versions. Requires name + type. For CLAS, also compares main, definitions, implementations, macros, and testclasses includes (up to 10 parallel reads per class; sequence calls when sweeping many classes). Returns ETags, byte lengths, hashes, and divergence flags.

  • "quickfix": Get SAP quick fix proposals for a specific source position. Requires name + type + source + line. Optional: column, sourceUri for exact ADT include/source targets.

  • "apply_quickfix": Apply one quick fix proposal and return text deltas (does not write source). Requires name + type + source + line + proposalUri + proposalUserContent. Optional: column, sourceUri, proposalAffectedObjects. proposalUserContent may be an empty string; pass it through exactly from quickfix.

  • "dumps": List or read ABAP short dumps (ST22). Without id: lists recent dumps (filter by user, maxResults). With id: returns focused chapter sections by default; set includeFullText=true to include the full formatted dump blob. Optional sections=[kap0,kap3,...] to request specific chapter IDs.

  • "traces": List or analyze ABAP profiler traces. Without id: lists trace files. With id + analysis: returns trace analysis (hitlist = hot spots, statements = call tree, dbAccesses = database access statistics).

  • "system_messages": List SM02 system messages via ADT feed (filter by user, maxResults, from, to).

  • "gateway_errors": List SAP Gateway error log entries (/IWFND/ERROR_LOG, on-prem). For detail mode provide detailUrl (preferred) or id+errorType.

Quickfix workflow: run syntax/ATC first to identify issues and line positions, then call quickfix to retrieve SAP-verified proposals, then apply_quickfix to get exact text deltas, and finally write the updated source via SAPWrite.

SAPContext

Get compressed dependency context or CDS blast-radius impact for an ABAP / CDS object.

Decision rule — pick the action based on the user's question:

  • "What breaks if I change ?" / "Who consumes <I_*>?" / "Impact analysis on " / "Blast radius" → action="impact"

  • "Understand dependencies before editing " / "What does X depend on?" → action="deps" (default)

  • "Find all callers of " (cache-warmup required) → action="usages"

action="impact" (CDS blast-radius, DDLS only): ALWAYS use this for CDS change-impact questions. Returns upstream AST dependencies plus downstream where-used results classified into RAP-aware buckets: projectionViews, bdefs, serviceDefinitions, serviceBindings, accessControls (DCLS), metadataExtensions (DDLX), abapConsumers, documentation (SKTD), tables, other. Also emits additive sibling-consistency diagnostics (consistencyHints + siblingExtensionAnalysis) when sibling DDLS variants in the same package show asymmetric metadata-extension coverage. DO NOT replicate this with SAPQuery against DDDDLSRC/ACMDCLSRC/DDLXSRC_SRC/SRVDSRC_SRC — those text scans produce noise (non-dependency matches, package group nodes) that this classifier already filters out. Optional includeIndirect=true widens to transitive consumers. Optional siblingCheck=false disables sibling analysis; siblingMaxCandidates controls fan-out (default 4, hard cap 10).

action="deps" (default): Returns only the public API contracts (method signatures, interface definitions, type declarations) of all objects that the target depends on — NOT the full source code. The most token-efficient way to understand dependencies. Instead of N separate SAPRead calls returning full source (~200 lines each), returns ONE response with compressed contracts (~15-30 lines each). Typical compression: 7-30x fewer tokens.

What deps extracts per dependency:

  • Classes: CLASS DEFINITION with PUBLIC SECTION only (methods, types, constants). PROTECTED, PRIVATE and IMPLEMENTATION stripped.

  • Interfaces: Full interface definition (interfaces are already public contracts).

  • Function modules: FUNCTION signature block only (IMPORTING/EXPORTING parameters).

  • CDS views (DDLS): All data sources (tables, other CDS views), association targets, and compositions. Each dependency's full source is included (table definitions, CDS DDL). Essential for CDS unit test generation — provides the dependency graph and field catalogs needed for cl_cds_test_environment doubles.

Filtering (deps): SAP standard objects (CL_ABAP_, IF_ABAP_, CX_SY_) are excluded. Custom objects (Z, Y*) are prioritized.

Use SAPContext BEFORE writing code that modifies or extends existing objects. Use SAPRead to get the full source of the target object, then SAPContext to understand its dependencies.

For non-CDS reverse-lookup, use SAPNavigate(action="references"). For CDS reverse-lookup, ALWAYS prefer action="impact" over SAPNavigate — it returns the same where-used data pre-classified into RAP buckets.

SAPManage

Probe and report SAP system capabilities. Use this BEFORE attempting operations that depend on optional features (abapGit, RAP/CDS, AMDP, HANA, UI5/Fiori, CTS transports, FLP customization). Also handles package (DEVC) lifecycle operations.

Actions:

  • "features": Get cached feature status from last probe (fast, no SAP round-trip). Returns which features are available, their mode (auto/on/off), and when they were last probed.

  • "probe": Re-probe the SAP system now (runs feature probes, auth checks, and ADT discovery refresh). Use this on first use or if you suspect feature availability has changed.

  • "cache_stats": Show object cache health and warmup state.

  • "flp_list_catalogs": List FLP business catalogs.

  • "flp_list_groups": List FLP groups.

  • "flp_list_tiles": List tiles in a catalog (requires "catalogId").

  • "create_package": Create a package (DEVC) via ADT packages API.

  • "delete_package": Delete an existing package.

  • "flp_create_catalog": Create a business catalog (requires "domainId", "title").

  • "flp_create_group": Create a group (requires "groupId", "title").

  • "flp_create_tile": Create a tile in a catalog (requires "catalogId", "tile").

  • "flp_add_tile_to_group": Add a catalog tile to a group (requires "groupId", "catalogId", "tileInstanceId").

  • "flp_delete_catalog": Delete a business catalog (requires "catalogId").

Returns JSON with features, each having: id, available (bool), mode, message, and probedAt timestamp. Also returns systemType ("btp" or "onprem") for understanding available capabilities. "available: false" means do NOT attempt operations that depend on it.

SAPTransport

Manage CTS transport requests (SE09/SE10 equivalent). Actions: list (defaults to current user, modifiable transports — both Workbench and Customizing), get (details with tasks and objects), create (K=Workbench, W=Customizing, T=Transport of Copies), release, delete, reassign (change owner), release_recursive (release tasks first, then parent), check (check if a package requires a transport — provide type, name, package), history (find transports referencing an object — provide type, name; read-only, works without SAP_ALLOW_TRANSPORT_WRITES). Transport IDs look like A4HK900123. Status: D=modifiable, R=released.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/marianfoo/arc-1'

If you have feedback or need assistance with the MCP directory API, please join our Discord server