mcp-abap-adt
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SAP_URL | Yes | The URL of the SAP ABAP system (e.g., https://your-sap-system.com:8000) | |
| SAP_CLIENT | Yes | The SAP client number (e.g., 100) | |
| SAP_PASSWORD | No | Your SAP password, used for Basic Authentication. Leave unset to use SSO (built-in browser login). | |
| SAP_USERNAME | No | Your SAP username, used for Basic Authentication. Leave unset to use SSO (built-in browser login). | |
| NODE_TLS_REJECT_UNAUTHORIZED | No | Set to 0 to accept self-signed certificates (development only!) |
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 | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ExportClassToFileA | Export an ABAP class from the system directly to file(s) in the tmp folder. Optionally export all includes (definitions, implementations, macros, testclasses). Automatically creates the tmp folder if it does not exist. |
| ImportClassFromFileA | Import an ABAP class from a file in the tmp folder and create it in the SAP system. Only supports local classes (Z/Y prefix) in local packages. |
| ExportCDSViewToFileA | Export a CDS DDL view from the system directly to a file in the tmp folder with .ddls.asddls extension. Automatically converts view name and SQL view name to Z-namespace. |
| ExportInterfaceToFileA | Export an ABAP interface from the system directly to a file in the tmp folder with .intf.abap extension. Automatically converts interface name to Z-namespace. |
| ExportProgramToFileB | Export an ABAP program from the system directly to a file in the tmp folder with .prog.abap extension. Automatically converts program name to Z-namespace. |
| ExportFunctionGroupToFileA | Export an ABAP function group from the system directly to a file in the tmp folder with .fugr.abap extension. Automatically converts function group name to Z-namespace. |
| ExportBehaviorDefinitionToFileA | Export a RAP behavior definition from the system directly to a file in the tmp folder with .bdef.asbdef extension. Automatically converts behavior name to Z-namespace. |
| ExportAccessControlToFileA | Export a CDS access control (DCL) from the system directly to a file in the tmp folder with .dcls.asdcls extension. Automatically converts DCL name to Z-namespace. |
| ExportMetadataExtensionToFileA | Export a CDS metadata extension from the system directly to a file in the tmp folder with .ddlx.asddlxs extension. Automatically converts extension name to Z-namespace. |
| GetSystemInfoA | Returns the active SAP ABAP backend connection details: system URL, SAP client number, authentication method (basic/SSO), and whether the ADT connection is reachable. Use ONLY to troubleshoot ADT connectivity or confirm which SAP backend is currently targeted. Do NOT call this as a prerequisite for reading ABAP objects, running searches, or any other ABAP operation — all other tools establish the ADT connection automatically. |
| ListSystemsA | List all configured SAP systems from .sap-systems.json. Shows system IDs, names, URLs, clients, authentication methods, and indicates which is the default/active system. |
| SetDefaultSystemA | Change the active SAP system at runtime. All subsequent operations will use this system unless explicitly overridden with the "system" parameter. Note: This change is temporary and only applies to the current session. |
| SapBrowserLoginA | Trigger browser-based SSO authentication for an SAP system. Opens Chrome for interactive login (supports any IDP: SAP IAS, ADFS, certificate, 2FA). Use this to proactively authenticate before making requests, or to re-authenticate when SSO cookies expire. Not needed for systems using Basic Auth. |
| ListRuntimeErrorsA | List recent ABAP runtime errors (ST22 dumps) from the system. Returns error type, program, user, timestamp, and dump ID for each entry. Use GetRuntimeError to retrieve detailed analysis of a specific dump. |
| GetRuntimeErrorB | Retrieve detailed information about a specific runtime error dump (ST22). Returns formatted text with error analysis, call stack, variables, and source code extract. |
| RunATCA | Run ATC (ABAP Test Cockpit) static code analysis on an ABAP object. Returns findings including errors, warnings, and informational messages with locations and check IDs. |
| ListATCCheckVariantsA | List available ATC check variants on the SAP system. Returns variant names and descriptions. Use this to discover which check variants are available before running ATC checks. |
| GetProgramB | Retrieve ABAP program source code |
| GetClassA | Retrieve ABAP class source code. Optionally fetch local includes (definitions, implementations, macros, testclasses). Use output_format=structured for JSON output suitable for downstream compression. |
| GetFunctionGroupC | Retrieve ABAP Function Group source code |
| GetFunctionB | Retrieve ABAP Function Module source code |
| GetStructureC | Retrieve ABAP Structure |
| GetTableB | Retrieve ABAP table structure |
| GetDomainB | Retrieve ABAP domain definition including data type, length, fixed values, and conversion exit |
| GetDataElementB | Retrieve ABAP data element definition including domain reference, field labels, and documentation |
| GetTableContentsA | Retrieve contents of an ABAP table with advanced filtering, pagination, and batch query support. Either provide table_name for a single query, or provide queries array for batch mode. |
| GetPackageB | Retrieve comprehensive ABAP package information including metadata, attributes, hierarchy (super/sub-packages), transport details, application component, and package interfaces |
| GetPackageContentsC | Retrieve objects and contents within an ABAP package, with optional recursive sub-package exploration |
| GetTypeInfoC | Retrieve ABAP type information |
| GetIncludeB | Retrieve ABAP Include Source Code |
| SearchObjectC | Search for ABAP objects using quick search |
| GetTransactionC | Retrieve ABAP transaction details |
| GetInterfaceC | Retrieve ABAP interface source code |
| GetClassTestsC | Retrieve local test classes from a class |
| GetClassIncludeC | Retrieve a specific include from an ABAP class (definitions, implementations, macros, testclasses, or main) |
| RunClassTestsC | Run unit tests for a class and retrieve results |
| RunPackageTestsB | Run unit tests for all test-enabled objects in a package and retrieve aggregated results |
| GetClassCoverageC | Run unit tests for a class and retrieve test coverage results |
| GetObjectUsagesC | Retrieve comprehensive where-used list for ABAP objects (classes, interfaces, programs, function groups, type groups). Supports filtering by object types and usage grades. |
| GetClassUsagesA | [DEPRECATED - Use GetObjectUsages instead] Retrieve usages for an ABAP class. This tool is deprecated and will be removed in a future version. |
| CheckSyntaxA | Check ABAP source code syntax and return detailed error information. Supports three input modes: file_path (from tmp folder), source_code (direct code), or object_name (existing object). Priority: file_path > source_code > object_name. |
| CreateClassB | Create a new ABAP class in local package ($TMP) without transport assignment |
| DeleteLocalClassA | Delete a local ABAP class (only Z/Y classes in local packages) |
| CreateClassTestsB | Create or replace test classes within an existing global ABAP class |
| CreateClassImplementationB | Write or replace the local class implementations include (CCIMP) of an existing global ABAP class. Use this to update method implementations for local classes defined in the class. |
| ActivateClassesA | Activate ABAP classes after creation or modification. Provide either class_name for a single class or class_names array for multiple classes. |
| CreateBehaviorDefinitionA | Create or replace a RAP Behavior Definition (BDEF) in the SAP system. Only supports local packages ($TMP, $LOCAL, $-prefixed). Supports managed, unmanaged, projection, and abstract types. Auto-activates by default. |
| CreateServiceDefinitionA | Create or replace a Service Definition (SRVD) in the SAP system. Only supports local packages ($TMP, $LOCAL, $-prefixed). Auto-activates by default. |
| CreateCDSViewA | Create or replace a local CDS DDL view in the SAP system. Only supports local packages ($TMP, $LOCAL, $-prefixed). Auto-activates by default. |
| GetCDSViewC | Retrieve CDS view source code and metadata |
| GetCDSViewContentsA | Query CDS view data with filtering, pagination, parameter support, and batch queries. Either provide view_name for a single query, or provide queries array for batch mode. |
| GetBehaviorDefinitionC | Retrieve RAP behavior definition source code and metadata |
| GetServiceDefinitionB | Retrieve RAP service definition source code and metadata |
| GetServiceBindingB | Retrieve RAP service binding details and configuration |
| GetMetadataExtensionB | Retrieve metadata extension (UI annotations) source code |
| GetAccessControlC | Retrieve access control (DCL) definition source code |
| GetBehaviorForRapBoC | Retrieve interface behavior definition for RAP Business Object from RONT_NODE table |
| SearchBopfBusinessObjectsA | Search for BOPF/BOBF Business Objects by name pattern in the /BOBF/OBM_BO registry table. Supports wildcard * in query and package (e.g. "SALES", "/IAM/*"). Returns name, object category, and generated flag for each match. When package is provided, also returns the package name per result. |
| GetBopfBusinessObjectB | Retrieve BOPF/BOPF Business Object definition including nodes, properties, associations, actions, determinations, and validations |
| SearchRapBoA | Search for RAP Business Objects by description and return the best matching technical name |
| ListUserTransportsA | ⚠️ IMPORTANT: Always use from_date parameter to ensure recent transports are visible! List ALL transport requests for a user by querying CTS database tables (E070/E07T) directly. ✅ WORKS FOR BOTH MODIFIABLE AND RELEASED TRANSPORTS This tool:
⚠️ CRITICAL LIMITATION:
Common status values:
Use this tool to find a developer's transports, both in-progress and released. |
| GetTransportRequestA | Retrieve detailed transport information showing task/request hierarchy and object list. IMPORTANT: Use this FIRST when analyzing a specific transport to understand if it is a task (child) or request (parent), as version history may record changes under the parent request. Returns formatted output with hierarchy, objects, and guidance for next steps. |
| GetVersionHistoryA | Retrieve version history for an ABAP object across transports. Returns formatted table with version IDs, dates, authors, and transport numbers. IMPORTANT: Transport numbers shown may be either tasks or parent requests - use GetTransportRequest to understand the hierarchy. Version "00000" = CURRENT/ACTIVE for all object types (may have earlier timestamp than transported versions but contains current code). See footer notes for complete guidance on transport hierarchy and version numbering. |
| GetTransportVersionsA | Helper tool that combines transport analysis and version history in one command. Given a transport number and object, automatically handles task/parent request hierarchy, finds the relevant version(s), and suggests comparison steps. This is the recommended starting point for analyzing what changed in a specific transport. |
| CompareObjectVersionsA | Compare two versions of an ABAP object and return a formatted diff. Supports multiple output formats: unified (like git diff), side-by-side, or summary. Use with GetVersionHistory or GetTransportVersions to identify version IDs, then compare them to see exactly what changed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create-class-workflow | Step-by-step workflow for creating and testing ABAP classes with mandatory validation steps |
| quick-class-workflow | Optimized workflow for experienced users - 40% faster with batch validation and auto-activation |
| package-discovery-workflow | Token-efficient workflow for discovering and exploring ABAP packages |
| rap-bo-analysis-workflow | Comprehensive workflow for analyzing RAP Business Objects |
| refactor-class-workflow | Safe workflow for refactoring existing ABAP classes with backup and testing |
| table-analysis-workflow | Workflow for analyzing database tables and querying data |
| export-modify-import-workflow | Export a class, make modifications locally, and import back as a local class (99% token savings vs AI-generated code) |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Top-Level ABAP Packages List | Retrieve a filtered list of top-level packages (no super package) excluding system packages (starting with $), test packages (starting with TEST), and empty packages. Useful for package discovery. |
| Top-Level Package Names (Lightweight) | Retrieve only the names of top-level packages as a simple array. Much lighter than the full list (~5K tokens vs 35K). Useful for quick discovery and autocomplete scenarios. |
| ABAP Naming Conventions | Complete ABAP naming conventions including classes, methods, parameters, variables, and VDM CDS naming guidelines. Essential reference for all ABAP development. |
| ABAP Code Formatting Standards | ABAP code formatting rules including indentation, case conversion, method call formatting, and VALUE statement alignment. |
| VDM CDS Naming Guidelines | SAP Virtual Data Model (VDM) CDS naming guidelines including view prefixes, global field names, representation terms, and abbreviations. |
| CDS View Performance Best Practices | Performance guidelines for CDS view development including anti-patterns, join optimization, performance annotations, and testing strategies. |
| Complete ABAP Development Standards | Complete ABAP development standards document including all naming conventions, formatting rules, VDM CDS guidelines, and ABAP Cloud compliance. |
| Auto-Detect Agent Guide | Automatically detects your agent type and returns optimized guide |
| Universal Agent Guide | Core guide for all AI agents |
| Cline-Specific Guide | Optimizations and patterns for Cline |
| Claude Desktop-Specific Guide | Optimizations and patterns for Claude Desktop |
| Cursor-Specific Guide | Optimizations and patterns for Cursor |
| OpenCode-Specific Guide | Optimizations and patterns for OpenCode |
| RAP BO Analysis: Sales Order | Comprehensive analysis of Sales Order RAP Business Object (I_SalesOrder) |
| RAP BO Analysis: Purchase Order | Comprehensive analysis of Purchase Order RAP Business Object (I_PurchaseOrder) |
TDQS
Scored across 65 tools
Most tools are distinct by ABAP object type and action, but several overlaps exist: GetClassCoverage vs RunClassTests both run unit tests, GetClassTests vs GetClassInclude both expose test classes, GetObjectUsages vs the deprecated GetClassUsages are redundant, and transport/version tools (GetVersionHistory, GetTransportVersions, GetTransportRequest) have intersecting purposes. Descriptions help, but boundaries are occasionally blurry.
The dominant pattern is PascalCase Verb+Object (GetProgram, CreateClass, ExportClassToFile, RunClassTests), which is predictable and readable. Minor deviations include SapBrowserLogin (starts with a noun phrase) and RunATC (verb+acronym), but the set is largely consistent.
With 65 tools, this server far exceeds the ideal 3–15 range and lands in the extreme-mismatch category (50+ tools). Even for a broad ADT integration, the volume creates significant choice overload for an agent selecting among many similar read, export, and test tools.
The surface covers a wide lifecycle: read/search objects, create/replace, activate, export/import, run tests/ATC, inspect transports, compare versions, and check syntax. Minor gaps remain around delete/update for non-class artifacts and a few specialized administrative operations, but core development workflows are well supported.