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 or syntax-check results. For purpose, explanations, specs, reviews or pre-change context, prefer SAPContext first. DDIC metadata: omit format (default text); structured is CLAS-only for ordinary reads. 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), TTYP, 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. 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. grep: case-insensitive regex; returns matching lines, context and line numbers, with owning class/method for CLAS.

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). 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: scope-based where-used with lines/snippets/package; 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 and runtime analysis. Actions:

  • "syntax": compatibility check; when available prefer SAPRead(type="SYNTAX", objectType, name, version?, source?).

  • "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": run ATC checks (name+type or objects [{type,name}], max 20; omit variant to bind the system default; unknown variant = error). "atc_variants": list variants + that default (variant = name filter; read-only).

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

  • "cds_testcases": SAP-suggested ABAP Unit test cases for a CDS entity (name; read-only; SAP_BASIS 8.16+).

  • "object_state": active/inactive ETags, hashes and divergence (name+type; CLAS: all includes). Server-driven types unsupported.

  • "quickfix": proposals at name+type+source+line (optional column/sourceUri).

  • "apply_quickfix": return proposal text deltas without writing; needs quickfix inputs + proposalUri/proposalUserContent.

  • "dumps": list/read ST22 short dumps (no id = list, newest first, user/from/to/maxResults; id = read; includeFullText, sections).

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

  • "trace_start": arm a profiler trace for the NEXT matching execution, then reproduce and read via "traces" (write scope; defaults: next HTTP request, SQL on).

  • "trace_requests": list armed trace requests. "trace_cancel": cancel one by id (write scope).

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

  • "odata_perf": diagnose why an OData call is slow (url = host-relative path); returns the sap-statistics timing split (DB/ABAP/framework/auth). Read-only; needs allowDataPreview.

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

  • "cds_sql": show the native SQL a CDS view compiles to (name; read-only).

  • "sql_trace_state" / "set_sql_trace_state" (sqlOn; needs SAP_ALLOW_WRITES) / "sql_trace_directory": ST05 SQL-trace control. Quickfix workflow: syntax/ATC → quickfix → apply_quickfix → write via SAPWrite. Full action reference: docs_page SAPDiagnose.

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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 8 tools

Disambiguation4/5

Each tool has a distinct top-level theme (read, search, navigate, context, diagnose, lint, manage, transport), but there is real overlap: SAPContext explicitly says to use it 'instead of SAPRead', SAPNavigate references overlaps with SAPContext usages, and SAPDiagnose 'syntax' overlaps with SAPRead(type='SYNTAX'). Extensive cross-referencing and decision rules mitigate the confusion, but an agent must read carefully to route correctly.

Naming Consistency5/5

All 8 tools follow a uniform 'SAP' + singular-verb pattern (SAPNavigate, SAPContext, SAPDiagnose, SAPLint, SAPManage, SAPRead, SAPSearch, SAPTransport). Predictable and readable throughout with no deviations.

Tool Count4/5

Eight tools is a good, well-scoped count for an SAP development assistant. However each 'tool' carries a very large action namespace (SAPDiagnose and SAPManage each expose 20+ actions), making the effective surface heavier than the count suggests.

Completeness3/5

The read/search/navigate/diagnose/transport surface is broad, but the write side is missing: descriptions repeatedly reference SAPWrite, SAPActivate, and API_STATE writes that are not present in this set, creating dead-end workflows (e.g. quickfix stops at apply_quickfix with 'write via SAPWrite').

Maintenance

ActivityActive
ResponsivenessResponsive