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.

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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:

  1. Object search (default): name pattern with wildcards (*); returns type, name, package, description, ADT URI.

  2. TADIR lookup (searchType="tadir_lookup"): exact cross-package lookup of one or more names (prefer over long SAPQuery TADIR IN-lists).

  3. Source code search (searchType="source_code"): full-text search across source (SAP_BASIS ≥ 7.51). Tips: BOR objects appear as SOBJ; the uri field feeds SAPNavigate, objectType feeds SAPRead/SAPWrite/SAPActivate. Searches object NAMES only — for field names use SAPRead(type='DDLS', include='elements') or SAPQuery on DD03L.

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:

  • "lint": check source (errors+warnings) for ABAP (PROG/CLAS/INTF/FUNC) and CDS (DDLS).

  • "lint_and_fix": lint + auto-fix fixable issues (keyword case, obsolete statements); returns fixed source.

  • "list_rules": list rules + current config (no source).

  • "format": pretty-print via SAP's ADT formatter (needs source).

  • "get_formatter_settings" / "set_formatter_settings": read/update the system's global PrettyPrinter (indentation bool, style keywordUpper|keywordLower|keywordAuto|none; set is blocked read-only). lint/lint_and_fix/list_rules run locally; format/*_formatter_settings call SAP. Syntax: SAPRead(type="SYNTAX"); ATC/unit tests: SAPDiagnose.

SAPDiagnoseA

ABAP diagnostics:

  • "syntax": check objects[] (CLAS/INTF/PROG/DDLS; version active/inactive). Single: prefer SAPRead SYNTAX.

  • "unittest": harmless ABAP Unit for CLAS/PROG/FUGR or DEVC (exact; includeSubpackages recurses).

  • "unittest_ci": harmless package tests with source reconciliation; empty/incomplete runs fail.

  • "atc": ATC (name+type or objects [{type,name}], max 20). Omit variant for system default; unknown variant errors. "atc_variants": read variants/default, optional variant name filter.

  • "atc_ci": package ATC CI; requires available API and verified selection.

  • "cds_testcases": read suggested CDS Unit tests (name; SAP_BASIS 8.16+).

  • "object_state": active/inactive ETags/hashes/divergence (name+type; CLAS includes). No server-driven types.

  • "quickfix": proposals: name+type+source+line; optional column/sourceUri.

  • "apply_quickfix": text deltas, no save; quickfix inputs + proposalUri/proposalUserContent.

  • "dumps": ST22, newest: user/from/to/maxResults/filters; id=detail.

  • "feed_schema": optional dump filters; action only.

  • "traces": list profiler traces; id+analysis analyzes one.

  • "trace_start": arm NEXT matching execution (write; defaults HTTP, SQL on); reproduce, then read "traces".

  • "trace_requests": list armed traces. "trace_cancel": cancel by id (write).

  • "system_messages": list SM02 messages. "gateway_errors": list /IWFND/ERROR_LOG (on-prem; detailUrl or id+errorType for detail).

  • "odata_perf": read OData timing (url: host-relative; DB/ABAP/framework/auth); needs allowDataPreview.

  • "authorization_trace": read STUSERTRACE/SUAUTHVALTRC (on-prem; needs SAP_ALLOW_DATA_PREVIEW).

  • "cds_sql": read CDS native SQL (name).

  • "sql_trace_state" / "set_sql_trace_state" (sqlOn; needs SAP_ALLOW_WRITES) / "sql_trace_directory": ST05 SQL-trace control. Quickfix: syntax/ATC → quickfix → apply_quickfix → SAPWrite.

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:

  • "What breaks if I change ?" / "Who consumes <I_*>?" / "Blast radius" → action="impact" (DDLS only).

  • "Which includes/appends extend ?" → action="structure", type="TABL".

  • "What does do?" / "Explain" / "deps before editing" → action="deps" (default); type+name required.

  • "Find all callers of " → action="usages" (live SAP where-used lookup).

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:

  • "features": cached feature status (fast, no round-trip; id, available, mode, probedAt). "probe": re-probe now (feature probes + auth + discovery refresh). "cache_stats": object cache health.

  • "create_package" / "delete_package" / "change_package": DEVC lifecycle via ADT packages API.

  • FLP read: flp_list_catalogs, flp_list_groups, flp_list_tiles (catalogId). FLP write: flp_create_catalog, flp_create_group, flp_create_tile, flp_add_tile_to_group, flp_delete_catalog. Classic designer tile/target-mapping model, deprecated since S/4HANA 2023; Work Zone exposure v2 needs LADIs (SAPRead type=UIAD).

  • "set_api_state": release/revoke an object's API release contract (objectUri, or name+objectType; apiState defaults RELEASED, contract defaults C1 — C0 for SRVD, C3 for classic views). Write counterpart of SAPRead(type="API_STATE").

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 9 tools

Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness2/5

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.

Maintenance

ActivityActive
ResponsivenessResponsive