mcp-abap-adt
mcp-abap-adt: Your Gateway to ABAP Development Tools (ADT)
mcp-abap-adt is an MCP server for ABAP ADT in SAP ECC/S/4HANA (on-premise) and SAP BTP ABAP Cloud systems. It gives agents controlled access to real ABAP repositories through ADT, so analysis and changes are grounded in system data instead of assumptions. It is built for AI-assisted pair programming (AIPNV: AI Pairing, Not Vibing), not autopilot vibe coding.
Primary workflows:
Deep ABAP analysis: where-used, object metadata, repository navigation, object structure, semantic analysis, dependency and impact exploration.
High-level ABAP development: rapid CRUD and iterative updates for RAP and classic ABAP artifacts (classes, interfaces, function groups/modules, programs, DDIC, CDS/view/service artifacts), validated through ADT flows.
Why teams use it:
Full CRUD (not read-only): create, read, update, and delete ABAP artifacts
Works with On-Premise (ECC/S/4HANA), ABAP Cloud (BTP), and Legacy systems (BASIS < 7.50)
JWT/XSUAA, service key (destination-based), and RFC authorization
Multiple transports: stdio, HTTP, SSE
Rich tool surface for ABAP objects, metadata, transports, and search
Authorization & Destinations (Important): A destination is the filename of a service key stored locally. You place service keys in the service-keys directory, and use --mcp=<destination> to select which one to use. This is the primary auth model for on‑prem and BTP systems. See Authentication & Destinations.
You can configure MCP clients either manually (JSON/TOML) or via the configurator CLI (@mcp-abap-adt/configurator, repo: mcp-abap-adt-conf).
Table of Contents
Related MCP server: ABAP-ADT-API MCP-Server
Getting Started
Install the server and configure your client using the configurator:
npm install -g @mcp-abap-adt/core
npm install -g @mcp-abap-adt/configurator
# stdio (destination)
mcp-conf --client cline --name abap --mcp TRIAL
# HTTP (streamable HTTP)
mcp-conf --client copilot --name abap --transport http --url http://localhost:3000/mcp/stream/http --mcp trialFull configurator usage (separate repo): CLIENT_INSTALLERS.md.
Terminology
Destination: a local service key filename. You store service keys in the standard service-keys directory, and pass the filename (without extension) via --mcp=<destination> to select which system to use.
See docs/user-guide/TERMINOLOGY.md for the full list.
Authorization & Destinations
Destination-based auth is the default. Drop service keys into the standard platform folder and use the filename as your destination:
mcp-abap-adt --transport=stdio --mcp=TRIALStandard service key paths:
Unix (Linux/macOS):
~/.config/mcp-abap-adt/service-keys/<destination>.jsonWindows:
%USERPROFILE%\\Documents\\mcp-abap-adt\\service-keys\\<destination>.json
For full details (paths, .env, direct headers), see Authentication & Destinations.
Architecture
The project provides two main usage patterns:
1. Standalone MCP Server (Default)
Run as a standalone MCP server with stdio, HTTP, or SSE transport:
mcp-abap-adt # stdio (default)
mcp-abap-adt --transport=http # HTTP mode
mcp-abap-adt --transport=sse # SSE mode2. Embeddable Server (For Integration)
Embed MCP server into existing applications (e.g., SAP CAP/CDS, Express):
import {
EmbeddableMcpServer,
ReadVsGetDedupStrategy, // optional: hide Read<X> when Get<X> also exposed
} from '@mcp-abap-adt/core/server';
const server = new EmbeddableMcpServer({
connection, // Your AbapConnection instance
logger, // Optional logger
exposition: ['readonly', 'high'], // Handler groups to expose
// Optional; default: no dedup — existing consumers see no change.
readOnlyDedupStrategy: new ReadVsGetDedupStrategy(),
});
await server.connect(transport);See Handlers Management → EmbeddableMcpServer dedup strategies for opt-in dedup of readonly tools against high/low/compact, including how to plug a custom IReadOnlyDedupStrategy for role-based rules.
Quick Start
Install server: See Installation Guide
Configure client (auto): Use
mcp-conffrom@mcp-abap-adt/configurator(repo:mcp-abap-adt-conf, docs: CLIENT_INSTALLERS.md)Configure client (manual): See Client Configuration
Use:
Use Cases
Impact analysis / where-used before changes: map object usage and probable blast radius.
Dependency audit: inspect links across classes, interfaces, DDIC, CDS/views, and RAP artifacts.
Migration and cleanup prep: extract repository facts to plan refactoring or cloud-readiness work.
RAP and ABAP iterative development: create/update artifacts quickly with ADT-backed operations.
Automated documentation and RAG ingestion: pull structured facts from ABAP systems for downstream tooling.
Target Users
ABAP developers and ABAP architects
RAP developers
Team leads and tech leads who need fast repository visibility
Teams building RAG/agent workflows for SAP landscapes
Capabilities (High-Level Focus)
Key examples of high-value workflows and tools:
Repository and impact analysis:
GetWhereUsed,DescribeByList,GetObjectStructure,GetObjectInfo,SearchObject,GetPackageTree,GetPackageContentsCode and semantic introspection:
GetAbapAST,GetAbapSemanticAnalysis,GetIncludesList,GetProgFullCodeRAP development:
CreateBehaviorDefinition,UpdateBehaviorDefinition,CreateBehaviorImplementation,UpdateBehaviorImplementation,CreateServiceDefinition,UpdateServiceDefinition,CreateMetadataExtension,UpdateMetadataExtensionCDS/View development:
CreateView,UpdateView,GetView,DeleteViewABAP OO CRUD:
CreateClass,UpdateClass,GetClass,DeleteClass,CreateInterface,UpdateInterface,GetInterface,DeleteInterfaceFunction module/group CRUD:
CreateFunctionGroup,UpdateFunctionGroup,GetFunctionGroup,DeleteFunctionGroup,CreateFunctionModule,UpdateFunctionModule,GetFunctionModule,DeleteFunctionModuleTransport and activation support:
CreateTransport,GetTransport,ActivateObject
Registries
Published in the official MCP Registry and listed on Glama.ai.
MCP Registry: docs/deployment/MCP_REGISTRY.md
Glama.ai:
Features
🏗️ Domain Management:
GetDomain,CreateDomain,UpdateDomain- Create, retrieve, and update ABAP domains📊 Data Element Management:
GetDataElement,CreateDataElement,UpdateDataElement- Create, retrieve, and update ABAP data elements📦 Table Management:
GetTable,CreateTable,GetTableContents- Create and retrieve ABAP database tables with data preview🏛️ Structure Management:
GetStructure,CreateStructure- Create and retrieve ABAP structures👁️ View Management:
GetView,CreateView,UpdateView- Create and manage CDS Views and Classic Views🎓 Class Management:
GetClass,CreateClass,UpdateClass- Create, retrieve, and update ABAP classes📝 Program Management:
GetProgram,CreateProgram,UpdateProgram- Create, retrieve, and update ABAP programs🔧 Behavior Definition (BDEF) Management:
GetBehaviorDefinition,CreateBehaviorDefinition,UpdateBehaviorDefinition- Create and manage ABAP Behavior Definitions with support for Managed, Unmanaged, Abstract, and Projection types📋 Metadata Extension (DDLX) Management:
CreateMetadataExtension,UpdateMetadataExtension- Create and manage ABAP Metadata Extensions⚡ Activation:
ActivateObject- Universal activation for any ABAP object🚚 Transport Management:
CreateTransport,GetTransport- Create and retrieve transport requests🔍 Enhancement Analysis:
GetEnhancements,GetEnhancementImpl,GetEnhancementSpot- Enhancement discovery and analysis📋 Include Management:
GetIncludesList- Recursive include discovery🔍 System Tools:
GetInactiveObjects- Monitor inactive objects waiting for activation🧪 Runtime Diagnostics:
RuntimeCreateProfilerTraceParameters,RuntimeListProfilerTraceFiles,RuntimeGetProfilerTraceData,RuntimeGetDumpById- Profiling and dump analysis with JSON payloads📡 Runtime Feeds:
RuntimeListFeeds,RuntimeListSystemMessages,RuntimeGetGatewayErrorLog- Feed reader (dumps, system messages, gateway errors), SM02 system messages, Gateway error log🚀 SAP BTP Support: JWT/XSUAA authentication with browser-based token helper
🔑 Destination-Based Authentication: Service key-based authentication with automatic token management (see Client Configuration)
💾 Freestyle SQL:
GetSqlQuery- Execute custom SQL queries via ADT Data Preview API
ℹ️ ABAP Cloud limitation: Direct ADT data preview of database tables is blocked by SAP BTP backend policies. The server returns a descriptive error when attempting such operations. On-premise systems continue to support data preview.
Documentation
For Users
Docs Index - Full documentation index
Installation Guide - Installation overview and platform guides
User Guide - End-user docs (auth, config, tools)
Authentication & Destinations - Destination-based auth and service keys
Handlers Management - Enable/disable handler groups
Configurator:
@mcp-abap-adt/configurator(repo:mcp-abap-adt-conf) provides themcp-confCLI to auto-configure clientsTools by level
For Administrators
Deployment Docs - MCP Registry, Docker, release notes
Server Configuration - YAML config reference
For Developers
Architecture Documentation - System architecture and design decisions
Development Documentation - Testing guides and development resources
CHANGELOG.md - Version history and changes
Dependencies
This project uses two npm packages:
@mcp-abap-adt/connection – connection/auth/session layer
@mcp-abap-adt/adt-clients – Builder-first ADT clients
These packages are automatically installed via npm install and are published to npm.
Running the Server
Global Installation (Recommended)
After installing globally with npm install -g, you can run from any directory:
# Show help
mcp-abap-adt --help
# Default HTTP mode (works without .env file)
mcp-abap-adt
# HTTP mode on custom port
mcp-abap-adt --http-port=8080
# Use stdio mode (for MCP clients, requires .env file or --mcp parameter)
mcp-abap-adt --transport=stdio
# Use stdio mode with auth-broker (--mcp parameter)
mcp-abap-adt --transport=stdio --mcp=TRIAL
# Use env destination from platform sessions store
mcp-abap-adt --env=trial
# Use explicit .env file path
mcp-abap-adt --env-path=/path/to/my.env
# SSE mode (requires .env file or --mcp parameter)
mcp-abap-adt --transport=sse --sse-port=3001
# SSE mode with auth-broker (--mcp parameter)
mcp-abap-adt --transport=sse --mcp=TRIALDevelopment Mode
# Build and run locally
npm run build
npm start
# HTTP mode
npm run start:http
# SSE mode
npm run start:sse
# Legacy v1 server (for backward compatibility)
npm run start:legacyEnvironment Configuration
Env resolution:
--env-path=<path|file>(orMCP_ENV_PATH) for explicit.envfile.Absolute path: used as-is.
Relative path or file name only (e.g.
my.env): resolved from current working directory.
--env=<destination>for destination file in standard sessions store:Unix:
~/.config/mcp-abap-adt/sessions/<destination>.envWindows:
%USERPROFILE%\\Documents\\mcp-abap-adt\\sessions\\<destination>.env
Fallback to
.envin current working directory.
Example .env file:
SAP_URL=https://your-sap-system.com
SAP_CLIENT=100
SAP_AUTH_TYPE=basic
SAP_USERNAME=your-username
SAP_PASSWORD=your-passwordFor JWT authentication (SAP BTP):
SAP_URL=https://your-btp-system.com
SAP_CLIENT=100
SAP_AUTH_TYPE=jwt
SAP_JWT_TOKEN=your-jwt-tokenFor RFC connection:
SAP_URL=https://your-legacy-system.com
SAP_CLIENT=100
SAP_AUTH_TYPE=basic
SAP_USERNAME=your-username
SAP_PASSWORD=your-password
SAP_CONNECTION_TYPE=rfcSee RFC Setup Guide for prerequisites (SAP NW RFC SDK).
Generate .env from Service Key (JWT):
# Install the connection package globally (one-time setup)
npm install -g @mcp-abap-adt/connection
# Generate .env file from service key JSON
mcp-auth auth -k path/to/service-key.jsonThis will automatically create/update .env file with JWT tokens and connection details.
.env comments rule: only full-line comments are supported (lines that start with #).
Inline comments are not parsed, so keep comments on separate lines.
Claude recommendation: place the service key in the service-keys directory and use --mcp=<destination> (avoid manual JWT tokens).
Command-Line Options
Authentication:
--auth-broker- Force use of auth-broker (service keys), ignore .env file--auth-broker-path=<path>- Custom path for auth-broker service keys and sessions--browser-auth-port=<port>- Override OAuth browser callback port (default: 5000 for HTTP, 4000 for SSE, 4001 for stdio)--connection-type=<http|rfc>- SAP connection transport:http(default) orrfc--unsafe- Enable file-based session storage (persists tokens to disk). By default, sessions are stored in-memory (secure, lost on restart)
When --mcp=<destination> is specified, automatic fallback loading of ./.env is skipped.
Examples:
# Use auth-broker with file-based session storage (persists tokens)
mcp-abap-adt --auth-broker --unsafe
# Use auth-broker with in-memory session storage (default, secure)
mcp-abap-adt --auth-broker
# Custom path for service keys and sessions
mcp-abap-adt --auth-broker --auth-broker-path=~/prj/tmp/ --unsafeSee Client Configuration for complete configuration options.
Handler logging switches
AUTH_LOG_LEVEL=error|warn|info|debug— sets base log level for handler logger;DEBUG_AUTH_LOG=truealso enablesdebug.HANDLER_LOG_SILENT=true— fully disables handler logging.DEBUG_CONNECTORS=true— verbose connection logging in high-level handlers.DEBUG_HANDLERS=true— enables verbose logs for selected read-only/system handlers.
Development
Testing
npm testTest logging switches
TEST_LOG_LEVEL=error|warn|info|debug— controls test logger verbosity (DEBUG_TESTS/DEBUG_ADT_TESTS/DEBUG_CONNECTORS forcedebug).TEST_LOG_FILE=/tmp/adt-tests.log— writes test logs to a file (best-effort).TEST_LOG_SILENT=true— disables test logging pipeline (console output muted).TEST_LOG_COLOR=true— adds colored/prefixed tags to test log lines.All
console.*in tests are routed through the test logger with a[test]prefix.
Building
npm run buildDeveloper Tools
# Generate tool documentation
npm run docs:tools
# See tools/README.md for more developer utilitiesContributors
Thank you to all contributors! See CONTRIBUTORS.md for the complete list.
Acknowledgment: This project was originally inspired by mario-andreschak/mcp-abap-adt. We started with the core concept and then evolved it into an independent project with our own architecture and features.
Available Tools
256 toolsActivateBehaviorDefinitionA
Activates the RAP behavior definition named by name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Behavior definition name (root entity). | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
ActivateClassA
Activates the ABAP class named by class_name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Class name. |
ActivateDataElementB
Activates the ABAP data element named by data_element_name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| data_element_name | Yes | Data element name. |
ActivateDdlA
Activates the CDS view (DDL source) named by ddl_name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| ddl_name | Yes | DDL source name. |
ActivateDomainA
Activates the ABAP domain named by domain_name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| domain_name | Yes | Domain name. |
ActivateFunctionGroupA
Activates the ABAP function group named by function_group_name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| function_group_name | Yes | Function group name. |
ActivateFunctionModuleB
Activates the ABAP function module named by function_module_name in the function group named by function_group_name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| function_group_name | Yes | Function group name. | |
| function_module_name | Yes | Function module name. |
ActivateInterfaceA
Activates the ABAP interface named by interface_name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| interface_name | Yes | Interface name. |
ActivateMetadataExtensionA
Activates the CDS metadata extension named by name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Metadata Extension name. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
ActivateObjectsB
Activates the repository objects named by objects (each a name and a type) together, in one activation: any object type, related objects such as domains, data elements and tables at once. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | Yes | Array of objects to activate. Each object must have 'name' and 'type'. | |
| preaudit | No | Request pre-audit before activation. Default: true |
ActivateProgramB
Activates the ABAP program (report) named by program_name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| program_name | Yes | Program name. |
ActivateServiceBindingA
Activates the OData service binding named by name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Service binding name. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
ActivateServiceDefinitionA
Activates the service definition named by name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Service definition name. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
ActivateStructureA
Activates the ABAP structure named by structure_name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| structure_name | Yes | Structure name. |
ActivateTableA
Activates the ABAP database table named by table_name, so its inactive version is in force. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| table_name | Yes | Table name. |
AddTransportObjectB
Adds the existing object named by object_name and object_type to the transport task named by transport_number, so it travels with the task's request. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| pgmid | No | Program id. Defaults to R3TR, a workbench object's. | R3TR |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| object_name | Yes | Object name. | |
| object_type | Yes | Object-directory type — CLAS, FUGR, TABL, DOMA — not an ADT type code like CLAS/OC. | |
| transport_number | Yes | Number of the transport task the object is added to. |
AmdpDebugCancelA
[read-only] [debug] Cancels the stopped AMDP debuggee's execution. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
AmdpDebugGetTableA
[read-only] [debug] Rows of a table variable at the AMDP stop, up to 100; optionally through a SELECT over it. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | A SELECT over the variable. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| variable | Yes | The table variable to read. | |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
AmdpDebugSetBreakpointsB
[read-only] [debug] Sets the AMDP breakpoints of a debug session to the set given, as confirmed by the system. Catches every request of the connected SAP user, from this server and from anywhere else. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| breakpoints | Yes | Lines in SQLScript methods of a class. | |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
AmdpDebugStartA
[read-only] [debug] Opens an AMDP debug session of the connected SAP user with breakpoints on lines in SQLScript methods; a background run, when given, starts once the system confirmed the breakpoints. Catches every request of the connected SAP user, from this server and from anywhere else. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| run | No | A class (as a console application) or a report started in the background once listening; its outcome is reported as the end of the session. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| breakpoints | Yes | Lines in SQLScript methods of a class. | |
| stop_existing | No | Ends an AMDP debug session of this user left behind. |
AmdpDebugStepA
[read-only] [debug] Steps the stopped AMDP debuggee over a statement or on to the next stop. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | over runs the current statement, continue runs to the next stop. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
AmdpDebugStopA
[read-only] [debug] Ends the AMDP part of a debug session, releasing a suspended debuggee first; when the whole debug session ends with it, the kept answers of its debugger batch go too. A part that failed to undo is reported and kept with the answers. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
AmdpDebugWaitB
[read-only] [debug] AMDP events of a debug session after waiting up to hold_seconds. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| hold_seconds | No | Longest wait for a change, at most 30 seconds. | |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
BatchAnswersA
[read-only] Answers the calls of the last executed batch by number: for each number asked, the tool's answer, built from the call's parts of SAP's response when the number is first read and kept for later reads; the numbers asked are processed in parallel. Takes one number or a list of numbers; an unknown number answers as unknown.
| Name | Required | Description | Default |
|---|---|---|---|
| number | No | One batch number to read (an integer of at least 1); give this or numbers, not both. | |
| numbers | No | Several batch numbers to read, answered in the order given; give this or number, not both. |
BatchBeginA
[read-only] Starts batch mode on this server. In batch mode each call of a tool marked recordable is recorded under the next number, starting at 1, and answers with empty content. Answers the state_handle: over Streamable HTTP send it as the state_handle argument of every call of the batch (or in the x-mcp-state-handle header).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
BatchEndB
[read-only] Sends the recorded calls in one envelope with the credentials in force and ends batch mode. Splits SAP's answer into each call's parts and answers the number of recorded calls, of requests sent and of parts received; when sending fails, the parts received differ from the requests sent or the answer fails to split, answers that error, and every number of the batch then answers it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
CheckBehaviorDefinitionA
[read-only] Runs a syntax check on the RAP behavior definition (BDEF) named by name. Returns syntax errors, warnings, and messages. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | BehaviorDefinition name. | |
| version | No | Which version to check — it goes into the checkrun body as chkrun:version, as ADT sends it. Without `version` the active version is checked; pass `inactive` for the unsaved one right after a write. |
CheckClassA
[read-only] Runs a syntax check on the ABAP class named by class_name. Can check existing class (active/inactive) or validate hypothetical source code. Returns syntax errors, warnings, and messages. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version to check: 'active' (last activated) or 'inactive' (current unsaved). Default: active. | |
| class_name | Yes | Class name. | |
| source_code | No | Optional: source code to validate. If provided, validates hypothetical code without creating object. Must include complete CLASS DEFINITION and IMPLEMENTATION sections. |
CheckDataElementA
[read-only] Runs a syntax check on the ABAP data element named by data_element_name. Returns syntax errors, warnings, and messages. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Which version to check. Without `version` the active version is checked; pass `inactive` for the unsaved one right after a write. | |
| data_element_name | Yes | Data element name. |
CheckDdlA
[read-only] Runs a syntax check on the CDS view named by ddl_name. Can check existing view (active/inactive) or validate hypothetical DDL source. Returns syntax errors, warnings, and messages. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version to check: 'active' or 'inactive'. Without `version` the active version is checked. | |
| ddl_name | Yes | CDS view name to check, passed as ddl_name. | |
| ddl_source | No | Optional: DDL source code to validate instead of the saved version. |
CheckDomainA
[read-only] Runs a syntax check on the ABAP domain named by domain_name. Returns syntax errors, warnings, and messages. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Which version to check. Without `version` the active version is checked; pass `inactive` for the unsaved one right after a write. | |
| domain_name | Yes | Domain name. |
CheckFunctionGroupA
[read-only] Runs a syntax check on the ABAP function group named by function_group_name. Returns syntax errors, warnings, and messages. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Which version to check — it goes into the checkrun body as chkrun:version, as ADT sends it. Without `version` the active version is checked; pass `inactive` for the unsaved one right after a write. | |
| function_group_name | Yes | Function group name. |
CheckFunctionModuleA
[read-only] Runs a syntax check on the ABAP function module named by function_module_name in the function group named by function_group_name. Returns syntax errors, warnings, and messages. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version to check: 'active' or 'inactive'. Default: active. | |
| function_group_name | Yes | Function group name containing the function module. | |
| function_module_name | Yes | Function module name. |
CheckInterfaceA
[read-only] Runs a syntax check on the ABAP interface named by interface_name. Returns syntax errors, warnings, and messages. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Which version to check — it goes into the checkrun body as chkrun:version, as ADT sends it. Without `version` the active version is checked; pass `inactive` for the unsaved one right after a write. | |
| interface_name | Yes | Interface name. |
CheckMetadataExtensionA
[read-only] Runs a syntax check on the CDS metadata extension (DDLX) named by name. Returns syntax errors, warnings, and messages. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Metadata extension name. | |
| version | No | Which version to check: 'active' (default) or 'inactive', the unsaved one right after a write. This endpoint does not fall back to whichever exists. | active |
CheckPackageA
[read-only] Runs a syntax check on the ABAP package named by package_name. Returns syntax errors, warnings, and messages. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| package_name | Yes | Package name. | |
| super_package | No | Optional, and not read by the check endpoint — see CheckPackageLow. Requiring it refused the call before any request was made, for a package with no parent. |
CheckProgramA
[read-only] Runs a syntax check on the ABAP program (report) named by program_name. Returns syntax errors, warnings, and messages. Available on premise. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Which version to check — it goes into the checkrun body as chkrun:version, as ADT sends it. Without `version` the active version is checked; pass `inactive` for the unsaved one right after a write. | |
| program_name | Yes | Program name. |
CheckStructureA
[read-only] Runs a syntax check on the ABAP structure named by structure_name. Can check existing structure (active/inactive) or validate hypothetical DDL code. Returns syntax errors, warnings, and messages. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version to check: 'active' or 'inactive'. Without `version` the active version is checked. | |
| ddl_code | No | Optional: DDL source code to validate instead of the saved version. | |
| structure_name | Yes | Structure name. |
CheckTableA
[read-only] Runs a syntax check on the ABAP database table named by table_name. Can check existing table (active/inactive) or validate hypothetical DDL code. Returns syntax errors, warnings, and messages. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version to check: 'active', 'inactive', or 'new'. Without `version` the active version is checked. | |
| ddl_code | No | Optional: DDL source code to validate instead of the saved version. | |
| table_name | Yes | Table name. |
CreateBehaviorDefinitionB
Create a new ABAP Behavior Definition (BDEF) in SAP system. Creates the behavior definition object in initial state. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Behavior Definition name (usually same as Root Entity name) | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate after creation. Default: true | |
| description | No | Description | |
| root_entity | Yes | Root Entity name (CDS View name) | |
| package_name | Yes | Package name | |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| transport_request | No | Transport request number, not a task | |
| implementation_type | Yes | Implementation type: 'Managed', 'Unmanaged', 'Abstract', 'Projection' |
CreateBehaviorImplementationB
Creates the RAP behavior implementation class named by class_name for the behavior definition named by behavior_definition, in initial state: the FOR BEHAVIOR OF main source and the implementations include are written afterwards, the main source as a class source and the implementations include under the class lock. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Behavior Implementation class name. | |
| description | No | Class description. If not provided, class_name will be used. | |
| package_name | Yes | Package name | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. | |
| behavior_definition | Yes | Behavior Definition name. The behavior definition must exist. Accepted for compatibility; not forwarded to the create request — the shipped create endpoint posts a metadata document (name/description/package) only. The class is bound to this behavior definition when its FOR BEHAVIOR OF main source is written, separately, via UpdateClass. |
CreateCdsUnitTestB
Creates the ABAP Unit test class named by class_name for the CDS view named by cds_view_name, from test_class_source. The view is checked to support CDS test doubles, the test class holding the local test classes is created in the package named by package_name, and it is activated. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Name of the new global class that holds the tests. | |
| package_name | Yes | Package of the new test class. | |
| cds_view_name | Yes | CDS view under test (DDL source). Must be active and testable with test doubles. | |
| test_class_source | Yes | ABAP source of the local test classes: definitions and implementations, FOR TESTING. | |
| transport_request | No | Transport request, not a task. Required for a transportable package. |
CreateClassA
Creates the ABAP class named by class_name in the package named by package_name, in initial state: the class object alone; its source code is written by an update of the class. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| final | No | Mark class as final. Default: false | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| abstract | No | Mark class as abstract. Default: false | |
| class_name | Yes | Class name. | |
| superclass | No | Optional superclass name. | |
| description | No | Class description (defaults to class_name). | |
| package_name | Yes | Package name. | |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| create_protected | No | Protected constructor. Default: false | |
| transport_request | No | Transport request number (required for transportable packages), not a task. |
CreateDataElementB
Create a new ABAP data element in SAP system. Creates the data element object in initial state. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| length | No | Data type length. Usually inherited from domain. | |
| decimals | No | Decimal places. Usually inherited from domain. | |
| data_type | No | Data type (e.g., CHAR, NUMC) or domain name when type_kind is 'domain'. | CHAR |
| type_kind | No | Type kind: 'domain' (default), 'predefinedAbapType', 'refToPredefinedAbapType', 'refToDictionaryType', 'refToClifType'. If not specified, defaults to 'domain'. | domain |
| type_name | No | Type name: domain name (when type_kind is 'domain'), data element name (when type_kind is 'refToDictionaryType'), or class name (when type_kind is 'refToClifType') | |
| long_label | No | Long field label (max 40 chars). Applied during update step after creation. | |
| description | No | Data element description. If not provided, data_element_name will be used. | |
| search_help | No | Search help name. Applied during update step after creation. | |
| short_label | No | Short field label (max 10 chars). Applied during update step after creation. | |
| medium_label | No | Medium field label (max 20 chars). Applied during update step after creation. | |
| package_name | Yes | Package name | |
| heading_label | No | Heading field label (max 55 chars). Applied during update step after creation. | |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| data_element_name | Yes | Data element name. | |
| set_get_parameter | No | Set/Get parameter ID. Applied during update step after creation. | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. | |
| search_help_parameter | No | Search help parameter. Applied during update step after creation. |
CreateDdlA
Creates the CDS view or classic DDL view named by ddl_name in the package named by package_name, in initial state: the DDL source object, its DDL source code written afterwards. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| ddl_name | Yes | DDL source name. | |
| description | No | Optional description (defaults to ddl_name). | |
| package_name | Yes | Package name | |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| transport_request | No | Transport request number (required for transportable packages), not a task. |
CreateDomainB
Create a new ABAP domain in SAP system. Creates the domain object in initial state. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| length | No | (optional) Field length (max depends on datatype) | |
| activate | No | (optional) Activate domain after creation (default: true) | |
| datatype | No | (optional) Data type: CHAR, NUMC, DATS, TIMS, DEC, INT1, INT2, INT4, INT8, CURR, QUAN, etc. | CHAR |
| decimals | No | (optional) Decimal places (for DEC, CURR, QUAN types) | |
| lowercase | No | (optional) Allow lowercase input | |
| description | No | (optional) Domain description. If not provided, domain_name will be used. | |
| domain_name | Yes | Domain name. | |
| sign_exists | No | (optional) Field has sign (+/-) | |
| value_table | No | (optional) Value table name for foreign key relationship | |
| fixed_values | No | (optional) Array of fixed values for domain value range | |
| package_name | No | (optional) Package name | |
| conversion_exit | No | (optional) Conversion exit routine name (without CONVERSION_EXIT_ prefix) | |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| transport_request | No | (optional) Transport request number, not a task. Required for transportable packages. |
CreateFunctionGroupA
Create a new ABAP function group in SAP system. Function groups serve as containers for function modules. When activate is false, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate function group after creation. Default: true. Set to false for batch operations. | |
| description | No | Function group description. If not provided, function_group_name will be used. | |
| package_name | Yes | Package name | |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. | |
| function_group_name | Yes | Function group name. Up to 26 characters. |
CreateFunctionGroupUnitTestA
Creates the ABAP Unit test classes of the function group named by function_group_name, from test_class_source. They are written to a test include, which is activated with the group. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| test_class_source | Yes | ABAP source of the local test classes: definitions and implementations, FOR TESTING. Replaces what the include holds. | |
| transport_request | No | Transport request, not a task. Required for a transportable object. | |
| function_group_name | Yes | Function group that gets the tests. Must already exist. |
CreateFunctionIncludeA
Create a new ABAP include within an existing function group. Creates the include in initial state. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| description | No | Optional description for the include | |
| include_name | Yes | Include name. | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. | |
| function_group_name | Yes | Parent function group name |
CreateFunctionModuleA
Create a new ABAP function module within an existing function group. Creates the function module in initial state. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| description | No | Optional description for the function module | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. | |
| function_group_name | Yes | Parent function group name | |
| function_module_name | Yes | Function module name. Up to 30 characters. |
CreateInterfaceB
Create a new ABAP interface in SAP system. Creates the interface object in initial state. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| description | No | Interface description. If not provided, interface_name will be used. | |
| package_name | Yes | Package name | |
| interface_name | Yes | Interface name. | |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. |
CreateMessageClassA
Creates the ABAP message class (T100) named by message_class_name, with its description, in the package named by package_name: a shell whose messages are added afterwards. A message class is in effect once saved. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| description | No | (optional) Short description. If not provided, message_class_name is used. | |
| package_name | Yes | Package name. | |
| master_language | No | (optional) Master/original language (e.g. "EN", "DE"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| transport_request | No | (optional) Transport request number, not a task. Required for transportable packages. | |
| message_class_name | Yes | Message class name. |
CreateMessageClassMessageB
Adds the message numbered msgno, with the text msgtext, to the existing ABAP message class (T100) named by message_class_name. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| msgno | Yes | Message number (e.g., "001"). | |
| msgtext | Yes | Message text. May contain placeholders &1 &2 &3 &4 (or &). | |
| description | No | (optional) Long description for the message. | |
| self_explanatory | No | (optional) Mark the message as self-explanatory (no long text needed). Default: false. | |
| transport_request | No | (optional) Transport request number, not a task. Required for transportable objects. | |
| message_class_name | Yes | Parent message class name. |
CreateMetadataExtensionB
Create a new ABAP Metadata Extension (DDLX) in SAP system. Creates the metadata extension object in initial state. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Metadata Extension name | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate after creation. Default: true | |
| description | No | Description | |
| package_name | Yes | Package name | |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| transport_request | No | Transport request number, not a task |
CreatePackageB
Create a new ABAP package in SAP system. Packages are containers for development objects and are essential for organizing code. When the connection is HTTP, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| description | No | Package description. If not provided, package_name will be used. | |
| package_name | Yes | Package name. | |
| package_type | No | Package type: 'development' (default) or 'structure' | development |
| super_package | Yes | Parent package name. Required for structure packages. | |
| record_changes | No | Enable change recording for the package. Required for transportable packages. Default: false. | |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| transport_layer | No | Transport layer. Required for transportable packages. | |
| transport_request | No | Transport request number, not a task. Required if the package is transportable. | |
| software_component | No | Software component. If not provided, SAP will set a default. | |
| application_component | No | Application component (optional, e.g., BC-ABA) |
CreateProgramA
Create a new ABAP program (report) in SAP system. Creates the program object in initial state. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| application | No | Application area (e.g., 'S' for System, 'M' for Materials Management). Default: '*' | |
| description | No | Program description. If not provided, program_name will be used. | |
| package_name | Yes | Package name | |
| program_name | Yes | Program name. | |
| program_type | No | Program type: 'executable' (Report), 'include', 'module_pool', 'function_group', 'class_pool', 'interface_pool'. Default: 'executable' | |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. |
CreateProgramUnitTestA
Creates the ABAP Unit test classes of the report named by program_name, from test_class_source. They are written to a test include, which is included into the report, and the report is activated. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| program_name | Yes | Report that gets the tests. Must already exist. | |
| test_class_source | Yes | ABAP source of the local test classes: definitions and implementations, FOR TESTING. Replaces what the include holds. | |
| transport_request | No | Transport request, not a task. Required for a transportable object. |
CreateServiceBindingA
Create an OData service binding (V2 or V4, UI or Web API) for a service definition, in initial state. When activate is false, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate the service binding after create, then read its service group. Default: true. | |
| description | No | Optional description. Defaults to service_binding_name when omitted. | |
| package_name | Yes | ABAP package name. | |
| service_name | No | Published service name. Default: service_binding_name if omitted. | |
| binding_variant | No | Service binding variant. ODATA_V4_UI = OData V4 for Fiori Elements, ODATA_V4_WEB_API = OData V4 Web API, ODATA_V2_UI = OData V2 for Fiori Elements, ODATA_V2_WEB_API = OData V2 Web API. | ODATA_V4_UI |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| response_format | No | Accepted for backward compatibility; no longer affects the answer, which is always the structured write result. | xml |
| service_version | No | Published service version. Default: 0001. | |
| transport_request | No | Optional transport request for transport checks. | |
| service_binding_name | Yes | Service binding name. | |
| service_definition_name | Yes | Referenced service definition name. |
CreateServiceDefinitionA
Create a service definition that exposes CDS views as an OData service, in initial state. When activate is false and source_code is absent, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate service definition after creation. Default: true. | |
| description | No | Service definition description. If not provided, service_definition_name will be used. | |
| source_code | No | Service definition source code (optional). If not provided, a minimal template will be created. | |
| package_name | Yes | Package name | |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. | |
| service_definition_name | Yes | Service definition name. |
CreateStructureC
Create a new ABAP structure in SAP system. Creates the structure object in initial state. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| fields | Yes | Does not reach creation — the shipped create endpoint posts a metadata document only. Use UpdateStructure (with ddl_code) after creating to set the fields. | |
| activate | No | Activate structure after creation. Default: true. Set to false for batch operations (activate multiple objects later). | |
| includes | No | Does not reach creation — see `fields`. Use UpdateStructure (with ddl_code) after creating to set includes. | |
| description | No | Structure description. If not provided, structure_name will be used. | |
| package_name | Yes | Package name | |
| structure_name | Yes | Structure name. | |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. |
CreateTableB
Create a new ABAP table in SAP system. Creates the table object in initial state. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| table_name | Yes | Table name. | |
| description | No | Does not reach creation — the shipped create endpoint has no description field of its own. Use UpdateTable (with ddl_code) after creating to set the DDL source, which carries the description. | |
| package_name | Yes | Package name | |
| master_language | No | Optional master/original language for the created object (e.g. "EN", "DE", "ZH"). Defaults to the session language (SAP_LANGUAGE) or EN. | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. |
CreateTransportB
Create a new ABAP transport request in SAP system for development objects. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | No | Transport owner (optional, defaults to current user) | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| description | Yes | Transport request description (mandatory) | |
| target_system | No | Target system for transport (optional, e.g., 'PRD', 'QAS'). If not provided or empty, uses 'LOCAL' | |
| transport_type | No | Transport type: 'workbench' (cross-client) or 'customizing' (client-specific) | workbench |
CreateTransportTaskA
Creates a task under the existing transport request named by transport_number, owned by the user named by target_user, of the type task_type. The task is itself a request resource — it reads, writes and releases like one — and is what adding and removing an object entry address, since a request's objects live on its tasks. target_user is required: it names the task's owner, and an empty owner is refused with SCTS_ADT_MSG 009. The task is typed Development/Correction (S) by default, because an Unclassified task refuses an added object on premise with SCTS_ADT_MSG 009 / TK127. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| task_type | No | S — Development/Correction (default), R — Repair of an object this system does not own, X — leave it Unclassified, as the server creates it. An Unclassified task refuses AddTransportObject on premise (TK127). | S |
| target_user | Yes | The user the task belongs to: an SAP user id (sent in upper case), e.g. DEVELOPER. Required — the server will not choose one, and naming another user is how a task is made for somebody else. | |
| transport_number | Yes | The REQUEST to create the task under — never another task. The number that comes back is the task, and that is what AddTransportObject, RemoveTransportObject and ReadTransportObjects address afterwards. |
CreateUnitTestA
Creates the ABAP Unit test classes of the ABAP class named by class_name, from test_class_source. They are written as the class's local test classes, and the class is activated. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Class that holds the tests. Must already exist. | |
| test_class_source | Yes | ABAP source of the local test classes: definitions and implementations, FOR TESTING. Replaces what the include holds. | |
| transport_request | No | Transport request, not a task. Required for a transportable object. |
DebugBatchBeginA
[read-only] [debug] Starts the debugger batch on the stopped ABAP debuggee, else at the AMDP break. In the debugger batch each call of step, step to line, stack, variables, child variables, stack position or setting a variable at the ABAP debuggee, and of step over, continue or the data preview of a table variable at the AMDP break, is recorded under the next number, starting at 1, and answers with empty content. Answers the state_handle: over Streamable HTTP send it as the state_handle argument of every call of the batch (or in the x-mcp-state-handle header).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
DebugBatchEndB
[read-only] [debug] Sends the recorded calls of the stopped debuggee in one envelope on the session the batch started on — the ABAP debuggee's session, or the AMDP session's command session — and ends the debugger batch. Splits SAP's answer into each call's parts and answers the number of recorded calls, of requests sent and of parts received; when sending fails, the parts received differ from the requests sent or the answer fails to split, answers that error, and every number of the batch then answers it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
DebugCreateMemorySnapshotA
[read-only] [debug] Writes a memory snapshot of the stopped debuggee and answers the file written. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugCreateWatchpointA
[read-only] [debug] Watches a variable of the stopped debuggee: it stops when the variable changes, optionally under a condition. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Variable to watch; a path reaches a component. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| condition | No | Stops only when this ABAP condition holds. | |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugDeleteBreakpointA
[read-only] [debug] Removes one breakpoint of a debug session by its id; the rest of the set stays armed. An id outside the session's set is refused. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. | |
| breakpoint_id | Yes | Breakpoint id. |
DebugDeleteWatchpointB
[read-only] [debug] Removes a watchpoint. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. | |
| watchpoint_id | Yes | Watchpoint id. |
DebugGetMemorySizesA
[read-only] [debug] Memory the stopped debuggee uses. Needs a stopped debuggee. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugGetStackA
[read-only] [debug] Call stack of the stopped debuggee of the debug session named by state_handle, each frame with its ADT object address and its technical place. Needs a stopped debuggee. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugGetVariablesA
[read-only] [debug] Variables of the stopped debuggee, by name or as members of a parent. Needs a stopped debuggee. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| names | No | Variables by name; a path reads a component or a table row. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| parents | No | Instead of names: members of these scopes, objects or tables. | |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugListBreakpointsB
[read-only] [debug] Breakpoints a debug session armed. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugListWatchpointsB
[read-only] [debug] Watchpoints of the stopped debuggee. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugSetBreakpointsA
[read-only] [debug] Adds breakpoints to a debug session — a line, an exception class, an ABAP statement or a message; a line breakpoint may carry a condition — and answers the whole set placed, this call's refusals each with its breakpoint and reason, earlier breakpoints that dropped out of the set, and any answer row left unpaired with a breakpoint. Its breakpoints are one set, shared by every IDE of the same SAP user (in user mode, debugging the same request user; in terminal mode, whatever its ids), and each change rewrites that set as a whole. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| breakpoints | Yes | Breakpoints: a line, an exception class, an ABAP statement or a message; a line breakpoint may carry a condition. | |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugSetSettingsA
[read-only] [debug] Changes the debugger settings at the current stop and answers the settings in force; a field left out keeps its value. The debug session applies them again after each later attach. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. | |
| background_rfc | No | Debugs background RFC calls. | |
| system_debugging | No | Steps into system programs and stops at breakpoints there. | |
| update_debugging | No | Debugs update tasks. | |
| create_exception_object | No | Creates the exception object even where a CATCH does not ask for it. | |
| shared_object_debugging | No | Debugs shared objects. |
DebugSetStackPositionA
[read-only] [debug] Selects the stack frame variables are read in; execution goes on from the same point. Needs a stopped debuggee. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| position | Yes | Frame position as the stack numbers it; the stopped frame has the highest position. | |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugSetVariableB
[read-only] [debug] Sets a variable of the stopped debuggee. Needs a stopped debuggee. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Variable to set; a path reaches a component. | |
| value | Yes | New value; converted to the type by the system. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugStartListenerA
[read-only] [debug] Opens a debug session: arms breakpoints, listens for a debuggee and attaches the first one caught; refused before anything is placed while another debugger listens for that user. Needs at least one breakpoint. Takes whose requests are caught, the debugging mode and the debugger settings. In user mode it catches every request of the request user (the connected SAP user, or the one named), from this server and from anywhere else. Its breakpoints are one set, shared by every IDE of the same SAP user (in user mode, debugging the same request user; in terminal mode, whatever its ids), and each change rewrites that set as a whole. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| run | No | A class (as a console application) or a report started in the background once listening; its outcome is reported as the end of the session. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| settings | No | Debugger settings, applied after each attach; a field left out keeps its value. | |
| breakpoints | Yes | Breakpoints, at least one: a line, an exception class, an ABAP statement or a message; a line breakpoint may carry a condition. | |
| request_user | No | User mode: the SAP user whose requests are caught; the connected user when omitted. Debugging another user's requests needs the debug authorization for that user. Not taken in terminal mode. | |
| debugging_mode | No | user (when omitted) catches the requests of the request user; terminal catches the requests that carry this debug session's ids and needs no configuration: the run it starts carries them, so without run it catches only requests carrying the same ids. |
DebugStepB
[read-only] [debug] Moves the stopped debuggee into a call, over it, out of the current one or on to the next stop; or leaves it running, the listener and the breakpoints kept, by detaching or by freeing the debugger. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | into enters the call, over runs it, return leaves the current one, continue runs to the next stop; detach lets the program run on, the listener and the breakpoints kept; release_debugger frees the debugger and the program runs on. detach and release_debugger apply to ABAP only. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugStepToLineB
[read-only] [debug] Runs or jumps the stopped debuggee to a line. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| line | Yes | For a line: the line in the object source. | |
| mode | Yes | run executes up to the line; jump moves there without executing what lies between. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| include | No | For a class: definitions, implementations, macros or testclasses; the main source when omitted. | |
| object_name | Yes | For a line: the object holding it. | |
| object_type | Yes | For a line: CLAS, PROG, INCL or FUNC. | |
| parent_name | No | For a function module: its function group. | |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugStopA
[read-only] [debug] Ends a debug session, ABAP and AMDP: releases a stopped debuggee, removes the breakpoints, stops listening, closes the connections and lets the kept answers of its debugger batch go; a part that failed to undo is reported and kept with the answers. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugTakeOverListenerA
[read-only] [debug] Opens a debug session: arms breakpoints, listens for a debuggee and attaches the first one caught. Displaces another debugger listening for the same user. Needs at least one breakpoint. Takes whose requests are caught, the debugging mode and the debugger settings. In user mode it catches every request of the request user (the connected SAP user, or the one named), from this server and from anywhere else. Its breakpoints are one set, shared by every IDE of the same SAP user (in user mode, debugging the same request user; in terminal mode, whatever its ids), and each change rewrites that set as a whole. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| run | No | A class (as a console application) or a report started in the background once listening; its outcome is reported as the end of the session. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| settings | No | Debugger settings, applied after each attach; a field left out keeps its value. | |
| breakpoints | Yes | Breakpoints, at least one: a line, an exception class, an ABAP statement or a message; a line breakpoint may carry a condition. | |
| request_user | No | User mode: the SAP user whose requests are caught; the connected user when omitted. Debugging another user's requests needs the debug authorization for that user. Not taken in terminal mode. | |
| debugging_mode | No | user (when omitted) catches the requests of the request user; terminal catches the requests that carry this debug session's ids and needs no configuration: the run it starts carries them, so without run it catches only requests carrying the same ids. |
DebugTerminateB
[read-only] [debug] Ends the stopped debuggee and its program where it stands. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DebugWaitA
[read-only] [debug] State of a debug session after waiting up to hold_seconds; a debugger that took the user over is an error carrying the system's message. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| hold_seconds | No | Longest wait for a change, at most 30 seconds. | |
| state_handle | Yes | Opaque handle identifying the server-held state this operation works on. |
DeleteBehaviorDefinitionA
Delete an ABAP behavior definition from the SAP system via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. | |
| behavior_definition_name | Yes | BehaviorDefinition name. |
DeleteBehaviorImplementationB
Delete an ABAP behavior implementation from the SAP system via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. | |
| behavior_implementation_name | Yes | BehaviorImplementation name. |
DeleteCdsUnitTestB
Deletes the CDS view test class named by class_name, with the ABAP Unit test classes it holds. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Test class of the CDS view. | |
| transport_request | No | Transport request, not a task. Required for a transportable object. |
DeleteClassB
Delete an ABAP class from the SAP system via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Class name. | |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. |
DeleteDataElementB
Delete an ABAP data element from the SAP system via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| data_element_name | Yes | Data element name. | |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. |
DeleteDdlA
Delete a DDL source from the SAP system via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| ddl_name | Yes | DDL source name. | |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. |
DeleteDomainA
Delete an ABAP domain from the SAP system via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| domain_name | Yes | Domain name. | |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. |
DeleteFunctionGroupB
Delete an ABAP function group from the SAP system via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. | |
| function_group_name | Yes | FunctionGroup name. |
DeleteFunctionIncludeA
Delete an ABAP function group include from the SAP system via ADT deletion API. Note: function module includes must be deleted via the Function Builder; the backend rejects such deletions. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| include_name | Yes | Include name. | |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. | |
| function_group_name | Yes | Function group name containing the include. |
DeleteFunctionModuleB
Delete an ABAP function module from the SAP system via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. | |
| function_group_name | Yes | FunctionGroup name containing the function module. | |
| function_module_name | Yes | FunctionModule name. |
DeleteInterfaceB
Delete an ABAP interface from the SAP system via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| interface_name | Yes | Interface name. | |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. |
DeleteLocalDefinitionsA
Delete local definitions from an ABAP class by clearing the definitions include. Manages lock, update, unlock, and optional activation. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Parent class name. | |
| transport_request | No | Transport request number, not a task. | |
| activate_on_delete | No | Activate parent class after deleting. Default: false |
DeleteLocalMacrosA
Delete local macros from an ABAP class by clearing the macros include. Manages lock, update, unlock, and optional activation. Note: Macros belong to older ABAP versions. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Parent class name. | |
| transport_request | No | Transport request number, not a task. | |
| activate_on_delete | No | Activate parent class after deleting. Default: false |
DeleteLocalTestClassA
Clears the local test classes include of the ABAP class named by class_name. The include is cleared under the class lock; with activate_on_delete the class is activated. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Parent class name. | |
| transport_request | No | Transport request number (required for transportable objects), not a task. | |
| activate_on_delete | No | Activate parent class after deleting test class. Default: false |
DeleteLocalTypesA
Delete local types from an ABAP class by clearing the implementations include. Manages lock, update, unlock, and optional activation. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Parent class name. | |
| transport_request | No | Transport request number, not a task. | |
| activate_on_delete | No | Activate parent class after deleting. Default: false |
DeleteMessageClassA
Delete an ABAP message class (MSAG) and all of its messages from the SAP system via ADT deletion API. Transport request required for transportable objects, optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| transport_request | No | Transport request number, not a task. Required for transportable objects, optional for local ones. | |
| message_class_name | Yes | Message class name. |
DeleteMessageClassMessageA
Remove one message (by number) from an ABAP message class (T100), keeping the class and its other messages. Transport request required for transportable objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| msgno | Yes | Message number to delete (e.g., "001"). | |
| transport_request | No | Transport request number, not a task. Required for transportable objects, optional for local ones. | |
| message_class_name | Yes | Parent message class name. |
DeleteMetadataExtensionB
Delete an ABAP metadata extension from the SAP system. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. | |
| metadata_extension_name | Yes | MetadataExtension name. |
DeletePackageA
Delete an ABAP package from the SAP system via ADT deletion API. Transport request optional for local objects. A package can be saved only once per ABAP session (PAK/058 "Package … is already locked" otherwise). The package tools of this server save a package on a session apart from this one, so a delete here works after them; for a package saved elsewhere through this connection, pass force_new_connection=true to delete from a new session, closed afterwards. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| package_name | Yes | Package name. | |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. | |
| force_new_connection | No | Force creation of a new connection (bypass cache). Useful when package was locked/unlocked and needs to be deleted in a fresh session. Default: false. |
DeleteProgramA
Delete an ABAP program from the SAP system via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| program_name | Yes | Program name. | |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. |
DeleteServiceBindingA
Delete ABAP service binding via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| response_format | No | Accepted for backward compatibility; no longer affects the answer, which is always the structured deletion result. | xml |
| transport_request | No | Optional transport request for deletion transport flow. | |
| service_binding_name | Yes | Service binding name to delete. |
DeleteServiceDefinitionA
Delete an ABAP service definition from the SAP system via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. | |
| service_definition_name | Yes | ServiceDefinition name. |
DeleteStructureB
Delete an ABAP structure from the SAP system via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| structure_name | Yes | Structure name. | |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. |
DeleteTableA
Delete an ABAP table from the SAP system via ADT deletion API. Transport request optional for local objects. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| table_name | Yes | Table name. | |
| transport_request | No | Transport request number, not a task. Required for transportable objects. Optional for local objects. |
DeleteUnitTestB
Deletes the ABAP Unit test classes of the ABAP class named by class_name. The class's local test classes are deleted, and the class stays. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Class that holds the tests. Must already exist. | |
| transport_request | No | Transport request, not a task. Required for a transportable object. |
DescribeByListA
[read-only] Describes each repository object named in objects, in one call: its type, description and package. Input: objects: Array<{ name: string, type?: string }>. Each object may be of type: PROG/P, FUGR, PROG/I, CLAS/OC, FUGR/FC, INTF/OI, TABLE, STRUCTURE, etc. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | Yes | ||
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. |
DiscardBackgroundRunB
[read-only] [runtime] Removes the kept answer of one of your finished background runs. Works on a finished run; a started run runs to its end. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| run_handle | Yes | The run_handle a run started with background=true answered. |
GetAbapASTA
[read-only] Parse ABAP code and return AST (Abstract Syntax Tree) in JSON format. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ABAP source code to parse |
GetAbapSemanticAnalysisA
[read-only] Perform semantic analysis on ABAP code and return symbols, types, scopes, and dependencies. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ABAP source code to analyze |
GetAbapSystemSymbolsA
[read-only] Resolve ABAP symbols from semantic analysis with SAP system information including types, scopes, descriptions, and packages. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ABAP source code to analyze and resolve symbols for | |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. |
GetAdtTypesA
[read-only] Retrieve all valid ADT object types (CLAS, TABL, PROG, DEVC, FUGR, INTF, DDLS, DTEL, DOMA, SRVD, SRVB, BDEF, DDLX, etc.) or validate a specific type name. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| validate_type | No | Type name to validate (optional) |
GetATCFindingsA
[read-only] Reads the findings of the ATC run whose worklist is named by worklist_id, for a run started with wait=true or wait=false. Answers each finding with the object, the source position, the priority, which check ran and what it said, plus how many objects were covered and the counts per priority. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| worklist_id | Yes | Worklist identifier an ATC run answered. |
GetATCRunStatusA
[read-only] Answers whether the ATC run named by run_id has ended (a run started with wait=false answers its run_id). Answers the status the server reports and whether it is finished — finished means ended, whatever the checks found. The run's findings are read by its worklist_id. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | Run identifier an ATC run started with wait=false answered. |
GetBackgroundRunA
[read-only] [runtime] Reads one of your background runs by its run_handle: running, or finished with what the run tool answered (the system answer as it is, an error included). A read keeps the run; a finished run is kept until you discard it. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| run_handle | Yes | The run_handle a run started with background=true answered. |
GetBehaviorDefinitionA
[read-only] Reads the RAP behavior definition named by behavior_definition_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). | source |
| version | No | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| behavior_definition_name | Yes | BehaviorDefinition name. |
GetBehaviorDefinitionVersionDiffA
[read-only] Compares the two RAP behavior definition versions named by content_uri_from and content_uri_to, entries of its version history: answers the unified diff of their sources. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri_to | Yes | Opaque content_uri of the NEW/compare version, from the RAP behavior definition's version history. | |
| content_uri_from | Yes | Opaque content_uri of the OLD/base version, from the RAP behavior definition's version history. |
GetBehaviorDefinitionVersionsA
[read-only] Lists the version history of the RAP behavior definition named by behavior_definition_name: each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and the opaque content_uri that names the version's source. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| behavior_definition_name | Yes | RAP behavior definition name. |
GetBehaviorDefinitionVersionSourceA
[read-only] Reads the source of the RAP behavior definition version named by content_uri, an entry of the RAP behavior definition's version history. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri | Yes | Opaque content_uri of a version, from the RAP behavior definition's version history. |
GetBehaviorImplementationA
[read-only] Reads the RAP behavior implementation (its class) named by behavior_implementation_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). | source |
| version | No | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| behavior_implementation_name | Yes | BehaviorImplementation name. |
GetClassA
[read-only] Reads the ABAP class named by class_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). | source |
| version | No | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| class_name | Yes | Class name. |
GetClassVersionDiffA
[read-only] Compares the two ABAP class versions named by content_uri_from and content_uri_to, entries of its version history: answers the unified diff of their sources. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri_to | Yes | Opaque content_uri of the NEW/compare version, from the ABAP class's version history. | |
| content_uri_from | Yes | Opaque content_uri of the OLD/base version, from the ABAP class's version history. |
GetClassVersionsA
[read-only] Lists the version history of the ABAP class named by class_name: each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and the opaque content_uri that names the version's source. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| class_name | Yes | ABAP class name. |
GetClassVersionSourceA
[read-only] Reads the source of the ABAP class version named by content_uri, an entry of the ABAP class's version history. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri | Yes | Opaque content_uri of a version, from the ABAP class's version history. |
GetDataElementA
[read-only] Reads the ABAP data element named by data_element_name in one request: its ADT metadata document (definition, package, description). Returns it under metadata, with part: "metadata". Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version to read: "active" (default) for deployed version, "inactive" for modified but not activated version. | active |
| data_element_name | Yes | Data element name. |
GetDdlA
[read-only] Reads the CDS view (or classic DDL view) named by ddl_name in one request: its DDL source (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). | source |
| version | No | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| ddl_name | Yes | DDL source name. |
GetDdlVersionDiffA
[read-only] Compares the two CDS view (DDL source) versions named by content_uri_from and content_uri_to, entries of its version history: answers the unified diff of their sources. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri_to | Yes | Opaque content_uri of the NEW/compare version, from the CDS view (DDL source)'s version history. | |
| content_uri_from | Yes | Opaque content_uri of the OLD/base version, from the CDS view (DDL source)'s version history. |
GetDdlVersionsA
[read-only] Lists the version history of the CDS view (DDL source) named by ddl_name: each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and the opaque content_uri that names the version's source. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| ddl_name | Yes | CDS view (DDL source) name. |
GetDdlVersionSourceA
[read-only] Reads the source of the CDS view (DDL source) version named by content_uri, an entry of the CDS view (DDL source)'s version history. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri | Yes | Opaque content_uri of a version, from the CDS view (DDL source)'s version history. |
GetDomainA
[read-only] Reads the ABAP domain named by domain_name in one request: its ADT metadata document (definition, package, description). Returns it under metadata, with part: "metadata". Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version to read: "active" (default) for deployed version, "inactive" for modified but not activated version. | active |
| domain_name | Yes | Domain name. |
GetEnhancementImplA
[read-only] Retrieve source code of a specific enhancement implementation by its name and enhancement spot. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| enhancement_name | Yes | [read-only] Name of the enhancement implementation | |
| enhancement_spot | Yes | Name of the enhancement spot |
GetEnhancementsB
[read-only] Lists the enhancements (enhancement implementations) of the program, include, function group or class named by object_name and object_type. Takes object_name and object_type (one object: its enhancements) or objects (several objects: one entry per object, in the order given, each its enhancements answer or { object_name, object_type, error }). When object_type is one of CLASS, CLAS, CLAS/OC, FUNCTION_GROUP, FUNCTIONGROUP, FUGR, FUGR/F, PROGRAM, PROG, PROG/P and include_nested is any value but true, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | [read-only] Several objects, read together (give this or object_name and object_type) | |
| object_name | No | Name of the ABAP object (with object_type; or give objects) | |
| object_type | No | [read-only] Type of the ABAP object |
GetEnhancementSpotA
[read-only] Retrieve metadata and list of implementations for a specific enhancement spot. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| enhancement_spot | Yes | Name of the enhancement spot |
GetFunctionGroupA
[read-only] Reads the ABAP function group named by function_group_name in one request: its ADT metadata document (package, description, contents). Returns it under metadata, with part: "metadata". Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version to read: "active" (default) for deployed version, "inactive" for modified but not activated version. | active |
| function_group_name | Yes | FunctionGroup name. |
GetFunctionIncludeA
[read-only] Reads the include named by include_name of the ABAP function group named by function_group_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata"). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). | source |
| version | No | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| include_name | Yes | Include name. | |
| function_group_name | Yes | Function group containing the include. |
GetFunctionModuleA
[read-only] Reads the ABAP function module named by function_module_name, BAPI or RFC-enabled ones included, in the function group named by function_group_name, in one request: its source code, which declares the parameter signature (part "source", the default; active or inactive version), or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). | source |
| version | No | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| function_group_name | Yes | Function group containing the function module. | |
| function_module_name | Yes | Function module name. |
GetFunctionModuleVersionDiffA
[read-only] Compares the two ABAP function module versions named by content_uri_from and content_uri_to, entries of its version history: answers the unified diff of their sources. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri_to | Yes | Opaque content_uri of the NEW/compare version, from the ABAP function module's version history. | |
| content_uri_from | Yes | Opaque content_uri of the OLD/base version, from the ABAP function module's version history. |
GetFunctionModuleVersionsA
[read-only] Lists the version history of the ABAP function module named by function_module_name: each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and the opaque content_uri that names the version's source. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| function_group_name | Yes | Owning function group name (required). | |
| function_module_name | Yes | ABAP function module name. |
GetFunctionModuleVersionSourceA
[read-only] Reads the source of the ABAP function module version named by content_uri, an entry of the ABAP function module's version history. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri | Yes | Opaque content_uri of a version, from the ABAP function module's version history. |
GetInactiveObjectsA
[read-only] Get a list of inactive ABAP objects — modified and pending activation. Shows classes, tables, CDS views, and other objects awaiting activation. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
GetIncludeA
[read-only] Read ANY single ABAP include source by name, from anywhere in the repository (an include may live outside any single program tree). Reads includes (PROG/I) by name. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| include_name | Yes | Name of the ABAP Include |
GetIncludesListA
[read-only] Recursively discover and list ALL include files within an ABAP program or include. Takes object_name and object_type (one object: its tree) or objects (several objects: one entry per object, in the order given, each { object_name, object_type, tree } or { object_name, object_type, error }). Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | [read-only] Several objects, read together (give this or object_name and object_type) | |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| detailed | No | [read-only] If true, returns structured JSON with metadata and raw XML. | |
| object_name | No | Name of the ABAP program or include (with object_type; or give objects) | |
| object_type | No | [read-only] ADT object type of the parent. Only these four values are supported: 'PROG/P' (program), 'PROG/I' (include), 'FUGR' (function group), 'CLAS/OC' (class). Any other value is rejected by the schema. |
GetInterfaceA
[read-only] Reads the ABAP interface named by interface_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). | source |
| version | No | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| interface_name | Yes | Interface name. |
GetInterfaceVersionDiffA
[read-only] Compares the two ABAP interface versions named by content_uri_from and content_uri_to, entries of its version history: answers the unified diff of their sources. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri_to | Yes | Opaque content_uri of the NEW/compare version, from the ABAP interface's version history. | |
| content_uri_from | Yes | Opaque content_uri of the OLD/base version, from the ABAP interface's version history. |
GetInterfaceVersionsA
[read-only] Lists the version history of the ABAP interface named by interface_name: each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and the opaque content_uri that names the version's source. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| interface_name | Yes | ABAP interface name. |
GetInterfaceVersionSourceA
[read-only] Reads the source of the ABAP interface version named by content_uri, an entry of the ABAP interface's version history. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri | Yes | Opaque content_uri of a version, from the ABAP interface's version history. |
GetLocalDefinitionsA
[read-only] Reads the local definitions include (the definitions include) of the ABAP class named by class_name, active or inactive version. Returns { class_name, version, part: 'source', source }. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version to read: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| class_name | Yes | Parent class name. |
GetLocalMacrosA
[read-only] Reads the local macros include of the ABAP class named by class_name, active or inactive version. Returns { class_name, version, part: 'source', source }. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version to read: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| class_name | Yes | Parent class name. |
GetLocalTestClassA
[read-only] Reads the local test classes include of the ABAP class named by class_name, active or inactive version. Returns { class_name, version, part: 'source', source }. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version to read: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| class_name | Yes | Parent class name. |
GetLocalTypesA
[read-only] Reads the local types include (the implementations include) of the ABAP class named by class_name, active or inactive version. Returns { class_name, version, part: 'source', source }. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version to read: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| class_name | Yes | Parent class name. |
GetMessageClassA
[read-only] Reads the ABAP message class (MSAG/T100) named by message_class_name in one request: its ADT metadata document (XML: name, description, package, master language, messages). Returns it under metadata, with part: "metadata". Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| message_class_name | Yes | Message class name. |
GetMessageClassMessageA
[read-only] Reads the message numbered msgno of the ABAP message class (MSAG/T100) named by message_class_name in one request. Answers the one message under message: its number (msgno), text (msgtext), self-explanatory flag (selfexplainatory), long-text flag (documented), last changer (lastchangedby), change time (lastmodified), and every other field the system gives the message. A number absent from the class is refused as missing. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| msgno | Yes | Message number (e.g., "001"). | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| message_class_name | Yes | Parent message class name. |
GetMetadataExtensionA
[read-only] Reads the CDS metadata extension named by metadata_extension_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). | source |
| version | No | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| metadata_extension_name | Yes | MetadataExtension name. |
GetMetadataExtensionVersionDiffA
[read-only] Compares the two CDS metadata extension versions named by content_uri_from and content_uri_to, entries of its version history: answers the unified diff of their sources. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri_to | Yes | Opaque content_uri of the NEW/compare version, from the CDS metadata extension's version history. | |
| content_uri_from | Yes | Opaque content_uri of the OLD/base version, from the CDS metadata extension's version history. |
GetMetadataExtensionVersionsA
[read-only] Lists the version history of the CDS metadata extension named by metadata_extension_name: each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and the opaque content_uri that names the version's source. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata_extension_name | Yes | CDS metadata extension name. |
GetMetadataExtensionVersionSourceA
[read-only] Reads the source of the CDS metadata extension version named by content_uri, an entry of the CDS metadata extension's version history. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri | Yes | Opaque content_uri of a version, from the CDS metadata extension's version history. |
GetObjectInfoA
[read-only] Returns the object tree of the package (DEVC), class (CLAS), program (PROG), function group (FUGR) or other object named by parent_type and parent_name. Shows root, group nodes, and terminal leaves up to maxDepth. With enrich=true each node also carries its description and package, from a repository search. Takes parent_type and parent_name (one object: its tree) or objects (several objects: one tree per object, in the order given; a failed one as { OBJECT_TYPE, OBJECT_NAME, error }). Read in ADT batch envelopes: per tier the root node structures of its nodes, then their type nodes; with enrich, the search of every node last. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| enrich | No | [read-only] Whether to add description and package via SearchObject (default true) | |
| objects | No | [read-only] Several objects, read together (give this or parent_type and parent_name) | |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| maxDepth | No | [read-only] Maximum tree depth (default depends on type). Every object's own type folders and their contents are always shown (one tier); a higher value only descends further for PACKAGES, expanding nested subpackages that many tiers deep — no captured node-structure document shows a non-package object usefully recursable beyond its own type folders, so other object types are capped at one tier regardless of a higher value here. | |
| parent_name | No | [read-only] Parent object name | |
| parent_type | No | [read-only] Parent object type (e.g. DEVC/K, CLAS/OC, PROG/P); with parent_name, or give objects | |
| include_descriptions | No | [read-only] Include each leaf's description. Where the system serves ADT batch, each description is read from the leaf's metadata: one more read per leaf, which on a large tree takes most of the call (default false) |
GetObjectNodeFromCacheB
[read-only] Returns a node from the in-memory objects list cache by OBJECT_TYPE, OBJECT_NAME, TECH_NAME, and expands OBJECT_URI if present. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| tech_name | Yes | [read-only] Technical name | |
| object_name | Yes | [read-only] Object name | |
| object_type | Yes | [read-only] Object type |
GetObjectsByTypeB
[read-only] Lists the objects of one type (classes, tables, programs, interfaces, etc.), the type whose node in the object tree is named by node_id, under the package or composite object named by parent_name, parent_tech_name and parent_type. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | [read-only] Output format: 'parsed' (default). 'raw' is accepted for backward compatibility but answers the same parsed text — see the note on `nodeLevel` below. | |
| node_id | Yes | [read-only] Node ID | |
| parent_name | Yes | [read-only] Parent object name | |
| parent_type | Yes | [read-only] Parent object type | |
| parent_tech_name | Yes | [read-only] Parent technical name | |
| with_short_descriptions | No | [read-only] Include short descriptions |
GetObjectsListA
[read-only] Recursively lists every child repository object of the program (PROG), function group (FUGR), class (CLAS), package (DEVC) or other composite object named by parent_name, parent_tech_name and parent_type, nested includes and subcomponents included. Takes parent_name, parent_tech_name and parent_type (one parent: its list) or objects (several parents: one entry per parent, in the order given, each { parent_name, parent_type, total_objects, objects } or { parent_name, parent_type, error }). Each level of the node tree is read in one ADT batch envelope. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | [read-only] Several parents, read together (give this or parent_name) | |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| parent_name | No | [read-only] Parent object name (with parent_tech_name and parent_type; or give objects) | |
| parent_type | No | [read-only] Parent object type (e.g. PROG/P, FUGR) | |
| parent_tech_name | No | [read-only] Parent technical name | |
| with_short_descriptions | No | [read-only] Include short descriptions (default: true) |
GetObjectStructureA
[read-only] Returns the ADT structure of the repository object named by objecttype and objectname as a compact JSON tree. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| objectname | Yes | ADT object name (e.g. /CBY/ACQ_DDL) | |
| objecttype | Yes | ADT object type (e.g. DDLS/DF) |
GetObjectVersionDiffA
[read-only] Compares the two object versions named by content_uri_from and content_uri_to, entries of an object's version history, for the object type named by object_type: returns the unified diff (jsdiff) of their sources. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| object_type | Yes | Object type (the same value the version history was read with). | |
| content_uri_to | Yes | Opaque content_uri of the NEW/compare version (from the object's version history). | |
| content_uri_from | Yes | Opaque content_uri of the OLD/base version (from the object's version history). |
GetObjectVersionsA
[read-only] Lists the version history of the class, program, interface, function module, table, structure, CDS view, behavior definition or metadata extension named by object_name and object_type. Returns each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and the opaque content_uri that names the version's source. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes | Object name. | |
| object_type | Yes | Object type. | |
| function_group_name | No | Owning function group name. Required when object_type is function_module. |
GetObjectVersionSourceB
[read-only] Reads the source code of the object version named by content_uri, an entry of an object's version history, for the object type named by object_type. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri | Yes | Opaque content_uri of a version, from the object's version history. | |
| object_type | Yes | Object type (the same value the version history was read with). |
GetPackageA
[read-only] Reads the ABAP package named by package_name in one request: its ADT metadata document (description, super-package, sub-packages, ...), active or inactive version. Returns it under metadata, with part: "metadata": a summary, the details or the document as SAP sent it, per detail. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| version | No | Version to read: "active" (default) for deployed version, "inactive" for modified but not activated version. | active |
| package_name | Yes | Package name. |
GetPackageContentsA
[read-only] Retrieve objects inside an ABAP package as a flat list. Supports recursive traversal of subpackages. Takes package_name (one package: its list) or package_names (several packages: one entry per package, in the order given, each { package_name, objects } or { package_name, error }). Each level of the walk is read in one ADT batch envelope: the root node structures of its packages, then their type nodes; with include_descriptions, as single requests, several at a time. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| max_depth | No | Maximum depth for recursive package traversal (default: 5) | |
| package_name | No | Name of the ABAP package (give this or package_names) | |
| package_names | No | Names of several ABAP packages, read together (give this or package_name) | |
| include_subpackages | No | Include contents of subpackages recursively (default: false) | |
| include_descriptions | No | Include each object's description in the response. The walk's levels are then read as single requests, several at a time, rather than in ADT batch envelopes (default: false) |
GetPackageTreeA
[read-only] Returns the complete tree of the ABAP package named by package_name: its subpackages and objects. Returns hierarchical tree with object names, types, and descriptions. Takes package_name (one package: its tree) or package_names (several packages: one entry per package, in the order given, each { package_name, tree, metadata } or { package_name, error }). Read in ADT batch envelopes: the package metadata with the root node structure, then each level of the walk; with include_descriptions, as single requests, several at a time. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| debug | No | Include diagnostic metadata in response (counts, types, hierarchy info). Default: false | |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| max_depth | No | Maximum depth for recursive package traversal. Default: 5 | |
| package_name | No | Package name (give this or package_names) | |
| package_names | No | Several package names, read together (give this or package_name) | |
| include_subpackages | No | Include subpackages recursively in the tree. If false, subpackages are shown as first-level objects but not recursively expanded. Default: true | |
| include_descriptions | No | Include each object's description in the response. The package metadata and the walk's levels are then read as single requests, several at a time, rather than in ADT batch envelopes. Default: false |
GetProgramA
[read-only] Reads the ABAP program (report) named by program_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). | source |
| version | No | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| program_name | Yes | Program name. |
GetProgramVersionDiffA
[read-only] Compares the two ABAP program versions named by content_uri_from and content_uri_to, entries of its version history: answers the unified diff of their sources. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri_to | Yes | Opaque content_uri of the NEW/compare version, from the ABAP program's version history. | |
| content_uri_from | Yes | Opaque content_uri of the OLD/base version, from the ABAP program's version history. |
GetProgramVersionsA
[read-only] Lists the version history of the ABAP program named by program_name: each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and the opaque content_uri that names the version's source. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| program_name | Yes | ABAP program name. |
GetProgramVersionSourceA
[read-only] Reads the source of the ABAP program version named by content_uri, an entry of the ABAP program's version history. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri | Yes | Opaque content_uri of a version, from the ABAP program's version history. |
GetServiceBindingA
[read-only] Reads the OData service binding named by service_binding_name in one request: its binding document (part "source", the default) or its ADT metadata document (part "metadata": package, responsible, description), each in the response_format given. Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). | source |
| response_format | No | Preferred response format. "json" requests JSON from endpoint, "xml" parses XML payload, "plain" returns raw text. | xml |
| service_binding_name | Yes | Service binding name. Case-insensitive. |
GetServiceBindingPreviewUrlA
[read-only] Build the browser URL that previews a published service binding, and the service and $metadata URLs beside it. Answers: "open the service in a browser", "preview this service binding", "what is the OData URL of this binding". Reads the binding for the service, version and protocol, and the service definition for the entity sets; the preview URL needs an entity set, and the answer names what is missing. A Web API binding answers the service URLs alone. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| client | No | Client for the sap-client parameter. Omitted, the client the system reports is used; an empty string leaves the parameter out. | |
| language | No | Logon language for the preview. Omitted, the language the system reports is used. | |
| entity_set | No | Entity set to open. Omitted, the first one the service definition exposes is used. | |
| navigation | No | Association or composition to follow. Omitted, the first one of the exposed root view is used. | |
| target_entity_set | No | Entity set the navigation reaches. Omitted, the second exposed entity set is used. | |
| service_binding_name | Yes | Service binding name. |
GetServiceDefinitionA
[read-only] Reads the service definition named by service_definition_name in one request: its source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). | source |
| version | No | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| service_definition_name | Yes | ServiceDefinition name. |
GetSqlQueryA
[read-only] Execute ABAP SQL SELECT queries on database tables and CDS views via SAP ADT Data Preview API. Use for ad-hoc data retrieval, row counts, and filtered queries. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| sql_query | Yes | SQL query to execute | |
| row_number | No | [read-only] Maximum number of rows to return |
GetStructureA
[read-only] Reads the ABAP structure named by structure_name in one request: its definition with its fields, as source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). | source |
| version | No | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| structure_name | Yes | Structure name. |
GetStructuresListA
[read-only] Recursively list the structures embedded in an ABAP structure (.INCLUDE / append), as a tree. Takes structure_name (one structure: its tree) or structure_names (several structures: one entry per structure, in the order given, each its tree answer or { structure_name, error }). Works on BASIS 7.50 and later, where the DDIC structure/table endpoints it reads exist; legacy systems (BASIS < 7.50) refuse it (issue #207). Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| version | No | Version to read: "active" (default) or "inactive". | active |
| structure_name | No | Structure name (or give structure_names). | |
| structure_names | No | Several structure names, read together (give this or structure_name). | |
| include_extensions | No | [read-only] Also find extension (append) structures via where-used (objects that `extend type <this> with …`). Default true. Set false to skip the (slower) where-used lookups and return includes only. |
GetStructureVersionDiffA
[read-only] Compares the two ABAP structure versions named by content_uri_from and content_uri_to, entries of its version history: answers the unified diff of their sources. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri_to | Yes | Opaque content_uri of the NEW/compare version, from the ABAP structure's version history. | |
| content_uri_from | Yes | Opaque content_uri of the OLD/base version, from the ABAP structure's version history. |
GetStructureVersionsA
[read-only] Lists the version history of the ABAP structure named by structure_name: each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and the opaque content_uri that names the version's source. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| structure_name | Yes | ABAP structure name. |
GetStructureVersionSourceA
[read-only] Reads the source of the ABAP structure version named by content_uri, an entry of the ABAP structure's version history. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri | Yes | Opaque content_uri of a version, from the ABAP structure's version history. |
GetTableA
[read-only] Reads the ABAP database table named by table_name in one request: its definition with its fields, as source code (part "source", the default; active or inactive version) or its ADT metadata document (part "metadata": package, responsible, description). Returns the part read. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | The document to read: "source" (default) the source code, "metadata" the ADT metadata document (package, responsible, description, ...). | source |
| version | No | Version of the source: "active" (default) for the deployed version, "inactive" for the modified version awaiting activation. | active |
| table_name | Yes | Table name. |
GetTableContentsA
[read-only] Reads the contents (data preview, like SE16/SE16N) of the ABAP database table or CDS view named by table_name: every column, up to max_rows rows (default 100). Answers sql_query, row_number (the max_rows asked), execution_time, total_rows (the rows the table or view holds), columns and rows. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| max_rows | No | Maximum number of rows to retrieve | |
| table_name | Yes | Name of the ABAP table |
GetTableVersionDiffA
[read-only] Compares the two ABAP table versions named by content_uri_from and content_uri_to, entries of its version history: answers the unified diff of their sources. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri_to | Yes | Opaque content_uri of the NEW/compare version, from the ABAP table's version history. | |
| content_uri_from | Yes | Opaque content_uri of the OLD/base version, from the ABAP table's version history. |
GetTableVersionsA
[read-only] Lists the version history of the ABAP table named by table_name: each version with its versionId, author, updatedAt, title, the transportRequest (and transportDescription) that produced it when available, and the opaque content_uri that names the version's source. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | Yes | ABAP table name. |
GetTableVersionSourceA
[read-only] Reads the source of the ABAP table version named by content_uri, an entry of the ABAP table's version history. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| content_uri | Yes | Opaque content_uri of a version, from the ABAP table's version history. |
GetTransactionA
[read-only] Reads the properties of the ABAP transaction (t-code) named by transaction_name in one request. Answers the transaction under object (name, text, type, package) and its facets under properties, in the order the system gives them — the application component chain, the package chain, type, owner, language, creation and the others the system names — each entry with its facet, name, displayName and text. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| transaction_name | Yes | Name of the ABAP transaction |
GetTransportA
[read-only] Retrieve ABAP transport request information including metadata, included objects, and status from SAP system. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| include_tasks | No | Include list of tasks in transport (default: true) | |
| include_objects | No | Include list of objects in transport (default: true) | |
| transport_number | Yes | Transport request number, not a task |
GetTypeInfoA
[read-only] Retrieve ABAP type information for a DDIC type name: data elements (DTEL), domains (DOMA), structures and table types. One name can be more than one type (MANDT is a data element and a domain): the answer lists every type the name is, in alphabetical order of type, each with its definition — data type, length and decimals, field labels, a domain's output format, value table and fixed values, a table type's row type and key. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| type_name | Yes | Name of the ABAP type | |
| include_structure_fallback | No | When true (default), the name is also read as a DDIC structure; false leaves the structure read out. |
GetUnitTestResultA
[read-only] Reads the result of the ABAP Unit test run named by run_id, for a run still running when its start answered. Waits for it within a bound. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| run_id | Yes | Run id a unit test run answered. |
GetWhereUsedA
[read-only] Lists where the object named by object_name and object_type is used — a class, interface, program, include, function group, function module (BAPI included), package, table, structure, domain, data element or CDS DDL source: every object that uses, calls or references it, with its type and package. Takes object_name and object_type (one object: its list) or objects (several objects: one entry per object, in the order given, each its list or { object_name, object_type, error }). Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. When enable_all_types is any value but true and enable_only_types is absent and disable_types is absent and objects is absent, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | Several objects, read together (give this or object_name and object_type). The type filters apply to every object. | |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| object_name | No | Name of the ABAP object (with object_type; or give objects). For function modules the name MUST be in the form 'GROUP|FM_NAME' (function group name, pipe, function module name). | |
| object_type | No | Type of the ABAP object. Case-insensitive. Accepts either a human alias or an ADT type code. Supported values: 'class' / 'clas/oc', 'interface' / 'intf/if', 'program' / 'prog/p', 'include', 'function' / 'functiongroup' / 'fugr' (function group), 'functionmodule' / 'function_module' / 'fugr/ff' (function module — see object_name format), 'package' / 'devc/k', 'table' / 'tabl/dt', 'structure' / 'stru/dt', 'domain' / 'doma/dd', 'dataelement' / 'dtel', 'view' / 'ddls/df' (CDS DDL source). | |
| disable_types | No | Remove these ADT object types from the default scope, keeping the rest (e.g. ['CLAS/OC'] to drop class usages). Applied on top of the default scope or of enable_only_types/enable_all_types. | |
| enable_all_types | No | If true, expands the scope to all available object types (Eclipse 'select all' behavior) by flipping every isSelected flag in the scope XML. Default: false (SAP default scope). Note: on large systems this can make the search significantly slower. | |
| enable_only_types | No | Restrict the search to ONLY these ADT object types (e.g. ['TABL/DS','TABL/DT'] for structures, ['DDLS/DF'] for CDS sources). SAP applies the selection server-side, so unwanted types (e.g. hundreds of CLAS/OC) are never searched nor returned — use this instead of enable_all_types to avoid huge result sets. Values must be object-type codes from THIS object's where-used scope (the searchable categories, e.g. 'CLAS/OC','INTF/OI','FUGR/FF','DDLS/DF', not result-row codes like 'FUGR/F'). If any value is not searchable for the object the call returns an error listing the supported types — it never falls back to the unfiltered default set. Takes precedence over enable_all_types. |
ListBackgroundRunsA
[read-only] [runtime] Lists your background runs: run_handle, tool, object, when it started, and running or finished. A run's output is read by its run_handle. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
ListFunctionGroupIncludesA
[read-only] List the includes (TOP, custom) of an ABAP function group. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| function_group_name | Yes | Function group name. |
ListFunctionModulesA
[read-only] List the function modules of an ABAP function group. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| function_group_name | Yes | Function group name. |
ListLeftoverSessionsA
[read-only] [session] Lists the SAP sessions of this server's destination that an ended server process left open (it was killed before it could log them off), with the locks they may hold: handle, role (built: an instance connection; debugger: a debug session connection), destination, user (absent for a token login) and when it was last recorded. Read from the session records alone, on this machine. Only sessions of ended processes are listed. Log one off by its handle. A server process that starts while exactly one instance session (built) of its destination is left is born on it, before any tool call; with several, all stay here, untaken. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
ListServiceBindingTypesA
[read-only] Lists the available service binding types (for example ODataV2/ODataV4) from the ADT Business Services endpoint, in the response_format given. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Shape of the answer: the document as the server sent it, the same parsed, or a flat list of the type names. | xml |
ListTransportsA
[read-only] List transport requests for the current or specified user. Returns modifiable and/or released workbench and customizing requests. user and modifiable-only are both applied client-side, over every request the server's default search configuration answers; ADT receives the default search alone. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | The user to filter to: an SAP user id (matched in upper case); applied client-side. If not provided, defaults to the current session user, so an unfiltered call already answers only that user's transports. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| modifiable_only | No | Only return modifiable (not yet released) transports; applied client-side. Default: true. |
LogoffLeftoverSessionA
[read-only] [session] Logs off a leftover SAP session (any role): the session ends, and every lock it holds is released. Only the logoff is sent, credential-free. The session record is deleted afterwards. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | The handle of a leftover session, as the list of leftover sessions answers it. |
MemorySnapshotDeltaA
[read-only] [debug] Two memory snapshots compared in a view: memory by kind, largest objects, an object's children or its referrers. Needs the memory snapshot authorization. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Object key, for children and references. | |
| view | No | overview: memory by kind; ranking: the largest objects; children: what an object holds; references: what holds an object. | overview |
| to_id | Yes | Snapshot id to compare to. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| from_id | Yes | Snapshot id to compare from. | |
| max_objects | No | Objects in a ranking, children or references answer. |
MemorySnapshotGetA
[read-only] [debug] One memory snapshot in a view: header, memory by kind, largest objects, an object's children or its referrers. Needs the memory snapshot authorization. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Object key, for children and references. | |
| view | No | header: the snapshot; overview: memory by kind; ranking: the largest objects; children: what an object holds; references: what holds an object. | overview |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| max_objects | No | Objects in a ranking, children or references answer. | |
| snapshot_id | Yes | Snapshot id. |
MemorySnapshotListA
[read-only] [debug] Memory snapshots the system lists. Empty when the user lacks the memory snapshot authorization. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | Only the snapshots of this SAP user. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
MoveTransportObjectsA
Moves the object entries named by objects from the transport task named by transport_number to the task named by target_number. Each entry is named by its position in the source task's object list. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| objects | Yes | The entries to move, at least one — each with object_name, object_type, position (in the source task) and an optional pgmid. | |
| target_number | Yes | Number of the transport task the entries move to. | |
| transport_number | Yes | Number of the transport task that holds the entries. |
ReadTransportActionLogA
[read-only] Reads the action log of the transport request named by transport_number: one entry per lifecycle event — created, object added, object deleted, owner changed. It confirms that an object entry was taken out of the request, since a removal answers by echoing what it was asked. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| transport_number | Yes | Transport REQUEST or TASK number. A request answers its own lifecycle events; a task answers the events of the objects on it. |
ReadTransportObjectsA
[read-only] Lists the objects the transport request or task named by transport_number holds, each with its position, which a removal of the entry names. A task answers its own entries; a request answers every task's entries, each once, with its task number and position — the task a removal addresses. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| transport_number | Yes | Transport REQUEST or TASK number. A task answers its own entries; a request answers the entries of each of its tasks, each with its `task` number — the task a removal addresses. |
RemoveTransportObjectA
Removes the entry of the object named by object_name and object_type from the transport task named by transport_number, at position. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| pgmid | No | Program id. Defaults to R3TR, a workbench object's. | R3TR |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| position | Yes | Position of the object's entry in the task's object list. | |
| object_name | Yes | Object name. | |
| object_type | Yes | Object-directory type — CLAS, FUGR, TABL, DOMA — not an ADT type code like CLAS/OC. | |
| transport_number | Yes | Number of the transport task that holds the entry. |
RunATCA
[read-only] Runs the ABAP Test Cockpit (ATC) checks of the check variant named by check_variant over the objects named by objects. Creates a worklist for the check variant, then starts the run. Answers worklist_id always — the run's findings are read by it, for either value of wait. With wait=false it also answers run_id, which the run's status is read by; with wait=true the server holds the request until the checks finish and answers the finding counts. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | Hold the request until the checks finish and answer the finding counts. Default false: the run starts and answers a run_id to poll. | |
| objects | Yes | The objects to check. One run may cover several; each needs a name and a type. | |
| max_findings | No | Cap on findings the run records (maximumVerdicts). A whole number, at least 1. Default 100. | |
| check_variant | No | ATC check variant. Omitted, the system's own default variant is used. |
RunCdsUnitTestA
[read-only] Runs the ABAP Unit tests of the CDS view test class named by class_name and returns the result. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Test class of the CDS view. |
RunFunctionGroupUnitTestA
[read-only] Runs every ABAP Unit test of the function group named by function_group_name and returns the result. runner async (default): the run is started and waited for within a bound, and a run that outlasts it returns its run_id, whose status and result are read by run_id; suited to long suites. runner sync: one request that returns the finished result. When runner is sync, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Which tests the run covers, sent with either runner. Foreign tests are test classes linked to the object by an ABAP Doc @testing relation (a function module's tests are often linked so). With runner sync they execute only with foreign_tests true: with the defaults (foreign_tests false, add_foreign_tests_as_preview true) SAP lists them as a preview, unexecuted. Runner async executes them with the defaults as well. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| runner | No | async (default): starts the run, waits for it within a bound and returns the result, or the run_id of a run that outlasts the bound, whose status and result are read by run_id; suited to long suites. sync: one request that returns the finished result. | async |
| function_group_name | Yes | Function group whose tests run. |
RunFunctionModuleUnitTestA
[read-only] Runs the ABAP Unit tests of the function module named by function_module_name and returns the result. runner async (default): the run is started and waited for within a bound, and a run that outlasts it returns its run_id, whose status and result are read by run_id; suited to long suites. runner sync: one request, addressed by function_group_name and function_module_name, that returns the finished result of every test of the module's function group. When runner is sync and function_group_name is given, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Which tests the run covers, sent with either runner. Foreign tests are test classes linked to the object by an ABAP Doc @testing relation (a function module's tests are often linked so). With runner sync they execute only with foreign_tests true: with the defaults (foreign_tests false, add_foreign_tests_as_preview true) SAP lists them as a preview, unexecuted. Runner async executes them with the defaults as well. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| runner | No | async (default): starts the run, waits for it within a bound and returns the result, or the run_id of a run that outlasts the bound, whose status and result are read by run_id; suited to long suites. sync: one request that returns the finished result. | async |
| function_group_name | No | Function group holding the function module; required by runner sync. | |
| function_module_name | Yes | Function module whose tests run. |
RunProgramUnitTestA
[read-only] Runs the ABAP Unit tests of the report named by program_name and returns the result. runner async (default): the run is started and waited for within a bound, and a run that outlasts it returns its run_id, whose status and result are read by run_id; suited to long suites. runner sync: one request that returns the finished result. When runner is sync, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Which tests the run covers, sent with either runner. Foreign tests are test classes linked to the object by an ABAP Doc @testing relation (a function module's tests are often linked so). With runner sync they execute only with foreign_tests true: with the defaults (foreign_tests false, add_foreign_tests_as_preview true) SAP lists them as a preview, unexecuted. Runner async executes them with the defaults as well. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| runner | No | async (default): starts the run, waits for it within a bound and returns the result, or the run_id of a run that outlasts the bound, whose status and result are read by run_id; suited to long suites. sync: one request that returns the finished result. | async |
| program_name | Yes | Report whose tests run. |
RuntimeAnalyzeProfilerTraceA
[read-only] [runtime] Read profiler trace view and return compact analysis summary (totals + top entries). Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Number of top rows for summary. Default: 10. | |
| view | No | hitlist | |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| trace_id_or_uri | Yes | Profiler trace ID or full trace URI. | |
| with_system_events | No | Include system events. |
RuntimeCreateProfilerTraceParametersB
[read-only] [runtime] Schedule ABAP profiler trace parameters and return profilerId (the request id) for profiled execution. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| aggregate | No | ||
| sql_trace | No | ||
| amdp_trace | No | ||
| description | Yes | Human-readable trace description. | |
| all_db_events | No | ||
| explicit_on_off | No | ||
| with_rfc_tracing | No | ||
| all_dynpro_events | No | ||
| all_procedural_units | No | ||
| max_time_for_tracing | No | ||
| max_size_for_trace_file | No | ||
| all_misc_abap_statements | No | ||
| all_system_kernel_events | No | ||
| all_internal_table_events | No |
RuntimeGetDumpByIdA
[read-only] [runtime] Read an ABAP runtime dump by its dump_id or URI. Answers a summary — runtime error, exception, terminated program, time, user, and the source position where it terminated — and the parsed dump. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | Dump view mode: default payload, summary section, or formatted long text. | default |
| dump_id | Yes | The dump's id, or its URI as a dumps feed entry carries it. | |
| response_mode | No | What is returned: "payload" — the parsed dump, "summary" — runtime error, exception, terminated program, time, user and termination position, "both" — summary and payload. | both |
RuntimeGetGatewayErrorLogA
[read-only] [runtime] List SAP Gateway error log (/IWFND/ERROR_LOG) or get error detail. Returns structured entries with type, shortText, transactionId, dateTime, username. With error_url returns full detail including serviceInfo, errorContext, sourceCode, callStack. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End of time range in YYYYMMDDHHMMSS format. | |
| from | No | Start of time range in YYYYMMDDHHMMSS format. | |
| user | No | Filter errors by SAP username. | |
| error_url | No | Feed URL of a specific error entry (from a previous list response link field). When provided, returns detailed error info instead of listing. | |
| max_results | No | Maximum number of errors to return. |
RuntimeGetProfilerTraceDataA
[read-only] [runtime] Read profiler trace data by trace id/uri: hitlist, statements, or db accesses. Returns parsed JSON payload. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Statement node ID (for statements view). | |
| view | Yes | Trace view to retrieve. | |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| with_details | No | Include statement details (for statements view). | |
| trace_id_or_uri | Yes | Profiler trace ID or full ADT trace URI. | |
| with_system_events | No | Include system events. | |
| auto_drill_down_threshold | No | Auto drill-down threshold (for statements view). |
RuntimeListFeedsA
[read-only] [runtime] Reads the ADT runtime feed named by feed_type: with feed_type "dumps", the ABAP short dumps (runtime errors) of the program or object named by object_name, of the user named by user, in the time range from–to, filtered also by runtime error, exception, package and application component; with "system_messages" or "gateway_errors", the system messages or SAP Gateway errors of the user and time range; with "descriptors" (the default) or "variants", the feeds and their variants. Entries come newest first; each dump carries its dump_id. When more entries remain, next_to is the to that reads on; incomplete_second names a second holding more entries than SAP answers in one request. Takes feed_type (one feed: its answer) or feed_types (several feeds with the same filters: one entry per feed, in the order given, each its answer or { feed_type, error }). Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. When feed_type is one of descriptors, variants (absent reads as descriptors) and feed_types is absent, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End of time range in YYYYMMDDHHMMSS format, inclusive; pass a previous next_to here to read on. | |
| from | No | Start of time range in YYYYMMDDHHMMSS format. | |
| user | No | Entries of this SAP user (exact match). | |
| package | No | Dumps whose object package contains this text, in any case. | |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| component | No | Dumps whose application component contains this text, in any case. | |
| exception | No | Dumps whose exception class contains this text, in any case. | |
| feed_type | No | Feed to read. "descriptors" lists available feeds, "variants" lists feed variants, others read that specific feed. Default: descriptors. | |
| feed_types | No | Several feeds, read together with the same filters (give this or feed_type). | |
| max_results | No | Most entries to return, up to 1000; SAP answers at most 100 per request and the pages are read in turn. An answer holds whole seconds, so it may hold a few entries fewer, or a crowded second more, than asked. Default: 50. | |
| object_name | No | Dumps whose terminated object name contains this text, in any case. | |
| runtime_error | No | Dumps whose runtime error contains this text, in any case. |
RuntimeListProfilerTraceFilesA
[read-only] [runtime] List ABAP profiler trace files available in ADT runtime. Returns structured entries with id, recordedAt, user, objectName, state, expiresAt, and sizing/timing fields. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
RuntimeListSystemMessagesA
[read-only] [runtime] List SM02 system messages. Returns structured entries with id, title, text, severity, validity period, and author. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End of time range in YYYYMMDDHHMMSS format. | |
| from | No | Start of time range in YYYYMMDDHHMMSS format. | |
| user | No | Filter by author username. | |
| max_results | No | Maximum number of messages to return. |
RuntimeRunClassA
[read-only] [runtime] Runs the ABAP class named by class_name, which implements if_oo_adt_classrun, and returns its console output. Set profile=true to also capture a profiler trace: schedules the trace, runs the class under it, then searches the profiler feed for the id this run produced (bounded by max_trace_attempts/trace_retry_delay_ms). If the trace appears only after that bound, the run still answers success with output and profiler_id, trace_id absent — the trace is then found later in the list of profiler trace files. When profile is any value but true, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | No | When true, run with the profiler and search the profiler feed for the resulting traceId. Default false. | |
| aggregate | No | ||
| sql_trace | No | ||
| amdp_trace | No | ||
| background | No | When true, the run goes on in the background on an ABAP session of its own and the call answers at once with a run_handle; read its answer later with GetBackgroundRun, and remove it with DiscardBackgroundRun. A started run cannot be stopped. No default: without it the call waits for the run to end. | |
| class_name | Yes | ABAP class name to execute. | |
| description | No | Profiler trace description (only used when profile=true). | |
| all_db_events | No | ||
| explicit_on_off | No | ||
| with_rfc_tracing | No | ||
| all_dynpro_events | No | ||
| trace_lookup_uris | No | Accepted for backward compatibility; no longer affects trace lookup. adt-clients 19 lists the profiler feed as one endpoint, optionally filtered by user — there is nowhere to put a URI. | |
| max_trace_attempts | No | Max attempts to poll the profiler feed for the trace this run produced (default 5). Only used when profile=true. | |
| all_procedural_units | No | ||
| max_time_for_tracing | No | ||
| trace_retry_delay_ms | No | Delay in ms between profiler-feed polling attempts (default 2000). Only used when profile=true. | |
| max_size_for_trace_file | No | ||
| all_misc_abap_statements | No | ||
| all_system_kernel_events | No | ||
| all_internal_table_events | No |
RuntimeRunProgramB
[read-only] [runtime] Runs the ABAP program (report) named by program_name and returns its output. Set profile=true to also start a profiler trace; the trace is then found in the list of profiler trace files (program execution is fire-and-forget, so the traceId arrives later, through that list). When profile is any value but true, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | No | When true, run with the profiler. Default false. Trace must be located afterwards via RuntimeListProfilerTraceFiles — program execution does not return traceId synchronously. | |
| aggregate | No | ||
| sql_trace | No | ||
| amdp_trace | No | ||
| background | No | When true, the run goes on in the background on an ABAP session of its own and the call answers at once with a run_handle; read its answer later with GetBackgroundRun, and remove it with DiscardBackgroundRun. A started run cannot be stopped. No default: without it the call waits for the run to end. | |
| description | No | Profiler trace description (only used when profile=true). | |
| program_name | Yes | ABAP program name to execute. | |
| all_db_events | No | ||
| explicit_on_off | No | ||
| with_rfc_tracing | No | ||
| all_dynpro_events | No | ||
| all_procedural_units | No | ||
| max_time_for_tracing | No | ||
| max_size_for_trace_file | No | ||
| all_misc_abap_statements | No | ||
| all_system_kernel_events | No | ||
| all_internal_table_events | No |
RunUnitTestA
[read-only] Runs the ABAP Unit tests of the ABAP class named by class_name and returns the result. runner async (default): the run is started and waited for within a bound, and a run that outlasts it returns its run_id, whose status and result are read by run_id; suited to long suites. runner sync: one request that returns the finished result. When runner is sync, recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Which tests the run covers, sent with either runner. Foreign tests are test classes linked to the object by an ABAP Doc @testing relation (a function module's tests are often linked so). With runner sync they execute only with foreign_tests true: with the defaults (foreign_tests false, add_foreign_tests_as_preview true) SAP lists them as a preview, unexecuted. Runner async executes them with the defaults as well. | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| runner | No | async (default): starts the run, waits for it within a bound and returns the result, or the run_id of a run that outlasts the bound, whose status and result are read by run_id; suited to long suites. sync: one request that returns the finished result. | async |
| class_name | Yes | Class whose tests run. |
SearchObjectA
[read-only] Search ABAP repository by object name or wildcard pattern (e.g. 'Z*'). Answers: "find object X", "does X exist", "list objects matching...", "search for program/class/table by name". Supports all repository object types — optionally filter by type (PROG, CLAS, INTF, DEVC, TABL, DDLS, DTEL, FUGR, SRVD, SRVB, BDEF, DDLX, etc.). Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| maxResults | No | [read-only] Maximum number of results to return | |
| object_name | Yes | [read-only] Object name or mask (e.g. 'MARA*') | |
| object_type | No | [read-only] Optional ABAP object type (e.g. 'TABL', 'CLAS/OC') |
SearchSourceA
[read-only] Search ABAP source text inside one or more packages (programs, function groups, classes). packages accepts * masks (Z*, /NS/Z*) alongside exact names; mask resolution is best-effort and scoped to the ADT repository-search result window — some matching packages may be left unscanned. For certainty, pass concrete package names. When using masks, narrow the mask itself and use object_types, object_filter, and max_objects as scan-target controls that apply after package resolution. Comments are searched by default; set exclude_comments=true to drop col-1 * and full-line " comments. The version parameter affects PROG and CLAS main include reads only — FUGR subinclude reads always go against the active version (the include endpoint reads the active version alone). truncated.by_object_cap means at least one object had MORE hits than max_hits_per_object, so that object's hits were capped. The object-count limit is max_objects (which sets truncated.by_max_objects). To avoid by_object_cap, raise max_hits_per_object. The scan is read in ADT batch envelopes: the searches of the package masks, each level of the package walk, then the sources of the scanned objects in envelopes of at most 300 reads (main sources and function group structures, then function group includes and function modules); time_budget_ms is checked before every envelope, and a scan it stops answers whole objects. Run only ONE SearchSource per destination at a time — multiple parallel SearchSource calls against the same SAP system saturate the scan backend and can make all of them time out. Prefer combining terms into a single call over parallel calls. A scan that stops before its last target answers next_start_at; pass it as start_at to go on. When next_start_at equals start_at, time_budget_ms passed before the first object was answered: raise time_budget_ms or lower max_objects. The answer carries total_targets, the scan targets of the walk; it is absent when time_budget_ms passed during the walk. Runs on an ABAP session of its own. Optional timeout (seconds): when it passes, the read is cancelled, its ABAP session logged off, and the system stays as it was. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a client's cancel ends only the client's wait, and SAP runs the read on. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Primary substring to match (case-insensitive, ABAP CS). | |
| query2 | No | Optional second substring. When set, both query and query2 must appear on the same line. | |
| exclude | No | Up to 3 substrings; a line containing any of them is dropped. | |
| timeout | No | Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP. | |
| version | No | Source version for PROG and CLAS main include reads. Default active. FUGR subincludes always read the active version. | |
| packages | Yes | Packages to scan. Each entry is either an exact dev-class name or a `*` mask, where `*` stands for any characters and a namespace prefix may lead it. | |
| start_at | No | Index of the first scan target to read, from `next_start_at` of the previous answer; 0 by default. | |
| max_objects | No | Cap the total objects scanned across all packages (default 500). Setting truncated.by_max_objects=true when exceeded. | |
| emit_no_hits | No | When true, list zero-hit targets in a separate no_hits array. Default false. | |
| object_types | No | Subset of object families to scan (default: all three). | |
| object_filter | No | Glob applied to object names within each package (e.g. "Z*"). | |
| time_budget_ms | No | Internal scan deadline in ms. When exceeded, returns the hits of the objects before `next_start_at` with truncated.by_timeout=true and next_start_at; when next_start_at equals start_at, the deadline passed before the first object was answered: raise time_budget_ms or lower max_objects. Set this BELOW your client/transport timeout (e.g. 540000 for a 600s client) so you get a partial result instead of a hard cutoff. | |
| exclude_comments | No | Skip col-1 '*' and full-line '"' comment lines. Default false (comments are scanned). | |
| include_subpackages | No | Recurse into subpackages (default true). | |
| max_hits_per_object | No | Cap hits per root object across its source units (default 100). When exceeded, truncated.by_object_cap=true is set. Raise this value if you need more hits per object. |
SortAndCompressTransportTaskA
Sorts the object list of the transport task named by transport_number and merges its duplicate entries. A task holding the same entry twice refuses removing an entry until this has run. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| transport_number | Yes | Number of the transport task to sort and compress. |
UpdateBehaviorDefinitionA
Update source code of an existing ABAP Behavior Definition (BDEF). Locks, updates, unlocks, and optionally activates. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Behavior Definition name | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate after update. Default: true | |
| lock_handle | No | Lock handle from LockObject. If not provided, will attempt to lock internally (not recommended for stateful flows). | |
| source_code | Yes | New source code | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. |
UpdateBehaviorImplementationB
Update source code of an existing ABAP behavior implementation class. Updates the implementations include. Manages lock, update, unlock, and optional activation. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate behavior implementation after update. Default: true. | |
| class_name | Yes | Behavior Implementation class name. Must exist in the system. | |
| transport_request | No | Transport request number, not a task. Optional if object is local or already in transport. | |
| behavior_definition | Yes | Referenced Behavior Definition name. Accepted for compatibility; not forwarded to the write — the shipped update() no longer reads it (it writes the implementations include only, never the FOR BEHAVIOR OF main source). | |
| implementation_code | Yes | Implementation code for the implementations include. Contains the actual behavior implementation methods. |
UpdateCdsUnitTestA
Writes test_class_source as the ABAP Unit test classes of the CDS view test class named by class_name. The local test classes in the test class are rewritten, and it is activated. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Test class of the CDS view. Must already exist. | |
| test_class_source | Yes | ABAP source of the local test classes: definitions and implementations, FOR TESTING. Replaces what the include holds. | |
| transport_request | No | Transport request, not a task. Required for a transportable object. |
UpdateClassA
Update source code of an existing ABAP class. Locks, updates, unlocks, and optionally activates. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate after update. Default: false. | |
| class_name | Yes | Class name. | |
| source_code | Yes | Complete ABAP class source code. | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. |
UpdateDataElementA
Update an existing ABAP data element. Locks, updates with provided parameters (complete replacement), unlocks, and optionally activates. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| length | No | Length - for predefinedAbapType or refToPredefinedAbapType | |
| activate | No | Activate data element after update (default: true) | |
| decimals | No | Decimals - for predefinedAbapType or refToPredefinedAbapType | |
| data_type | No | Data type (CHAR, NUMC, etc.) - for predefinedAbapType or refToPredefinedAbapType | |
| type_kind | No | Type kind: domain, predefinedAbapType, refToPredefinedAbapType, refToDictionaryType, refToClifType | domain |
| type_name | No | Type name: domain name, data element name, or class name (depending on type_kind) | |
| description | No | New data element description | |
| search_help | No | Search help name | |
| package_name | Yes | Package name | |
| field_label_long | No | Long field label (max 40 chars) | |
| data_element_name | Yes | Data element name to update | |
| field_label_short | No | Short field label (max 10 chars) | |
| set_get_parameter | No | Set/Get parameter ID | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. | |
| field_label_medium | No | Medium field label (max 20 chars) | |
| field_label_heading | No | Heading field label (max 55 chars) | |
| search_help_parameter | No | Search help parameter |
UpdateDdlA
Updates the DDL source code of the existing CDS view or classic DDL view named by ddl_name to ddl_source. Locks, updates, unlocks, and optionally activates. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate after update. Default: false. | |
| ddl_name | Yes | DDL source name. | |
| ddl_source | Yes | Complete DDL source code. | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. |
UpdateDomainA
Update an existing ABAP domain. Locks, updates with provided parameters (complete replacement), unlocks, and optionally activates. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| length | No | Field length (max depends on datatype) | |
| activate | No | Activate domain after update (default: true) | |
| datatype | No | Data type: CHAR, NUMC, DATS, TIMS, DEC, INT1, INT2, INT4, INT8, CURR, QUAN, etc. | |
| decimals | No | Decimal places (for DEC, CURR, QUAN types) | |
| lowercase | No | Allow lowercase input | |
| description | No | New domain description (optional) | |
| domain_name | Yes | Domain name to update | |
| sign_exists | No | Field has sign (+/-) | |
| value_table | No | Value table name for foreign key relationship | |
| fixed_values | No | Array of fixed values for domain value range | |
| package_name | Yes | Package name | |
| conversion_exit | No | Conversion exit routine name (without CONVERSION_EXIT_ prefix) | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. |
UpdateFunctionGroupA
Update metadata (description) of an existing ABAP function group. Function groups are containers for function modules, which carry the source; this updates the group's metadata alone. Locks the group, writes, and unlocks it. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| description | Yes | New description for the function group. | |
| transport_request | No | Transport request number, not a task. Optional if object is local or already in transport. | |
| function_group_name | Yes | Function group name. Must exist in the system. |
UpdateFunctionGroupUnitTestA
Writes test_class_source as the ABAP Unit test classes of the function group named by function_group_name. The local test classes in its test include are rewritten, and it is activated. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| test_class_source | Yes | ABAP source of the local test classes: definitions and implementations, FOR TESTING. Replaces what the include holds. | |
| transport_request | No | Transport request, not a task. Required for a transportable object. | |
| function_group_name | Yes | Function group whose tests are replaced. Its test include must already exist. |
UpdateFunctionIncludeB
Update source code of an existing ABAP function group include. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate the include after the source update. Default: false. Set true to make the updated source the active version immediately. | |
| source_code | Yes | Complete ABAP include source code. | |
| include_name | Yes | Include name. Include must already exist. | |
| transport_request | No | Transport request number, not a task. Required for transportable includes. | |
| function_group_name | Yes | Function group name containing the include. |
UpdateFunctionModuleA
Update source code of an existing ABAP function module. Locks, updates, unlocks, and optionally activates. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate function module after source update. Default: false. Set to true to activate immediately. | |
| source_code | Yes | Complete ABAP function module source code, from FUNCTION to ENDFUNCTION. | |
| transport_request | No | Transport request number, not a task. Required for transportable function modules. | |
| function_group_name | Yes | Function group name containing the function module. | |
| function_module_name | Yes | Function module name. Function module must already exist. |
UpdateInterfaceA
Update source code of an existing ABAP interface. Locks, updates, unlocks, and optionally activates. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate interface after update. Default: true. | |
| source_code | Yes | Complete ABAP interface source code with INTERFACE...ENDINTERFACE section. | |
| interface_name | Yes | Interface name. Must exist in the system. | |
| transport_request | No | Transport request number, not a task. Optional if object is local or already in transport. |
UpdateLocalDefinitionsA
Update local definitions (class-local types/constants) in an ABAP class. Manages lock, update, unlock, and optional activation of parent class. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Parent class name. | |
| definitions_code | Yes | Updated source code for local definitions. | |
| transport_request | No | Transport request number (required for transportable objects), not a task. | |
| activate_on_update | No | Activate parent class after updating local definitions. Default: false |
UpdateLocalMacrosB
Update local macros in an ABAP class. Manages lock, update, unlock, and optional activation of parent class. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Parent class name. | |
| macros_code | Yes | Updated source code for local macros. | |
| transport_request | No | Transport request number (required for transportable objects), not a task. | |
| activate_on_update | No | Activate parent class after updating local macros. Default: false |
UpdateLocalTestClassA
Writes test_class_code as the local test classes include of the ABAP class named by class_name. The include is written under the class lock; with activate_on_update the class is activated. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Parent class name. | |
| test_class_code | Yes | Updated source code for the local test class. | |
| transport_request | No | Transport request number (required for transportable objects), not a task. | |
| activate_on_update | No | Activate parent class after updating test class. Default: false |
UpdateLocalTypesA
Update local types definitions in an ABAP class. Manages lock, update, unlock, and optional activation of parent class. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Parent class name. | |
| local_types_code | Yes | Updated source code for local types. | |
| transport_request | No | Transport request number (required for transportable objects), not a task. | |
| activate_on_update | No | Activate parent class after updating local types. Default: false |
UpdateMessageClassB
Updates the header of the ABAP message class named by message_class_name: its description. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| description | Yes | New short description for the message class. | |
| transport_request | No | (optional) Transport request number, not a task. Required for transportable objects. | |
| message_class_name | Yes | Message class name. |
UpdateMessageClassMessageA
Change the text / flags of an existing message in an ABAP message class (T100). Creates the message when the class lacks it (upsert). Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| msgno | Yes | Message number (e.g., "001"). | |
| msgtext | Yes | New message text. May contain placeholders &1 &2 &3 &4 (or &). | |
| description | No | (optional) Long description for the message. | |
| self_explanatory | No | (optional) Mark the message as self-explanatory. | |
| transport_request | No | (optional) Transport request number, not a task. Required for transportable objects. | |
| message_class_name | Yes | Parent message class name. |
UpdateMetadataExtensionA
Update source code of an existing ABAP Metadata Extension (DDLX). Locks, updates, unlocks, and optionally activates. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Metadata Extension name | |
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate after update. Default: true | |
| lock_handle | No | Lock handle from LockObject. If not provided, will attempt to lock internally. | |
| source_code | Yes | New source code | |
| transport_request | No | Transport request number (required for transportable packages), not a task. |
UpdatePackageA
Update the description of an existing ABAP package. Locks the package, writes, and unlocks it again, whatever the write answered. Over RFC this runs in an ABAP session of its own, closed afterwards. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| description | Yes | New description for the package. | |
| package_name | Yes | Package name. Package must already exist. | |
| transport_request | No | Transport request number (required for transportable packages), not a task. |
UpdateProgramA
Update source code of an existing ABAP program. Locks, updates, unlocks, and optionally activates. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate program after source update. Default: false. Set to true to activate immediately, or use ActivateObject for batch activation. | |
| source_code | Yes | Complete ABAP program source code. | |
| program_name | Yes | Program name. Program must already exist. | |
| transport_request | No | Transport request number, not a task. Required for transportable packages. |
UpdateProgramUnitTestA
Writes test_class_source as the ABAP Unit test classes of the report named by program_name. The local test classes in its test include are rewritten, and it is activated. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| program_name | Yes | Report whose tests are replaced. Its test include must already exist. | |
| test_class_source | Yes | ABAP source of the local test classes: definitions and implementations, FOR TESTING. Replaces what the include holds. | |
| transport_request | No | Transport request, not a task. Required for a transportable object. |
UpdateServiceBindingB
Update publication state of an existing ABAP service binding. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| service_name | Yes | Published service name, from the binding. Required: an OData V2 publication job resolves the service by name and version and refuses without them. Ignored for V4, where the request names its target on its own. | |
| binding_variant | No | Service binding variant. Determines OData version for publish/unpublish routing. | ODATA_V4_UI |
| response_format | No | Accepted for backward compatibility; no longer affects the answer, which is always the structured write result. | xml |
| service_version | No | Published service version. Default 0001. Used by an OData V2 publication job together with the service name; ignored for V4. | |
| service_binding_name | Yes | Service binding name to update. | |
| desired_publication_state | Yes | Target publication state. |
UpdateServiceDefinitionA
Update source code of an existing ABAP service definition. Locks, updates, unlocks, and optionally activates. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate service definition after update. Default: true. | |
| source_code | Yes | Complete service definition source code. | |
| transport_request | No | Transport request number, not a task. Optional if object is local or already in transport. | |
| service_definition_name | Yes | Service definition name. Must exist in the system. |
UpdateStructureA
Update DDL source code of an existing ABAP structure. Locks, updates, unlocks, and optionally activates. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate structure after source update. Default: true. | |
| ddl_code | Yes | Complete DDL source code for structure. Example: '@EndUserText.label : \'My Structure\' @AbapCatalog.tableCategory : #TRANSPARENT define structure zz_s_test_001 { client : abap.clnt not null; id : abap.char(10); name : abap.char(255); }' | |
| structure_name | Yes | Structure name. Structure must already exist. | |
| transport_request | No | Transport request number, not a task. Optional if object is local or already in transport. |
UpdateTableA
Update DDL source code of an existing ABAP table. Locks, updates, unlocks, and optionally activates. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| activate | No | Activate table after source update. Default: true. | |
| ddl_code | Yes | Complete DDL source code for table. Example: '@EndUserText.label : \'My Table\' @AbapCatalog.tableCategory : #TRANSPARENT define table ztst_table { key client : abap.clnt not null; key id : abap.char(10); name : abap.char(255); }' | |
| table_name | Yes | Table name. Table must already exist. | |
| transport_request | No | Transport request number, not a task. Optional if object is local or already in transport. |
UpdateUnitTestA
Writes test_class_source as the ABAP Unit test classes of the ABAP class named by class_name. The class's local test classes are rewritten, and the class is activated. Runs outside batch mode.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| class_name | Yes | Class that holds the tests. Must already exist. | |
| test_class_source | Yes | ABAP source of the local test classes: definitions and implementations, FOR TESTING. Replaces what the include holds. | |
| transport_request | No | Transport request, not a task. Required for a transportable object. |
ValidateServiceBindingA
[read-only] Validates a new service binding named by service_binding_name for the service definition named by service_definition_name, in the package and version given, through the ADT validation endpoint. Recordable: in batch mode a call is recorded under the next number and answers with empty content; its answer is read by number after the batch ends.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | How much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it). | terse |
| description | No | Optional description used during validation. | |
| package_name | No | ABAP package for the binding. | |
| service_binding_name | Yes | Service binding name to validate. | |
| service_binding_version | No | Service binding version (for example: 1.0). Accepted for backward compatibility; the transport check this now runs does not read it. | |
| service_definition_name | Yes | Service definition linked to binding. Accepted for backward compatibility; the transport check this now runs does not read it. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v21.0.0- Changed
GetTypeInfo1 field changed- changed
Input schema / properties / include_structure_fallback / descriptionPrevious value: -"When true (default), tries DDIC structure lookup only if type lookup returns 404/empty."New value: +"When true (default), the name is also read as a DDIC structure; false leaves the structure read out."
149 tool updates
v20.1.0- Changed
ActivateBehaviorDefinition2 fields changed- removed
Input schema / properties / session_idRemoved value: -{ - "description": "Session ID from GetSession. If not provided, a new session will be created.", - "type": "string" -} - removed
Input schema / properties / session_stateRemoved value: -{ - "description": "Session state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.", - "properties": { - "cookie_store": {}, - "cookies": { - "type": "string" - }, - "csrf_token": { - "type": "string" - } - }, - "type": "object" -}
- Changed
ActivateClass2 fields changed- removed
Input schema / properties / session_idRemoved value: -{ - "description": "Session ID from GetSession. If not provided, a new session will be created.", - "type": "string" -} - removed
Input schema / properties / session_stateRemoved value: -{ - "description": "Session state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.", - "properties": { - "cookie_store": {}, - "cookies": { - "type": "string" - }, - "csrf_token": { - "type": "string" - } - }, - "type": "object" -}
- Changed
ActivateDataElement2 fields changed- removed
Input schema / properties / session_idRemoved value: -{ - "description": "Session ID from GetSession. If not provided, a new session will be created.", - "type": "string" -} - removed
Input schema / properties / session_stateRemoved value: -{ - "description": "Session state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.", - "properties": { - "cookie_store": {}, - "cookies": { - "type": "string" - }, - "csrf_token": { - "type": "string" - } - }, - "type": "object" -}
- Changed
ActivateDdl2 fields changed- removed
Input schema / properties / session_idRemoved value: -{ - "description": "Session ID from GetSession. If not provided, a new session will be created.", - "type": "string" -} - removed
Input schema / properties / session_stateRemoved value: -{ - "description": "Session state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.", - "properties": { - "cookie_store": {}, - "cookies": { - "type": "string" - }, - "csrf_token": { - "type": "string" - } - }, - "type": "object" -}
- Changed
ActivateDomain2 fields changed- removed
Input schema / properties / session_idRemoved value: -{ - "description": "Session ID from GetSession. If not provided, a new session will be created.", - "type": "string" -} - removed
Input schema / properties / session_stateRemoved value: -{ - "description": "Session state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.", - "properties": { - "cookie_store": {}, - "cookies": { - "type": "string" - }, - "csrf_token": { - "type": "string" - } - }, - "type": "object" -}
- Changed
ActivateFunctionGroup2 fields changed- removed
Input schema / properties / session_idRemoved value: -{ - "description": "Session ID from GetSession. If not provided, a new session will be created.", - "type": "string" -} - removed
Input schema / properties / session_stateRemoved value: -{ - "description": "Session state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.", - "properties": { - "cookie_store": {}, - "cookies": { - "type": "string" - }, - "csrf_token": { - "type": "string" - } - }, - "type": "object" -}
- Changed
ActivateFunctionModule2 fields changed- removed
Input schema / properties / session_idRemoved value: -{ - "description": "Session ID from GetSession. If not provided, a new session will be created.", - "type": "string" -} - removed
Input schema / properties / session_stateRemoved value: -{ - "description": "Session state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.", - "properties": { - "cookie_store": {}, - "cookies": { - "type": "string" - }, - "csrf_token": { - "type": "string" - } - }, - "type": "object" -}
- Changed
ActivateInterface2 fields changed- removed
Input schema / properties / session_idRemoved value: -{ - "description": "Session ID from GetSession. If not provided, a new session will be created.", - "type": "string" -} - removed
Input schema / properties / session_stateRemoved value: -{ - "description": "Session state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.", - "properties": { - "cookie_store": {}, - "cookies": { - "type": "string" - }, - "csrf_token": { - "type": "string" - } - }, - "type": "object" -}
- Changed
ActivateMetadataExtension2 fields changed- removed
Input schema / properties / session_idRemoved value: -{ - "description": "Session ID from GetSession. If not provided, a new session will be created.", - "type": "string" -} - removed
Input schema / properties / session_stateRemoved value: -{ - "description": "Session state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.", - "properties": { - "cookie_store": {}, - "cookies": { - "type": "string" - }, - "csrf_token": { - "type": "string" - } - }, - "type": "object" -}
- Added
ActivateProgram - Changed
ActivateServiceBinding2 fields changed- removed
Input schema / properties / session_idRemoved value: -{ - "description": "Session ID from GetSession. If not provided, a new session will be created.", - "type": "string" -} - removed
Input schema / properties / session_stateRemoved value: -{ - "description": "Session state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.", - "properties": { - "cookie_store": {}, - "cookies": { - "type": "string" - }, - "csrf_token": { - "type": "string" - } - }, - "type": "object" -}
- Changed
ActivateServiceDefinition2 fields changed- removed
Input schema / properties / session_idRemoved value: -{ - "description": "Session ID from GetSession. If not provided, a new session will be created.", - "type": "string" -} - removed
Input schema / properties / session_stateRemoved value: -{ - "description": "Session state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.", - "properties": { - "cookie_store": {}, - "cookies": { - "type": "string" - }, - "csrf_token": { - "type": "string" - } - }, - "type": "object" -}
- Changed
ActivateStructure2 fields changed- removed
Input schema / properties / session_idRemoved value: -{ - "description": "Session ID from GetSession. If not provided, a new session will be created.", - "type": "string" -} - removed
Input schema / properties / session_stateRemoved value: -{ - "description": "Session state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.", - "properties": { - "cookie_store": {}, - "cookies": { - "type": "string" - }, - "csrf_token": { - "type": "string" - } - }, - "type": "object" -}
- Changed
ActivateTable2 fields changed- removed
Input schema / properties / session_idRemoved value: -{ - "description": "Session ID from GetSession. If not provided, a new session will be created.", - "type": "string" -} - removed
Input schema / properties / session_stateRemoved value: -{ - "description": "Session state from GetSession (cookies, csrf_token, cookie_store). Required if session_id is provided.", - "properties": { - "cookie_store": {}, - "cookies": { - "type": "string" - }, - "csrf_token": { - "type": "string" - } - }, - "type": "object" -}
- Added
AmdpDebugCancel - Added
AmdpDebugGetTable - Added
AmdpDebugSetBreakpoints - Added
AmdpDebugStart - Added
AmdpDebugStep - Added
AmdpDebugStop - Added
AmdpDebugWait - Added
BatchAnswers - Added
BatchBegin - Added
BatchEnd - Changed
CheckBehaviorDefinition1 field changed- changed
Input schema / properties / version / descriptionPrevious value: -"Which version to check — it goes into the checkrun body as chkrun:version, as ADT sends it. Omitted, the inactive one is checked; an object that is only active has none, and SAP answers such a check with a finding against an empty source (e.g. G46 \"REPORT/PROGRAM statement is missing\") or \"Inactive version … does not exist\" — ask for active."New value: +"Which version to check — it goes into the checkrun body as chkrun:version, as ADT sends it. Without `version` the active version is checked; pass `inactive` for the unsaved one right after a write."
- Changed
CheckDataElement1 field changed- changed
Input schema / properties / version / descriptionPrevious value: -"Which version to check. Defaults to the inactive one, what a caller wants right after a write; an object that is only active has no inactive version, and SAP answers such a check with \"Error while importing object … from the database\" — ask for active."New value: +"Which version to check. Without `version` the active version is checked; pass `inactive` for the unsaved one right after a write."
- Changed
CheckDdl1 field changed- changed
Input schema / properties / version / descriptionPrevious value: -"Version to check: 'active' or 'inactive'. Default: inactive."New value: +"Version to check: 'active' or 'inactive'. Without `version` the active version is checked."
- Changed
CheckDomain1 field changed- changed
Input schema / properties / version / descriptionPrevious value: -"Which version to check. Defaults to the inactive one, what a caller wants right after a write; an object that is only active has no inactive version, and SAP answers such a check with \"Error while importing object … from the database\" — ask for active."New value: +"Which version to check. Without `version` the active version is checked; pass `inactive` for the unsaved one right after a write."
- Changed
CheckFunctionGroup1 field changed- changed
Input schema / properties / version / descriptionPrevious value: -"Which version to check — it goes into the checkrun body as chkrun:version, as ADT sends it. Omitted, the inactive one is checked; an object that is only active has none, and SAP answers such a check with a finding against an empty source (e.g. G46 \"REPORT/PROGRAM statement is missing\") or \"Inactive version … does not exist\" — ask for active."New value: +"Which version to check — it goes into the checkrun body as chkrun:version, as ADT sends it. Without `version` the active version is checked; pass `inactive` for the unsaved one right after a write."
- Changed
CheckInterface1 field changed- changed
Input schema / properties / version / descriptionPrevious value: -"Which version to check — it goes into the checkrun body as chkrun:version, as ADT sends it. Omitted, the inactive one is checked; an object that is only active has none, and SAP answers such a check with a finding against an empty source (e.g. G46 \"REPORT/PROGRAM statement is missing\") or \"Inactive version … does not exist\" — ask for active."New value: +"Which version to check — it goes into the checkrun body as chkrun:version, as ADT sends it. Without `version` the active version is checked; pass `inactive` for the unsaved one right after a write."
- Added
CheckProgram - Changed
CheckStructure1 field changed- changed
Input schema / properties / version / descriptionPrevious value: -"Version to check: 'active' or 'inactive'. Default: inactive."New value: +"Version to check: 'active' or 'inactive'. Without `version` the active version is checked."
- Changed
CheckTable1 field changed- changed
Input schema / properties / version / descriptionPrevious value: -"Version to check: 'active', 'inactive', or 'new'. Default: new."New value: +"Version to check: 'active', 'inactive', or 'new'. Without `version` the active version is checked."
- Added
CreateProgram - Added
CreateProgramUnitTest - Changed
CreateServiceBinding1 field changed- changed
Input schema / properties / activate / descriptionPrevious value: -"Activate and generate the service binding after create. Default: true."New value: +"Activate the service binding after create, then read its service group. Default: true."
- Changed
CreateTransportTask1 field changed- changed
Input schema / properties / target_user / descriptionPrevious value: -"SAP user the task belongs to, e.g. DEVELOPER. Required — the server will not choose one, and naming another user is how a task is made for somebody else."New value: +"The user the task belongs to: an SAP user id (sent in upper case), e.g. DEVELOPER. Required — the server will not choose one, and naming another user is how a task is made for somebody else."
- Added
DebugBatchBegin - Added
DebugBatchEnd - Added
DebugCreateMemorySnapshot - Added
DebugCreateWatchpoint - Added
DebugDeleteBreakpoint - Added
DebugDeleteWatchpoint - Added
DebugGetMemorySizes - Added
DebugGetStack - Added
DebugGetVariables - Added
DebugListBreakpoints - Added
DebugListWatchpoints - Added
DebugSetBreakpoints - Added
DebugSetSettings - Added
DebugSetStackPosition - Added
DebugSetVariable - Added
DebugStartListener - Added
DebugStep - Added
DebugStepToLine - Added
DebugStop - Added
DebugTakeOverListener - Added
DebugTerminate - Added
DebugWait - Added
DeletePackage - Added
DeleteProgram - Changed
DescribeByList1 field changed- added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +}
- Added
DiscardBackgroundRun - Changed
GetAbapSystemSymbols1 field changed- added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +}
- Changed
GetATCFindings2 fields changed- added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +} - changed
Input schema / properties / worklist_id / descriptionPrevious value: -"Worklist identifier answered by RunATC."New value: +"Worklist identifier an ATC run answered."
- Changed
GetATCRunStatus1 field changed- changed
Input schema / properties / run_id / descriptionPrevious value: -"Run identifier answered by RunATC when wait was false."New value: +"Run identifier an ATC run started with wait=false answered."
- Added
GetBackgroundRun - Changed
GetBehaviorDefinition2 fields changed- added
Input schema / properties / partAdded value: +{ + "default": "source", + "description": "The document to read: \"source\" (default) the source code, \"metadata\" the ADT metadata document (package, responsible, description, ...).", + "enum": [ + "source", + "metadata" + ], + "type": "string" +} - changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version of the source: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Changed
GetBehaviorDefinitionVersionDiff2 fields changed- changed
Input schema / properties / content_uri_from / descriptionPrevious value: -"Opaque content_uri of the OLD/base version (from a GetBehaviorDefinitionVersions entry)."New value: +"Opaque content_uri of the OLD/base version, from the RAP behavior definition's version history." - changed
Input schema / properties / content_uri_to / descriptionPrevious value: -"Opaque content_uri of the NEW/compare version (from a GetBehaviorDefinitionVersions entry)."New value: +"Opaque content_uri of the NEW/compare version, from the RAP behavior definition's version history."
- Changed
GetBehaviorDefinitionVersionSource1 field changed- changed
Input schema / properties / content_uri / descriptionPrevious value: -"Opaque content_uri taken from a GetBehaviorDefinitionVersions entry."New value: +"Opaque content_uri of a version, from the RAP behavior definition's version history."
- Changed
GetBehaviorImplementation2 fields changed- added
Input schema / properties / partAdded value: +{ + "default": "source", + "description": "The document to read: \"source\" (default) the source code, \"metadata\" the ADT metadata document (package, responsible, description, ...).", + "enum": [ + "source", + "metadata" + ], + "type": "string" +} - changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version of the source: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Changed
GetClass2 fields changed- added
Input schema / properties / partAdded value: +{ + "default": "source", + "description": "The document to read: \"source\" (default) the source code, \"metadata\" the ADT metadata document (package, responsible, description, ...).", + "enum": [ + "source", + "metadata" + ], + "type": "string" +} - changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version of the source: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Changed
GetClassVersionDiff2 fields changed- changed
Input schema / properties / content_uri_from / descriptionPrevious value: -"Opaque content_uri of the OLD/base version (from a GetClassVersions entry)."New value: +"Opaque content_uri of the OLD/base version, from the ABAP class's version history." - changed
Input schema / properties / content_uri_to / descriptionPrevious value: -"Opaque content_uri of the NEW/compare version (from a GetClassVersions entry)."New value: +"Opaque content_uri of the NEW/compare version, from the ABAP class's version history."
- Changed
GetClassVersionSource1 field changed- changed
Input schema / properties / content_uri / descriptionPrevious value: -"Opaque content_uri taken from a GetClassVersions entry."New value: +"Opaque content_uri of a version, from the ABAP class's version history."
- Changed
GetDdl2 fields changed- added
Input schema / properties / partAdded value: +{ + "default": "source", + "description": "The document to read: \"source\" (default) the source code, \"metadata\" the ADT metadata document (package, responsible, description, ...).", + "enum": [ + "source", + "metadata" + ], + "type": "string" +} - changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version of the source: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Changed
GetDdlVersionDiff2 fields changed- changed
Input schema / properties / content_uri_from / descriptionPrevious value: -"Opaque content_uri of the OLD/base version (from a GetDdlVersions entry)."New value: +"Opaque content_uri of the OLD/base version, from the CDS view (DDL source)'s version history." - changed
Input schema / properties / content_uri_to / descriptionPrevious value: -"Opaque content_uri of the NEW/compare version (from a GetDdlVersions entry)."New value: +"Opaque content_uri of the NEW/compare version, from the CDS view (DDL source)'s version history."
- Changed
GetDdlVersionSource1 field changed- changed
Input schema / properties / content_uri / descriptionPrevious value: -"Opaque content_uri taken from a GetDdlVersions entry."New value: +"Opaque content_uri of a version, from the CDS view (DDL source)'s version history."
- Changed
GetEnhancements3 fields changed- changed
Input schema / properties / object_name / descriptionPrevious value: -"Name of the ABAP object"New value: +"Name of the ABAP object (with object_type; or give objects)" - added
Input schema / properties / objectsAdded value: +{ + "description": "[read-only] Several objects, read together (give this or object_name and object_type)", + "items": { + "properties": { + "object_name": { + "description": "Name of the ABAP object", + "type": "string" + }, + "object_type": { + "description": "Type of the ABAP object", + "type": "string" + } + }, + "required": [ + "object_name", + "object_type" + ], + "type": "object" + }, + "type": "array" +} - removed
Input schema / requiredRemoved value: -[ - "object_name", - "object_type" -]
- Added
GetFunctionInclude - Changed
GetFunctionModule4 fields changed- changed
Input schema / properties / function_group_name / descriptionPrevious value: -"FunctionGroup name containing the function module."New value: +"Function group containing the function module." - changed
Input schema / properties / function_module_name / descriptionPrevious value: -"FunctionModule name."New value: +"Function module name." - added
Input schema / properties / partAdded value: +{ + "default": "source", + "description": "The document to read: \"source\" (default) the source code, \"metadata\" the ADT metadata document (package, responsible, description, ...).", + "enum": [ + "source", + "metadata" + ], + "type": "string" +} - changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version of the source: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Changed
GetFunctionModuleVersionDiff2 fields changed- changed
Input schema / properties / content_uri_from / descriptionPrevious value: -"Opaque content_uri of the OLD/base version (from a GetFunctionModuleVersions entry)."New value: +"Opaque content_uri of the OLD/base version, from the ABAP function module's version history." - changed
Input schema / properties / content_uri_to / descriptionPrevious value: -"Opaque content_uri of the NEW/compare version (from a GetFunctionModuleVersions entry)."New value: +"Opaque content_uri of the NEW/compare version, from the ABAP function module's version history."
- Changed
GetFunctionModuleVersionSource1 field changed- changed
Input schema / properties / content_uri / descriptionPrevious value: -"Opaque content_uri taken from a GetFunctionModuleVersions entry."New value: +"Opaque content_uri of a version, from the ABAP function module's version history."
- Changed
GetIncludesList7 fields changed- changed
Input schema / properties / object_name / descriptionPrevious value: -"Name of the ABAP program or include"New value: +"Name of the ABAP program or include (with object_type; or give objects)" - added
Input schema / properties / objectsAdded value: +{ + "description": "[read-only] Several objects, read together (give this or object_name and object_type)", + "items": { + "properties": { + "object_name": { + "description": "Name of the ABAP program or include", + "type": "string" + }, + "object_type": { + "description": "ADT object type: 'PROG/P', 'PROG/I', 'FUGR' or 'CLAS/OC'", + "enum": [ + "PROG/P", + "PROG/I", + "FUGR", + "CLAS/OC" + ], + "type": "string" + } + }, + "required": [ + "object_name", + "object_type" + ], + "type": "object" + }, + "type": "array" +} - changed
Input schema / properties / timeout / descriptionPrevious value: -"[read-only] Timeout in ms for each ADT request."New value: +"Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP." - added
Input schema / properties / timeout / maximumAdded value: +2147483 - added
Input schema / properties / timeout / minimumAdded value: +1 - changed
Input schema / properties / timeout / typePrevious value: -"number"New value: +"integer" - removed
Input schema / requiredRemoved value: -[ - "object_name", - "object_type" -]
- Changed
GetInterface2 fields changed- added
Input schema / properties / partAdded value: +{ + "default": "source", + "description": "The document to read: \"source\" (default) the source code, \"metadata\" the ADT metadata document (package, responsible, description, ...).", + "enum": [ + "source", + "metadata" + ], + "type": "string" +} - changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version of the source: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Changed
GetInterfaceVersionDiff2 fields changed- changed
Input schema / properties / content_uri_from / descriptionPrevious value: -"Opaque content_uri of the OLD/base version (from a GetInterfaceVersions entry)."New value: +"Opaque content_uri of the OLD/base version, from the ABAP interface's version history." - changed
Input schema / properties / content_uri_to / descriptionPrevious value: -"Opaque content_uri of the NEW/compare version (from a GetInterfaceVersions entry)."New value: +"Opaque content_uri of the NEW/compare version, from the ABAP interface's version history."
- Changed
GetInterfaceVersionSource1 field changed- changed
Input schema / properties / content_uri / descriptionPrevious value: -"Opaque content_uri taken from a GetInterfaceVersions entry."New value: +"Opaque content_uri of a version, from the ABAP interface's version history."
- Changed
GetLocalDefinitions1 field changed- changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version to read: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Changed
GetLocalMacros1 field changed- changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version to read: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Changed
GetLocalTestClass1 field changed- changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version to read: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Changed
GetLocalTypes1 field changed- changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version to read: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Changed
GetMessageClassMessage1 field changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +}
- Changed
GetMetadataExtension2 fields changed- added
Input schema / properties / partAdded value: +{ + "default": "source", + "description": "The document to read: \"source\" (default) the source code, \"metadata\" the ADT metadata document (package, responsible, description, ...).", + "enum": [ + "source", + "metadata" + ], + "type": "string" +} - changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version of the source: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Changed
GetMetadataExtensionVersionDiff2 fields changed- changed
Input schema / properties / content_uri_from / descriptionPrevious value: -"Opaque content_uri of the OLD/base version (from a GetMetadataExtensionVersions entry)."New value: +"Opaque content_uri of the OLD/base version, from the CDS metadata extension's version history." - changed
Input schema / properties / content_uri_to / descriptionPrevious value: -"Opaque content_uri of the NEW/compare version (from a GetMetadataExtensionVersions entry)."New value: +"Opaque content_uri of the NEW/compare version, from the CDS metadata extension's version history."
- Changed
GetMetadataExtensionVersionSource1 field changed- changed
Input schema / properties / content_uri / descriptionPrevious value: -"Opaque content_uri taken from a GetMetadataExtensionVersions entry."New value: +"Opaque content_uri of a version, from the CDS metadata extension's version history."
- Removed
GetNodeStructureLow - Changed
GetObjectInfo8 fields changed- added
Input schema / properties / include_descriptionsAdded value: +{ + "default": false, + "description": "[read-only] Include each leaf's description. Where the system serves ADT batch, each description is read from the leaf's metadata: one more read per leaf, which on a large tree takes most of the call (default false)", + "type": "boolean" +} - added
Input schema / properties / maxDepth / maximumAdded value: +9007199254740991 - added
Input schema / properties / maxDepth / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / maxDepth / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / objectsAdded value: +{ + "description": "[read-only] Several objects, read together (give this or parent_type and parent_name)", + "items": { + "properties": { + "object_name": { + "description": "Object name", + "type": "string" + }, + "object_type": { + "description": "Object type (e.g. DEVC/K, CLAS/OC, PROG/P)", + "type": "string" + } + }, + "required": [ + "object_type", + "object_name" + ], + "type": "object" + }, + "type": "array" +} - changed
Input schema / properties / parent_type / descriptionPrevious value: -"[read-only] Parent object type (e.g. DEVC/K, CLAS/OC, PROG/P)"New value: +"[read-only] Parent object type (e.g. DEVC/K, CLAS/OC, PROG/P); with parent_name, or give objects" - added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +} - removed
Input schema / requiredRemoved value: -[ - "parent_type", - "parent_name" -]
- Changed
GetObjectsList4 fields changed- added
Input schema / properties / objectsAdded value: +{ + "description": "[read-only] Several parents, read together (give this or parent_name)", + "items": { + "properties": { + "parent_name": { + "description": "Parent object name", + "type": "string" + }, + "parent_type": { + "description": "Parent object type (e.g. PROG/P, FUGR)", + "type": "string" + } + }, + "required": [ + "parent_type", + "parent_name" + ], + "type": "object" + }, + "type": "array" +} - changed
Input schema / properties / parent_name / descriptionPrevious value: -"[read-only] Parent object name"New value: +"[read-only] Parent object name (with parent_tech_name and parent_type; or give objects)" - added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +} - removed
Input schema / requiredRemoved value: -[ - "parent_name", - "parent_tech_name", - "parent_type" -]
- Removed
GetObjectStructureLow - Changed
GetObjectVersionDiff3 fields changed- changed
Input schema / properties / content_uri_from / descriptionPrevious value: -"Opaque content_uri of the OLD/base version (from a GetObjectVersions entry)."New value: +"Opaque content_uri of the OLD/base version (from the object's version history)." - changed
Input schema / properties / content_uri_to / descriptionPrevious value: -"Opaque content_uri of the NEW/compare version (from a GetObjectVersions entry)."New value: +"Opaque content_uri of the NEW/compare version (from the object's version history)." - changed
Input schema / properties / object_type / descriptionPrevious value: -"Object type (same value used in GetObjectVersions)."New value: +"Object type (the same value the version history was read with)."
- Changed
GetObjectVersionSource2 fields changed- changed
Input schema / properties / content_uri / descriptionPrevious value: -"Opaque content_uri taken from a GetObjectVersions version entry."New value: +"Opaque content_uri of a version, from the object's version history." - changed
Input schema / properties / object_type / descriptionPrevious value: -"Object type (same value used in GetObjectVersions)."New value: +"Object type (the same value the version history was read with)."
- Changed
GetPackageContents5 fields changed- changed
Input schema / properties / include_descriptions / descriptionPrevious value: -"Include object descriptions in response (default: true)"New value: +"Include each object's description in the response. The walk's levels are then read as single requests, several at a time, rather than in ADT batch envelopes (default: false)" - changed
Input schema / properties / package_name / descriptionPrevious value: -"Name of the ABAP package"New value: +"Name of the ABAP package (give this or package_names)" - added
Input schema / properties / package_namesAdded value: +{ + "description": "Names of several ABAP packages, read together (give this or package_name)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +} - removed
Input schema / requiredRemoved value: -[ - "package_name" -]
- Changed
GetPackageTree9 fields changed- changed
Input schema / properties / include_descriptions / defaultPrevious value: -trueNew value: +false - changed
Input schema / properties / include_descriptions / descriptionPrevious value: -"Include object descriptions in response. Default: true"New value: +"Include each object's description in the response. The package metadata and the walk's levels are then read as single requests, several at a time, rather than in ADT batch envelopes. Default: false" - added
Input schema / properties / max_depth / maximumAdded value: +9007199254740991 - added
Input schema / properties / max_depth / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / max_depth / typePrevious value: -"number"New value: +"integer" - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name"New value: +"Package name (give this or package_names)" - added
Input schema / properties / package_namesAdded value: +{ + "description": "Several package names, read together (give this or package_name)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +} - removed
Input schema / requiredRemoved value: -[ - "package_name" -]
- Added
GetProgram - Added
GetProgramVersionDiff - Added
GetProgramVersions - Added
GetProgramVersionSource - Changed
GetServiceBinding1 field changed- added
Input schema / properties / partAdded value: +{ + "default": "source", + "description": "The document to read: \"source\" (default) the source code, \"metadata\" the ADT metadata document (package, responsible, description, ...).", + "enum": [ + "source", + "metadata" + ], + "type": "string" +}
- Changed
GetServiceDefinition2 fields changed- added
Input schema / properties / partAdded value: +{ + "default": "source", + "description": "The document to read: \"source\" (default) the source code, \"metadata\" the ADT metadata document (package, responsible, description, ...).", + "enum": [ + "source", + "metadata" + ], + "type": "string" +} - changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version of the source: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Removed
GetSession - Changed
GetSqlQuery1 field changed- added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +}
- Changed
GetStructure2 fields changed- added
Input schema / properties / partAdded value: +{ + "default": "source", + "description": "The document to read: \"source\" (default) the source code, \"metadata\" the ADT metadata document (package, responsible, description, ...).", + "enum": [ + "source", + "metadata" + ], + "type": "string" +} - changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version of the source: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Changed
GetStructuresList7 fields changed- changed
Input schema / properties / structure_name / descriptionPrevious value: -"Structure name."New value: +"Structure name (or give structure_names)." - added
Input schema / properties / structure_namesAdded value: +{ + "description": "Several structure names, read together (give this or structure_name).", + "items": { + "type": "string" + }, + "type": "array" +} - changed
Input schema / properties / timeout / descriptionPrevious value: -"[read-only] Timeout in ms for each ADT request."New value: +"Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP." - added
Input schema / properties / timeout / maximumAdded value: +2147483 - added
Input schema / properties / timeout / minimumAdded value: +1 - changed
Input schema / properties / timeout / typePrevious value: -"number"New value: +"integer" - removed
Input schema / requiredRemoved value: -[ - "structure_name" -]
- Changed
GetStructureVersionDiff2 fields changed- changed
Input schema / properties / content_uri_from / descriptionPrevious value: -"Opaque content_uri of the OLD/base version (from a GetStructureVersions entry)."New value: +"Opaque content_uri of the OLD/base version, from the ABAP structure's version history." - changed
Input schema / properties / content_uri_to / descriptionPrevious value: -"Opaque content_uri of the NEW/compare version (from a GetStructureVersions entry)."New value: +"Opaque content_uri of the NEW/compare version, from the ABAP structure's version history."
- Changed
GetStructureVersionSource1 field changed- changed
Input schema / properties / content_uri / descriptionPrevious value: -"Opaque content_uri taken from a GetStructureVersions entry."New value: +"Opaque content_uri of a version, from the ABAP structure's version history."
- Changed
GetTable2 fields changed- added
Input schema / properties / partAdded value: +{ + "default": "source", + "description": "The document to read: \"source\" (default) the source code, \"metadata\" the ADT metadata document (package, responsible, description, ...).", + "enum": [ + "source", + "metadata" + ], + "type": "string" +} - changed
Input schema / properties / version / descriptionPrevious value: -"Version to read: \"active\" (default) for deployed version, \"inactive\" for modified but not activated version."New value: +"Version of the source: \"active\" (default) for the deployed version, \"inactive\" for the modified version awaiting activation."
- Changed
GetTableContents1 field changed- added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +}
- Changed
GetTableVersionDiff2 fields changed- changed
Input schema / properties / content_uri_from / descriptionPrevious value: -"Opaque content_uri of the OLD/base version (from a GetTableVersions entry)."New value: +"Opaque content_uri of the OLD/base version, from the ABAP table's version history." - changed
Input schema / properties / content_uri_to / descriptionPrevious value: -"Opaque content_uri of the NEW/compare version (from a GetTableVersions entry)."New value: +"Opaque content_uri of the NEW/compare version, from the ABAP table's version history."
- Changed
GetTableVersionSource1 field changed- changed
Input schema / properties / content_uri / descriptionPrevious value: -"Opaque content_uri taken from a GetTableVersions entry."New value: +"Opaque content_uri of a version, from the ABAP table's version history."
- Changed
GetTransaction1 field changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +}
- Removed
GetVirtualFoldersLow - Changed
GetWhereUsed4 fields changed- changed
Input schema / properties / object_name / descriptionPrevious value: -"Name of the ABAP object. For function modules the name MUST be in the form 'GROUP|FM_NAME' (function group name, pipe, function module name)."New value: +"Name of the ABAP object (with object_type; or give objects). For function modules the name MUST be in the form 'GROUP|FM_NAME' (function group name, pipe, function module name)." - added
Input schema / properties / objectsAdded value: +{ + "description": "Several objects, read together (give this or object_name and object_type). The type filters apply to every object.", + "items": { + "properties": { + "object_name": { + "description": "Name of the ABAP object; a function module as 'GROUP|FM_NAME'", + "type": "string" + }, + "object_type": { + "description": "Type of the ABAP object, as object_type takes it", + "type": "string" + } + }, + "required": [ + "object_name", + "object_type" + ], + "type": "object" + }, + "type": "array" +} - added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +} - removed
Input schema / requiredRemoved value: -[ - "object_name", - "object_type" -]
- Added
ListBackgroundRuns - Added
ListLeftoverSessions - Changed
ListTransports2 fields changed- added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +} - changed
Input schema / properties / user / descriptionPrevious value: -"SAP user name to filter to; applied client-side. If not provided, defaults to the current session user, so an unfiltered call already answers only that user's transports."New value: +"The user to filter to: an SAP user id (matched in upper case); applied client-side. If not provided, defaults to the current session user, so an unfiltered call already answers only that user's transports."
- Added
LogoffLeftoverSession - Added
MemorySnapshotDelta - Added
MemorySnapshotGet - Added
MemorySnapshotList - Added
MoveTransportObjects - Removed
ReadFunctionInclude - Changed
ReadTransportObjects1 field changed- changed
Input schema / properties / transport_number / descriptionPrevious value: -"Transport REQUEST or TASK number. Both answer: a request lists the entries of all its tasks, which is how to find WHICH task holds an object; a task lists its own. A removal must then address that task, not the request."New value: +"Transport REQUEST or TASK number. A task answers its own entries; a request answers the entries of each of its tasks, each with its `task` number — the task a removal addresses."
- Changed
RunATC4 fields changed- added
Input schema / properties / max_findings / maximumAdded value: +9007199254740991 - added
Input schema / properties / max_findings / minimumAdded value: +1 - changed
Input schema / properties / max_findings / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / objects / minItemsAdded value: +1
- Changed
RunFunctionGroupUnitTest2 fields changed- added
Input schema / properties / runnerAdded value: +{ + "default": "async", + "description": "async (default): starts the run, waits for it within a bound and returns the result, or the run_id of a run that outlasts the bound, whose status and result are read by run_id; suited to long suites. sync: one request that returns the finished result.", + "enum": [ + "async", + "sync" + ], + "type": "string" +} - added
Input schema / properties / scopeAdded value: +{ + "description": "Which tests the run covers, sent with either runner. Foreign tests are test classes linked to the object by an ABAP Doc @testing relation (a function module's tests are often linked so). With runner sync they execute only with foreign_tests true: with the defaults (foreign_tests false, add_foreign_tests_as_preview true) SAP lists them as a preview, unexecuted. Runner async executes them with the defaults as well.", + "properties": { + "add_foreign_tests_as_preview": { + "description": "List the foreign tests as a preview, unexecuted (default true).", + "type": "boolean" + }, + "foreign_tests": { + "description": "Execute the foreign tests, those linked by an ABAP Doc @testing relation (default false).", + "type": "boolean" + }, + "own_tests": { + "description": "Include the object's own tests (default true).", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
RunFunctionModuleUnitTest3 fields changed- added
Input schema / properties / function_group_nameAdded value: +{ + "description": "Function group holding the function module; required by runner sync.", + "type": "string" +} - added
Input schema / properties / runnerAdded value: +{ + "default": "async", + "description": "async (default): starts the run, waits for it within a bound and returns the result, or the run_id of a run that outlasts the bound, whose status and result are read by run_id; suited to long suites. sync: one request that returns the finished result.", + "enum": [ + "async", + "sync" + ], + "type": "string" +} - added
Input schema / properties / scopeAdded value: +{ + "description": "Which tests the run covers, sent with either runner. Foreign tests are test classes linked to the object by an ABAP Doc @testing relation (a function module's tests are often linked so). With runner sync they execute only with foreign_tests true: with the defaults (foreign_tests false, add_foreign_tests_as_preview true) SAP lists them as a preview, unexecuted. Runner async executes them with the defaults as well.", + "properties": { + "add_foreign_tests_as_preview": { + "description": "List the foreign tests as a preview, unexecuted (default true).", + "type": "boolean" + }, + "foreign_tests": { + "description": "Execute the foreign tests, those linked by an ABAP Doc @testing relation (default false).", + "type": "boolean" + }, + "own_tests": { + "description": "Include the object's own tests (default true).", + "type": "boolean" + } + }, + "type": "object" +}
- Added
RunProgramUnitTest - Changed
RuntimeAnalyzeProfilerTrace1 field changed- added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +}
- Added
RuntimeGetGatewayErrorLog - Changed
RuntimeGetProfilerTraceData1 field changed- added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +}
- Changed
RuntimeListFeeds3 fields changed- removed
Input schema / properties / feed_type / defaultRemoved value: -"descriptors" - added
Input schema / properties / feed_typesAdded value: +{ + "description": "Several feeds, read together with the same filters (give this or feed_type).", + "items": { + "enum": [ + "descriptors", + "variants", + "dumps", + "system_messages", + "gateway_errors" + ], + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +}
- Changed
RuntimeRunClass7 fields changed- added
Input schema / properties / backgroundAdded value: +{ + "description": "When true, the run goes on in the background on an ABAP session of its own and the call answers at once with a run_handle; read its answer later with GetBackgroundRun, and remove it with DiscardBackgroundRun. A started run cannot be stopped. No default: without it the call waits for the run to end.", + "type": "boolean" +} - added
Input schema / properties / max_trace_attempts / maximumAdded value: +9007199254740991 - added
Input schema / properties / max_trace_attempts / minimumAdded value: +1 - changed
Input schema / properties / max_trace_attempts / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / trace_retry_delay_ms / maximumAdded value: +9007199254740991 - added
Input schema / properties / trace_retry_delay_ms / minimumAdded value: +0 - changed
Input schema / properties / trace_retry_delay_ms / typePrevious value: -"number"New value: +"integer"
- Removed
RuntimeRunClassWithProfiling - Added
RuntimeRunProgram - Changed
RunUnitTest2 fields changed- added
Input schema / properties / runnerAdded value: +{ + "default": "async", + "description": "async (default): starts the run, waits for it within a bound and returns the result, or the run_id of a run that outlasts the bound, whose status and result are read by run_id; suited to long suites. sync: one request that returns the finished result.", + "enum": [ + "async", + "sync" + ], + "type": "string" +} - added
Input schema / properties / scopeAdded value: +{ + "description": "Which tests the run covers, sent with either runner. Foreign tests are test classes linked to the object by an ABAP Doc @testing relation (a function module's tests are often linked so). With runner sync they execute only with foreign_tests true: with the defaults (foreign_tests false, add_foreign_tests_as_preview true) SAP lists them as a preview, unexecuted. Runner async executes them with the defaults as well.", + "properties": { + "add_foreign_tests_as_preview": { + "description": "List the foreign tests as a preview, unexecuted (default true).", + "type": "boolean" + }, + "foreign_tests": { + "description": "Execute the foreign tests, those linked by an ABAP Doc @testing relation (default false).", + "type": "boolean" + }, + "own_tests": { + "description": "Include the object's own tests (default true).", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
SearchObject1 field changed- added
Input schema / properties / timeoutAdded value: +{ + "description": "Seconds to wait for the answer: a whole number, at least 1, no default — without it the call waits until SAP answers. When it passes, the read is cancelled (its ABAP session is logged off) and the call answers that nothing was changed. Set it below your MCP client's request limit — the TypeScript SDK's client cancels at 60 s; a cancel does nothing to SAP.", + "maximum": 2147483, + "minimum": 1, + "type": "integer" +}
- Added
SearchSource - Added
SortAndCompressTransportTask - Added
UpdatePackage - Added
UpdateProgram - Added
UpdateProgramUnitTest
162 tool updates
v16.0.0- Changed
ActivateBehaviorDefinition2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / name / descriptionPrevious value: -"Behavior definition name (root entity, e.g., ZI_MY_ENTITY)."New value: +"Behavior definition name (root entity)."
- Changed
ActivateClass2 fields changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Class name (e.g., ZCL_MY_CLASS)."New value: +"Class name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +}
- Changed
ActivateDataElement2 fields changed- changed
Input schema / properties / data_element_name / descriptionPrevious value: -"Data element name (e.g., ZDT_MY_ELEMENT)."New value: +"Data element name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +}
- Changed
ActivateDdl2 fields changed- changed
Input schema / properties / ddl_name / descriptionPrevious value: -"DDL source name (e.g., ZVW_MY_VIEW)."New value: +"DDL source name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +}
- Changed
ActivateDomain2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / domain_name / descriptionPrevious value: -"Domain name (e.g., ZDM_MY_DOMAIN)."New value: +"Domain name."
- Changed
ActivateFunctionGroup2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / function_group_name / descriptionPrevious value: -"Function group name (e.g., Z_FG_TEST)."New value: +"Function group name."
- Changed
ActivateFunctionModule3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / function_group_name / descriptionPrevious value: -"Function group name (e.g., Z_FG_TEST)."New value: +"Function group name." - changed
Input schema / properties / function_module_name / descriptionPrevious value: -"Function module name (e.g., Z_FM_TEST)."New value: +"Function module name."
- Changed
ActivateInterface2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / interface_name / descriptionPrevious value: -"Interface name (e.g., ZIF_MY_INTERFACE)."New value: +"Interface name."
- Changed
ActivateMetadataExtension2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / name / descriptionPrevious value: -"Metadata extension name (e.g., ZC_MY_EXTENSION)."New value: +"Metadata Extension name."
- Changed
ActivateObjects1 field changed- changed
Input schema / properties / objects / items / properties / name / descriptionPrevious value: -"Object name in uppercase (e.g., ZOK7_D_MTART, ZCL_MY_CLASS)"New value: +"Object name in uppercase"
- Changed
ActivateServiceBinding2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / name / descriptionPrevious value: -"Service binding name (e.g., ZSB_MY_SERVICE)."New value: +"Service binding name."
- Changed
ActivateServiceDefinition2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / name / descriptionPrevious value: -"Service definition name (e.g., ZSD_MY_SERVICE)."New value: +"Service definition name."
- Changed
ActivateStructure2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / structure_name / descriptionPrevious value: -"Structure name (e.g., ZST_MY_STRUCTURE)."New value: +"Structure name."
- Changed
ActivateTable2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / table_name / descriptionPrevious value: -"Table name (e.g., ZTB_MY_TABLE)."New value: +"Table name."
- Added
AddTransportObject - Changed
CheckBehaviorDefinition2 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"BehaviorDefinition name (e.g., ZI_MY_BDEF)."New value: +"BehaviorDefinition name." - added
Input schema / properties / versionAdded value: +{ + "description": "Which version to check — it goes into the checkrun body as chkrun:version, as ADT sends it. Omitted, the inactive one is checked; an object that is only active has none, and SAP answers such a check with a finding against an empty source (e.g. G46 \"REPORT/PROGRAM statement is missing\") or \"Inactive version … does not exist\" — ask for active.", + "enum": [ + "active", + "inactive" + ], + "type": "string" +}
- Changed
CheckClass1 field changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Class name (e.g., ZCL_MY_CLASS)."New value: +"Class name."
- Changed
CheckDataElement2 fields changed- changed
Input schema / properties / data_element_name / descriptionPrevious value: -"Data element name (e.g., ZDE_MY_ELEMENT)."New value: +"Data element name." - added
Input schema / properties / versionAdded value: +{ + "description": "Which version to check. Defaults to the inactive one, what a caller wants right after a write; an object that is only active has no inactive version, and SAP answers such a check with \"Error while importing object … from the database\" — ask for active.", + "enum": [ + "active", + "inactive" + ], + "type": "string" +}
- Changed
CheckDdl1 field changed- changed
Input schema / properties / ddl_name / descriptionPrevious value: -"CDS view name to check, passed as ddl_name (e.g., ZI_MY_VIEW)."New value: +"CDS view name to check, passed as ddl_name."
- Changed
CheckDomain2 fields changed- changed
Input schema / properties / domain_name / descriptionPrevious value: -"Domain name (e.g., ZDM_MY_DOMAIN)."New value: +"Domain name." - added
Input schema / properties / versionAdded value: +{ + "description": "Which version to check. Defaults to the inactive one, what a caller wants right after a write; an object that is only active has no inactive version, and SAP answers such a check with \"Error while importing object … from the database\" — ask for active.", + "enum": [ + "active", + "inactive" + ], + "type": "string" +}
- Changed
CheckFunctionGroup2 fields changed- changed
Input schema / properties / function_group_name / descriptionPrevious value: -"Function group name (e.g., ZFGRP_MY_GROUP)."New value: +"Function group name." - added
Input schema / properties / versionAdded value: +{ + "description": "Which version to check — it goes into the checkrun body as chkrun:version, as ADT sends it. Omitted, the inactive one is checked; an object that is only active has none, and SAP answers such a check with a finding against an empty source (e.g. G46 \"REPORT/PROGRAM statement is missing\") or \"Inactive version … does not exist\" — ask for active.", + "enum": [ + "active", + "inactive" + ], + "type": "string" +}
- Changed
CheckFunctionModule1 field changed- changed
Input schema / properties / function_module_name / descriptionPrevious value: -"Function module name (e.g., Z_MY_FUNCTION)."New value: +"Function module name."
- Changed
CheckInterface2 fields changed- changed
Input schema / properties / interface_name / descriptionPrevious value: -"Interface name (e.g., ZIF_MY_INTERFACE)."New value: +"Interface name." - added
Input schema / properties / versionAdded value: +{ + "description": "Which version to check — it goes into the checkrun body as chkrun:version, as ADT sends it. Omitted, the inactive one is checked; an object that is only active has none, and SAP answers such a check with a finding against an empty source (e.g. G46 \"REPORT/PROGRAM statement is missing\") or \"Inactive version … does not exist\" — ask for active.", + "enum": [ + "active", + "inactive" + ], + "type": "string" +}
- Changed
CheckMetadataExtension2 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Metadata extension name (e.g., ZC_MY_DDLX)."New value: +"Metadata extension name." - added
Input schema / properties / versionAdded value: +{ + "default": "active", + "description": "Which version to check: 'active' (default) or 'inactive', the unsaved one right after a write. This endpoint does not fall back to whichever exists.", + "enum": [ + "active", + "inactive" + ], + "type": "string" +}
- Changed
CheckPackage3 fields changed- changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZMY_PACKAGE)."New value: +"Package name." - changed
Input schema / properties / super_package / descriptionPrevious value: -"Super package name (parent package)."New value: +"Optional, and not read by the check endpoint — see CheckPackageLow. Requiring it refused the call before any request was made, for a package with no parent." - changed
Input schema / requiredPrevious value: -[ - "package_name", - "super_package" -]New value: +[ + "package_name" +]
- Changed
CheckStructure1 field changed- changed
Input schema / properties / structure_name / descriptionPrevious value: -"Structure name (e.g., ZST_MY_STRUCTURE)."New value: +"Structure name."
- Changed
CheckTable1 field changed- changed
Input schema / properties / table_name / descriptionPrevious value: -"Table name (e.g., ZMCP_MY_TABLE)."New value: +"Table name."
- Changed
CreateBehaviorDefinition2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number"New value: +"Transport request number, not a task"
- Changed
CreateBehaviorImplementation5 fields changed- changed
Input schema / properties / behavior_definition / descriptionPrevious value: -"Behavior Definition name (e.g., ZI_MY_ENTITY). The behavior definition must exist."New value: +"Behavior Definition name. The behavior definition must exist. Accepted for compatibility; not forwarded to the create request — the shipped create endpoint posts a metadata document (name/description/package) only. The class is bound to this behavior definition when its FOR BEHAVIOR OF main source is written, separately, via UpdateClass." - changed
Input schema / properties / class_name / descriptionPrevious value: -"Behavior Implementation class name (e.g., ZBP_MY_ENTITY). Must follow SAP naming conventions (typically starts with ZBP_ for behavior implementations)."New value: +"Behavior Implementation class name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZOK_LOCAL, $TMP for local objects)"New value: +"Package name" - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Changed
CreateCdsUnitTest8 fields changed- changed
Input schema / properties / cds_view_name / descriptionPrevious value: -"CDS view name to validate for unit test doubles."New value: +"CDS view under test (DDL source). Must be active and testable with test doubles." - changed
Input schema / properties / class_name / descriptionPrevious value: -"Global test class name (e.g., ZCL_CDS_TEST)."New value: +"Name of the new global class that holds the tests." - removed
Input schema / properties / descriptionRemoved value: -{ - "description": "Optional description for the global test class.", - "type": "string" -} - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZOK_TEST_PKG_01, $TMP)."New value: +"Package of the new test class." - added
Input schema / properties / test_class_sourceAdded value: +{ + "description": "ABAP source of the local test classes: definitions and implementations, FOR TESTING.", + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (required for transportable packages)."New value: +"Transport request, not a task. Required for a transportable package." - changed
Input schema / requiredPrevious value: -[ - "class_name", - "package_name", - "cds_view_name" -]New value: +[ + "cds_view_name", + "class_name", + "package_name", + "test_class_source" +]
- Changed
CreateClass4 fields changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Class name (e.g., ZCL_TEST_CLASS_001)."New value: +"Class name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZOK_LAB, $TMP)."New value: +"Package name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (required for transportable packages)."New value: +"Transport request number (required for transportable packages), not a task."
- Changed
CreateDataElement4 fields changed- changed
Input schema / properties / data_element_name / descriptionPrevious value: -"Data element name (e.g., ZZ_E_TEST_001). Must follow SAP naming conventions."New value: +"Data element name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZOK_LOCAL, $TMP for local objects)"New value: +"Package name" - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Changed
CreateDdl4 fields changed- changed
Input schema / properties / ddl_name / descriptionPrevious value: -"DDL source name (e.g., ZOK_R_TEST_0002, Z_I_MY_VIEW)."New value: +"DDL source name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZOK_LAB, $TMP for local objects)"New value: +"Package name" - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (required for transportable packages)."New value: +"Transport request number (required for transportable packages), not a task."
- Changed
CreateDomain4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / domain_name / descriptionPrevious value: -"Domain name (e.g., ZZ_TEST_0001). Must follow SAP naming conventions."New value: +"Domain name." - changed
Input schema / properties / package_name / descriptionPrevious value: -"(optional) Package name (e.g., ZOK_LOCAL, $TMP for local objects)"New value: +"(optional) Package name" - changed
Input schema / properties / transport_request / descriptionPrevious value: -"(optional) Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"(optional) Transport request number, not a task. Required for transportable packages."
- Changed
CreateFunctionGroup4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / function_group_name / descriptionPrevious value: -"Function group name (e.g., ZTEST_FG_001). Must follow SAP naming conventions (start with Z or Y, max 26 chars)."New value: +"Function group name. Up to 26 characters." - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZOK_LAB, $TMP for local objects)"New value: +"Package name" - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Added
CreateFunctionGroupUnitTest - Changed
CreateFunctionInclude4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / function_group_name / descriptionPrevious value: -"Parent function group name (e.g., ZTEST_FG_001)"New value: +"Parent function group name" - changed
Input schema / properties / include_name / descriptionPrevious value: -"Include name (e.g., LZTEST_FG_001F01)."New value: +"Include name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Changed
CreateFunctionModule4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / function_group_name / descriptionPrevious value: -"Parent function group name (e.g., ZTEST_FG_001)"New value: +"Parent function group name" - changed
Input schema / properties / function_module_name / descriptionPrevious value: -"Function module name (e.g., Z_TEST_FUNCTION_001). Must follow SAP naming conventions (start with Z or Y, max 30 chars)."New value: +"Function module name. Up to 30 characters." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Changed
CreateInterface4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / interface_name / descriptionPrevious value: -"Interface name (e.g., ZIF_TEST_INTERFACE_001). Must follow SAP naming conventions (start with Z or Y)."New value: +"Interface name." - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZOK_LAB, $TMP for local objects)"New value: +"Package name" - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Changed
CreateMessageClass4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / message_class_name / descriptionPrevious value: -"Message class name (e.g., ZMY_MSGS). Must follow SAP naming conventions."New value: +"Message class name." - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZMY_PKG, $TMP for local objects)."New value: +"Package name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"(optional) Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"(optional) Transport request number, not a task. Required for transportable packages."
- Changed
CreateMessageClassMessage2 fields changed- changed
Input schema / properties / message_class_name / descriptionPrevious value: -"Parent message class name (e.g., ZMY_MSGS)."New value: +"Parent message class name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"(optional) Transport request number. Required for transportable objects."New value: +"(optional) Transport request number, not a task. Required for transportable objects."
- Changed
CreateMetadataExtension2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number"New value: +"Transport request number, not a task"
- Changed
CreatePackage6 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZOK_TEST_0002). Must follow SAP naming conventions (start with Z or Y for customer namespace)."New value: +"Package name." - changed
Input schema / properties / software_component / descriptionPrevious value: -"Software component (e.g., HOME, ZLOCAL). If not provided, SAP will set a default (typically ZLOCAL for local packages)."New value: +"Software component. If not provided, SAP will set a default." - changed
Input schema / properties / super_package / descriptionPrevious value: -"Parent package name (e.g., ZOK_PACKAGE). Required for structure packages."New value: +"Parent package name. Required for structure packages." - changed
Input schema / properties / transport_layer / descriptionPrevious value: -"Transport layer (e.g., ZE19). Required for transportable packages."New value: +"Transport layer. Required for transportable packages." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required if package is transportable."New value: +"Transport request number, not a task. Required if the package is transportable."
- Changed
CreateServiceBinding3 fields changed- changed
Input schema / properties / activate / descriptionPrevious value: -"Activate service binding after create. Default: true."New value: +"Activate and generate the service binding after create. Default: true." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - added
Input schema / properties / response_format / descriptionAdded value: +"Accepted for backward compatibility; no longer affects the answer, which is always the structured write result."
- Changed
CreateServiceDefinition4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZOK_LOCAL, $TMP for local objects)"New value: +"Package name" - changed
Input schema / properties / service_definition_name / descriptionPrevious value: -"Service definition name (e.g., ZSD_MY_SERVICE). Must follow SAP naming conventions (start with Z or Y)."New value: +"Service definition name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Changed
CreateStructure6 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / fields / descriptionPrevious value: -"Array of structure fields"New value: +"Does not reach creation — the shipped create endpoint posts a metadata document only. Use UpdateStructure (with ddl_code) after creating to set the fields." - changed
Input schema / properties / includes / descriptionPrevious value: -"Include other structures in this structure"New value: +"Does not reach creation — see `fields`. Use UpdateStructure (with ddl_code) after creating to set includes." - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZOK_LOCAL, $TMP for local objects)"New value: +"Package name" - changed
Input schema / properties / structure_name / descriptionPrevious value: -"Structure name (e.g., ZZ_S_TEST_001). Must follow SAP naming conventions."New value: +"Structure name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Changed
CreateTable5 fields changed- changed
Input schema / properties / description / descriptionPrevious value: -"Table description for validation and creation."New value: +"Does not reach creation — the shipped create endpoint has no description field of its own. Use UpdateTable (with ddl_code) after creating to set the DDL source, which carries the description." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZOK_LOCAL, $TMP for local objects)"New value: +"Package name" - changed
Input schema / properties / table_name / descriptionPrevious value: -"Table name (e.g., ZZ_TEST_TABLE_001). Must follow SAP naming conventions."New value: +"Table name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Changed
CreateTransport1 field changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +}
- Added
CreateTransportTask - Changed
CreateUnitTest11 fields changed- added
Input schema / properties / class_nameAdded value: +{ + "description": "Class that holds the tests. Must already exist.", + "type": "string" +} - removed
Input schema / properties / contextRemoved value: -{ - "description": "Optional context string shown in SAP tools.", - "type": "string" -} - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - removed
Input schema / properties / durationRemoved value: -{ - "properties": { - "long": { - "type": "boolean" - }, - "medium": { - "type": "boolean" - }, - "short": { - "type": "boolean" - } - }, - "type": "object" -} - removed
Input schema / properties / risk_levelRemoved value: -{ - "properties": { - "critical": { - "type": "boolean" - }, - "dangerous": { - "type": "boolean" - }, - "harmless": { - "type": "boolean" - } - }, - "type": "object" -} - removed
Input schema / properties / scopeRemoved value: -{ - "properties": { - "add_foreign_tests_as_preview": { - "type": "boolean" - }, - "foreign_tests": { - "type": "boolean" - }, - "own_tests": { - "type": "boolean" - } - }, - "type": "object" -} - added
Input schema / properties / test_class_sourceAdded value: +{ + "description": "ABAP source of the local test classes: definitions and implementations, FOR TESTING. Replaces what the include holds.", + "type": "string" +} - removed
Input schema / properties / testsRemoved value: -{ - "description": "List of container/test class pairs to execute.", - "items": { - "properties": { - "container_class": { - "description": "Class that owns the test include (e.g., ZCL_MAIN_CLASS).", - "type": "string" - }, - "test_class": { - "description": "Test class name inside the include (e.g., LTCL_MAIN_CLASS).", - "type": "string" - } - }, - "required": [ - "container_class", - "test_class" - ], - "type": "object" - }, - "type": "array" -} - removed
Input schema / properties / titleRemoved value: -{ - "description": "Optional title for the ABAP Unit run.", - "type": "string" -} - added
Input schema / properties / transport_requestAdded value: +{ + "description": "Transport request, not a task. Required for a transportable object.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "tests" -]New value: +[ + "class_name", + "test_class_source" +]
- Changed
DeleteBehaviorDefinition3 fields changed- changed
Input schema / properties / behavior_definition_name / descriptionPrevious value: -"BehaviorDefinition name (e.g., Z_MY_BEHAVIORDEFINITION)."New value: +"BehaviorDefinition name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteBehaviorImplementation3 fields changed- changed
Input schema / properties / behavior_implementation_name / descriptionPrevious value: -"BehaviorImplementation name (e.g., Z_MY_BEHAVIORIMPLEMENTATION)."New value: +"BehaviorImplementation name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteCdsUnitTest3 fields changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Global test class name (e.g., ZCL_CDS_TEST)."New value: +"Test class of the CDS view." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (required for transportable packages)."New value: +"Transport request, not a task. Required for a transportable object."
- Changed
DeleteClass3 fields changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Class name (e.g., ZCL_MY_CLASS)."New value: +"Class name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteDataElement3 fields changed- changed
Input schema / properties / data_element_name / descriptionPrevious value: -"Data element name (e.g., Z_MY_DATA_ELEMENT)."New value: +"Data element name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteDdl3 fields changed- changed
Input schema / properties / ddl_name / descriptionPrevious value: -"DDL source name (e.g., Z_MY_VIEW)."New value: +"DDL source name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteDomain3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / domain_name / descriptionPrevious value: -"Domain name (e.g., Z_MY_DOMAIN)."New value: +"Domain name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteFunctionGroup3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / function_group_name / descriptionPrevious value: -"FunctionGroup name (e.g., Z_MY_FUNCTIONGROUP)."New value: +"FunctionGroup name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteFunctionInclude4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / function_group_name / descriptionPrevious value: -"Function group name containing the include (e.g., Z_MY_FG)."New value: +"Function group name containing the include." - changed
Input schema / properties / include_name / descriptionPrevious value: -"Include name (e.g., LZ_MY_FGF01)."New value: +"Include name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteFunctionModule4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / function_group_name / descriptionPrevious value: -"FunctionGroup name containing the function module (e.g., Z_MY_FUNCTIONGROUP)."New value: +"FunctionGroup name containing the function module." - changed
Input schema / properties / function_module_name / descriptionPrevious value: -"FunctionModule name (e.g., Z_MY_FUNCTIONMODULE)."New value: +"FunctionModule name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteInterface3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / interface_name / descriptionPrevious value: -"Interface name (e.g., Z_MY_INTERFACE)."New value: +"Interface name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteLocalDefinitions3 fields changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Parent class name (e.g., ZCL_MY_CLASS)."New value: +"Parent class name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number."New value: +"Transport request number, not a task."
- Changed
DeleteLocalMacros3 fields changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Parent class name (e.g., ZCL_MY_CLASS)."New value: +"Parent class name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number."New value: +"Transport request number, not a task."
- Changed
DeleteLocalTestClass3 fields changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Parent class name (e.g., ZCL_MY_CLASS)."New value: +"Parent class name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (required for transportable objects)."New value: +"Transport request number (required for transportable objects), not a task."
- Changed
DeleteLocalTypes3 fields changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Parent class name (e.g., ZCL_MY_CLASS)."New value: +"Parent class name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number."New value: +"Transport request number, not a task."
- Changed
DeleteMessageClass3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / message_class_name / descriptionPrevious value: -"Message class name (e.g., ZMY_MSGS)."New value: +"Message class name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects, optional for local ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects, optional for local ones."
- Changed
DeleteMessageClassMessage2 fields changed- changed
Input schema / properties / message_class_name / descriptionPrevious value: -"Parent message class name (e.g., ZMY_MSGS)."New value: +"Parent message class name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number. Required for transportable objects, optional for local ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects, optional for local ones."
- Changed
DeleteMetadataExtension3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / metadata_extension_name / descriptionPrevious value: -"MetadataExtension name (e.g., Z_MY_METADATAEXTENSION)."New value: +"MetadataExtension name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteServiceBinding2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - added
Input schema / properties / response_format / descriptionAdded value: +"Accepted for backward compatibility; no longer affects the answer, which is always the structured deletion result."
- Changed
DeleteServiceDefinition3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / service_definition_name / descriptionPrevious value: -"ServiceDefinition name (e.g., Z_MY_SERVICEDEFINITION)."New value: +"ServiceDefinition name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteStructure3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / structure_name / descriptionPrevious value: -"Structure name (e.g., Z_MY_STRUCTURE)."New value: +"Structure name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteTable3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / table_name / descriptionPrevious value: -"Table name (e.g., Z_MY_TABLE)."New value: +"Table name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable objects. Optional for local objects ($TMP)."New value: +"Transport request number, not a task. Required for transportable objects. Optional for local objects."
- Changed
DeleteUnitTest5 fields changed- added
Input schema / properties / class_nameAdded value: +{ + "description": "Class that holds the tests. Must already exist.", + "type": "string" +} - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - removed
Input schema / properties / run_idRemoved value: -{ - "description": "Run identifier returned by CreateUnitTest/RunUnitTest.", - "type": "string" -} - added
Input schema / properties / transport_requestAdded value: +{ + "description": "Transport request, not a task. Required for a transportable object.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "run_id" -]New value: +[ + "class_name" +]
- Changed
GetAdtTypes1 field changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +}
- Added
GetATCFindings - Added
GetATCRunStatus - Changed
GetBehaviorDefinition1 field changed- changed
Input schema / properties / behavior_definition_name / descriptionPrevious value: -"BehaviorDefinition name (e.g., Z_MY_BEHAVIORDEFINITION)."New value: +"BehaviorDefinition name."
- Changed
GetBehaviorImplementation1 field changed- changed
Input schema / properties / behavior_implementation_name / descriptionPrevious value: -"BehaviorImplementation name (e.g., Z_MY_BEHAVIORIMPLEMENTATION)."New value: +"BehaviorImplementation name."
- Removed
GetCdsUnitTest - Removed
GetCdsUnitTestResult - Removed
GetCdsUnitTestStatus - Changed
GetClass1 field changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Class name (e.g., ZCL_MY_CLASS)."New value: +"Class name."
- Changed
GetDataElement1 field changed- changed
Input schema / properties / data_element_name / descriptionPrevious value: -"Data element name (e.g., Z_MY_DATA_ELEMENT)."New value: +"Data element name."
- Changed
GetDdl1 field changed- changed
Input schema / properties / ddl_name / descriptionPrevious value: -"DDL source name (e.g., Z_MY_VIEW)."New value: +"DDL source name."
- Changed
GetDomain1 field changed- changed
Input schema / properties / domain_name / descriptionPrevious value: -"Domain name (e.g., Z_MY_DOMAIN)."New value: +"Domain name."
- Changed
GetFunctionGroup1 field changed- changed
Input schema / properties / function_group_name / descriptionPrevious value: -"FunctionGroup name (e.g., Z_MY_FUNCTIONGROUP)."New value: +"FunctionGroup name."
- Changed
GetFunctionModule2 fields changed- changed
Input schema / properties / function_group_name / descriptionPrevious value: -"FunctionGroup name containing the function module (e.g., Z_MY_FUNCTIONGROUP)."New value: +"FunctionGroup name containing the function module." - changed
Input schema / properties / function_module_name / descriptionPrevious value: -"FunctionModule name (e.g., Z_MY_FUNCTIONMODULE)."New value: +"FunctionModule name."
- Changed
GetInactiveObjects1 field changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +}
- Changed
GetInterface1 field changed- changed
Input schema / properties / interface_name / descriptionPrevious value: -"Interface name (e.g., Z_MY_INTERFACE)."New value: +"Interface name."
- Changed
GetLocalDefinitions1 field changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Parent class name (e.g., ZCL_MY_CLASS)."New value: +"Parent class name."
- Changed
GetLocalMacros1 field changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Parent class name (e.g., ZCL_MY_CLASS)."New value: +"Parent class name."
- Changed
GetLocalTestClass1 field changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Parent class name (e.g., ZCL_MY_CLASS)."New value: +"Parent class name."
- Changed
GetLocalTypes1 field changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Parent class name (e.g., ZCL_MY_CLASS)."New value: +"Parent class name."
- Changed
GetMessageClass1 field changed- changed
Input schema / properties / message_class_name / descriptionPrevious value: -"Message class name (e.g., ZMY_MSGS)."New value: +"Message class name."
- Changed
GetMessageClassMessage1 field changed- changed
Input schema / properties / message_class_name / descriptionPrevious value: -"Parent message class name (e.g., ZMY_MSGS)."New value: +"Parent message class name."
- Changed
GetMetadataExtension1 field changed- changed
Input schema / properties / metadata_extension_name / descriptionPrevious value: -"MetadataExtension name (e.g., Z_MY_METADATAEXTENSION)."New value: +"MetadataExtension name."
- Changed
GetNodeStructureLow2 fields changed- changed
Input schema / properties / node_id / defaultPrevious value: -"0000"New value: +"000000" - changed
Input schema / properties / node_id / descriptionPrevious value: -"Optional node ID (default: \"0000\" for root). Use to fetch child nodes."New value: +"Optional node ID (default: \"000000\", the root). Use to fetch child nodes. \"0000\" is not the root: the server answers it with an empty body."
- Changed
GetObjectInfo1 field changed- changed
Input schema / properties / maxDepth / descriptionPrevious value: -"[read-only] Maximum tree depth (default depends on type)"New value: +"[read-only] Maximum tree depth (default depends on type). Every object's own type folders and their contents are always shown (one tier); a higher value only descends further for PACKAGES, expanding nested subpackages that many tiers deep — no captured node-structure document shows a non-package object usefully recursable beyond its own type folders, so other object types are capped at one tier regardless of a higher value here."
- Changed
GetObjectsByType1 field changed- changed
Input schema / properties / format / descriptionPrevious value: -"[read-only] Output format: 'raw' or 'parsed'"New value: +"[read-only] Output format: 'parsed' (default). 'raw' is accepted for backward compatibility but answers the same parsed text — see the note on `nodeLevel` below."
- Changed
GetObjectStructure1 field changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +}
- Changed
GetObjectStructureLow2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / object_name / descriptionPrevious value: -"Object name (e.g., \"ZMY_CLASS\", \"ZMY_PROGRAM\")"New value: +"Object name"
- Changed
GetObjectVersions1 field changed- changed
Input schema / properties / object_name / descriptionPrevious value: -"Object name (e.g., ZCL_MY_CLASS, ZIF_MY_INTERFACE, Z_MY_TABLE)."New value: +"Object name."
- Changed
GetPackage2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., Z_MY_PACKAGE)."New value: +"Package name."
- Changed
GetPackageContents1 field changed- changed
Input schema / properties / package_name / descriptionPrevious value: -"Name of the ABAP package (e.g., \"ZMY_PACKAGE\")"New value: +"Name of the ABAP package"
- Changed
GetPackageTree1 field changed- changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., \"ZMY_PACKAGE\")"New value: +"Package name"
- Changed
GetServiceBinding1 field changed- changed
Input schema / properties / service_binding_name / descriptionPrevious value: -"Service binding name (for example: ZUI_MY_BINDING). Case-insensitive."New value: +"Service binding name. Case-insensitive."
- Added
GetServiceBindingPreviewUrl - Changed
GetServiceDefinition1 field changed- changed
Input schema / properties / service_definition_name / descriptionPrevious value: -"ServiceDefinition name (e.g., Z_MY_SERVICEDEFINITION)."New value: +"ServiceDefinition name."
- Changed
GetSqlQuery1 field changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +}
- Changed
GetStructure1 field changed- changed
Input schema / properties / structure_name / descriptionPrevious value: -"Structure name (e.g., Z_MY_STRUCTURE)."New value: +"Structure name."
- Changed
GetStructuresList1 field changed- changed
Input schema / properties / structure_name / descriptionPrevious value: -"Structure name (e.g., Z_MY_STRUCTURE)."New value: +"Structure name."
- Changed
GetTable1 field changed- changed
Input schema / properties / table_name / descriptionPrevious value: -"Table name (e.g., Z_MY_TABLE)."New value: +"Table name."
- Changed
GetTableContents1 field changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +}
- Changed
GetTransport1 field changed- changed
Input schema / properties / transport_number / descriptionPrevious value: -"Transport request number (e.g., E19K905635, DEVK905123)"New value: +"Transport request number, not a task"
- Removed
GetUnitTest - Changed
GetUnitTestResult4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - removed
Input schema / properties / formatRemoved value: -{ - "description": "Result format: abapunit or junit.", - "enum": [ - "abapunit", - "junit" - ], - "type": "string" -} - changed
Input schema / properties / run_id / descriptionPrevious value: -"Run identifier returned by unit test run."New value: +"Run id a unit test run answered." - removed
Input schema / properties / with_navigation_urisRemoved value: -{ - "default": false, - "description": "Include navigation URIs in result if supported.", - "type": "boolean" -}
- Removed
GetUnitTestStatus - Changed
GetVirtualFoldersLow2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / object_search_pattern / descriptionPrevious value: -"Object search pattern (e.g., \"*\", \"Z*\", \"ZCL_*\"). Default: \"*\""New value: +"Object search pattern: \"*\" matches any name, and a trailing \"*\" matches a prefix. Default: \"*\""
- Changed
GetWhereUsed1 field changed- changed
Input schema / properties / object_type / descriptionPrevious value: -"Type of the ABAP object. Case-insensitive. Accepts either a human alias or an ADT type code. Supported values: 'class' / 'clas/oc', 'interface' / 'intf/if', 'program' / 'prog/p', 'include', 'function' / 'functiongroup' / 'fugr' (function group), 'functionmodule' / 'function_module' / 'fugr/ff' (function module — see object_name format), 'package' / 'devc/k', 'table' / 'tabl/dt', 'structure' / 'stru/dt', 'domain' / 'doma/dd', 'dataelement' / 'dtel', 'view' / 'ddls/df' (CDS DDL source only — classic DDIC views are not supported). Any other value throws 'Unsupported object type'."New value: +"Type of the ABAP object. Case-insensitive. Accepts either a human alias or an ADT type code. Supported values: 'class' / 'clas/oc', 'interface' / 'intf/if', 'program' / 'prog/p', 'include', 'function' / 'functiongroup' / 'fugr' (function group), 'functionmodule' / 'function_module' / 'fugr/ff' (function module — see object_name format), 'package' / 'devc/k', 'table' / 'tabl/dt', 'structure' / 'stru/dt', 'domain' / 'doma/dd', 'dataelement' / 'dtel', 'view' / 'ddls/df' (CDS DDL source)."
- Changed
ListFunctionGroupIncludes1 field changed- changed
Input schema / properties / function_group_name / descriptionPrevious value: -"Function group name (e.g., Z_MY_FG)."New value: +"Function group name."
- Changed
ListFunctionModules1 field changed- changed
Input schema / properties / function_group_name / descriptionPrevious value: -"Function group name (e.g., Z_MY_FG)."New value: +"Function group name."
- Changed
ListServiceBindingTypes1 field changed- added
Input schema / properties / response_format / descriptionAdded value: +"Shape of the answer: the document as the server sent it, the same parsed, or a flat list of the type names."
- Changed
ListTransports3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / modifiable_only / descriptionPrevious value: -"Only return modifiable (not yet released) transports. Default: true."New value: +"Only return modifiable (not yet released) transports; applied client-side. Default: true." - changed
Input schema / properties / user / descriptionPrevious value: -"SAP user name. If not provided, returns transports for the current user."New value: +"SAP user name to filter to; applied client-side. If not provided, defaults to the current session user, so an unfiltered call already answers only that user's transports."
- Changed
ReadFunctionInclude2 fields changed- changed
Input schema / properties / function_group_name / descriptionPrevious value: -"Function group name containing the include (e.g., Z_MY_FG)."New value: +"Function group name containing the include." - changed
Input schema / properties / include_name / descriptionPrevious value: -"Include name (e.g., LZ_MY_FGTOP, LZ_MY_FGU01)."New value: +"Include name."
- Added
ReadTransportActionLog - Added
ReadTransportObjects - Added
RemoveTransportObject - Added
RunATC - Added
RunCdsUnitTest - Added
RunFunctionGroupUnitTest - Added
RunFunctionModuleUnitTest - Changed
RuntimeGetDumpById2 fields changed- changed
Input schema / properties / dump_id / descriptionPrevious value: -"Full runtime dump ID (e.g. from RuntimeListFeeds)."New value: +"The dump's id, or its URI as a dumps feed entry carries it." - changed
Input schema / properties / response_mode / descriptionPrevious value: -"Controls what is returned: \"payload\" — full parsed dump data, \"summary\" — compact key facts only (title, exception, program, line, user, date…), \"both\" — summary + full payload."New value: +"What is returned: \"payload\" — the parsed dump, \"summary\" — runtime error, exception, terminated program, time, user and termination position, \"both\" — summary and payload."
- Changed
RuntimeListFeeds8 fields changed- added
Input schema / properties / componentAdded value: +{ + "description": "Dumps whose application component contains this text, in any case.", + "type": "string" +} - added
Input schema / properties / exceptionAdded value: +{ + "description": "Dumps whose exception class contains this text, in any case.", + "type": "string" +} - changed
Input schema / properties / max_results / descriptionPrevious value: -"Maximum number of entries to return."New value: +"Most entries to return, up to 1000; SAP answers at most 100 per request and the pages are read in turn. An answer holds whole seconds, so it may hold a few entries fewer, or a crowded second more, than asked. Default: 50." - added
Input schema / properties / object_nameAdded value: +{ + "description": "Dumps whose terminated object name contains this text, in any case.", + "type": "string" +} - added
Input schema / properties / packageAdded value: +{ + "description": "Dumps whose object package contains this text, in any case.", + "type": "string" +} - added
Input schema / properties / runtime_errorAdded value: +{ + "description": "Dumps whose runtime error contains this text, in any case.", + "type": "string" +} - changed
Input schema / properties / to / descriptionPrevious value: -"End of time range in YYYYMMDDHHMMSS format."New value: +"End of time range in YYYYMMDDHHMMSS format, inclusive; pass a previous next_to here to read on." - changed
Input schema / properties / user / descriptionPrevious value: -"Filter feed entries by SAP username."New value: +"Entries of this SAP user (exact match)."
- Changed
RuntimeRunClass4 fields changed- changed
Input schema / properties / max_trace_attempts / descriptionPrevious value: -"Max polling attempts to resolve traceId after execution (default 5). Only used when profile=true."New value: +"Max attempts to poll the profiler feed for the trace this run produced (default 5). Only used when profile=true." - changed
Input schema / properties / profile / descriptionPrevious value: -"When true, run with the profiler and resolve the resulting traceId. Default false."New value: +"When true, run with the profiler and search the profiler feed for the resulting traceId. Default false." - changed
Input schema / properties / trace_lookup_uris / descriptionPrevious value: -"Additional URIs to consult when resolving the trace (advanced, profile=true)."New value: +"Accepted for backward compatibility; no longer affects trace lookup. adt-clients 19 lists the profiler feed as one endpoint, optionally filtered by user — there is nowhere to put a URI." - changed
Input schema / properties / trace_retry_delay_ms / descriptionPrevious value: -"Delay in ms between trace polling attempts (default 2000). Only used when profile=true."New value: +"Delay in ms between profiler-feed polling attempts (default 2000). Only used when profile=true."
- Changed
RuntimeRunClassWithProfiling3 fields changed- changed
Input schema / properties / max_trace_attempts / descriptionPrevious value: -"Max polling attempts to resolve traceId after execution (default 5). Increase for slow systems (e.g. SAP trial cloud)."New value: +"Max attempts to poll the profiler feed for the trace this run produced (default 5). Increase for slow systems (e.g. SAP trial cloud)." - changed
Input schema / properties / trace_lookup_uris / descriptionPrevious value: -"Additional URIs to consult when resolving the trace (advanced)."New value: +"Accepted for backward compatibility; no longer affects trace lookup. adt-clients 19 lists the profiler feed as one endpoint, optionally filtered by user — there is nowhere to put a URI." - changed
Input schema / properties / trace_retry_delay_ms / descriptionPrevious value: -"Delay in ms between trace polling attempts (default 2000)."New value: +"Delay in ms between profiler-feed polling attempts (default 2000)."
- Changed
RunUnitTest9 fields changed- added
Input schema / properties / class_nameAdded value: +{ + "description": "Class whose tests run.", + "type": "string" +} - removed
Input schema / properties / contextRemoved value: -{ - "description": "Optional context string shown in SAP tools.", - "type": "string" -} - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - removed
Input schema / properties / durationRemoved value: -{ - "properties": { - "long": { - "type": "boolean" - }, - "medium": { - "type": "boolean" - }, - "short": { - "type": "boolean" - } - }, - "type": "object" -} - removed
Input schema / properties / risk_levelRemoved value: -{ - "properties": { - "critical": { - "type": "boolean" - }, - "dangerous": { - "type": "boolean" - }, - "harmless": { - "type": "boolean" - } - }, - "type": "object" -} - removed
Input schema / properties / scopeRemoved value: -{ - "properties": { - "add_foreign_tests_as_preview": { - "type": "boolean" - }, - "foreign_tests": { - "type": "boolean" - }, - "own_tests": { - "type": "boolean" - } - }, - "type": "object" -} - removed
Input schema / properties / testsRemoved value: -{ - "description": "List of container/test class pairs to execute.", - "items": { - "properties": { - "container_class": { - "description": "Class that owns the test include (e.g., ZCL_MAIN_CLASS).", - "type": "string" - }, - "test_class": { - "description": "Test class name inside the include (e.g., LTCL_MAIN_CLASS).", - "type": "string" - } - }, - "required": [ - "container_class", - "test_class" - ], - "type": "object" - }, - "type": "array" -} - removed
Input schema / properties / titleRemoved value: -{ - "description": "Optional title for the ABAP Unit run.", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "tests" -]New value: +[ + "class_name" +]
- Changed
SearchObject1 field changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +}
- Changed
UpdateBehaviorDefinition2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Changed
UpdateBehaviorImplementation4 fields changed- changed
Input schema / properties / behavior_definition / descriptionPrevious value: -"Behavior Definition name (e.g., ZI_MY_ENTITY). Must match the behavior definition used when creating the class."New value: +"Referenced Behavior Definition name. Accepted for compatibility; not forwarded to the write — the shipped update() no longer reads it (it writes the implementations include only, never the FOR BEHAVIOR OF main source)." - changed
Input schema / properties / class_name / descriptionPrevious value: -"Behavior Implementation class name (e.g., ZBP_MY_ENTITY). Must exist in the system."New value: +"Behavior Implementation class name. Must exist in the system." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Optional if object is local or already in transport."New value: +"Transport request number, not a task. Optional if object is local or already in transport."
- Changed
UpdateCdsUnitTest4 fields changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Global test class name (e.g., ZCL_CDS_TEST)."New value: +"Test class of the CDS view. Must already exist." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / test_class_source / descriptionPrevious value: -"Updated local test class ABAP source code."New value: +"ABAP source of the local test classes: definitions and implementations, FOR TESTING. Replaces what the include holds." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (required for transportable packages)."New value: +"Transport request, not a task. Required for a transportable object."
- Changed
UpdateClass3 fields changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Class name (e.g., ZCL_TEST_CLASS_001)."New value: +"Class name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Changed
UpdateDataElement4 fields changed- changed
Input schema / properties / data_element_name / descriptionPrevious value: -"Data element name to update (e.g., ZZ_TEST_DTEL_01)"New value: +"Data element name to update" - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZOK_LOCAL, $TMP for local objects)"New value: +"Package name" - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Changed
UpdateDdl3 fields changed- changed
Input schema / properties / ddl_name / descriptionPrevious value: -"DDL source name (e.g., ZOK_R_TEST_0002)."New value: +"DDL source name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Changed
UpdateDomain4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / domain_name / descriptionPrevious value: -"Domain name to update (e.g., ZZ_TEST_0001)"New value: +"Domain name to update" - changed
Input schema / properties / package_name / descriptionPrevious value: -"Package name (e.g., ZOK_LOCAL, $TMP for local objects)"New value: +"Package name" - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable packages."New value: +"Transport request number, not a task. Required for transportable packages."
- Changed
UpdateFunctionGroup3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / function_group_name / descriptionPrevious value: -"Function group name (e.g., ZTEST_FG_001). Must exist in the system."New value: +"Function group name. Must exist in the system." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Optional if object is local or already in transport."New value: +"Transport request number, not a task. Optional if object is local or already in transport."
- Added
UpdateFunctionGroupUnitTest - Changed
UpdateFunctionInclude4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / function_group_name / descriptionPrevious value: -"Function group name containing the include (e.g., ZOK_FG_MCP01)."New value: +"Function group name containing the include." - changed
Input schema / properties / include_name / descriptionPrevious value: -"Include name (e.g., LZOK_FG_MCP01F01). Include must already exist."New value: +"Include name. Include must already exist." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable includes."New value: +"Transport request number, not a task. Required for transportable includes."
- Changed
UpdateFunctionModule5 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / function_group_name / descriptionPrevious value: -"Function group name containing the function module (e.g., ZOK_FG_MCP01)."New value: +"Function group name containing the function module." - changed
Input schema / properties / function_module_name / descriptionPrevious value: -"Function module name (e.g., Z_TEST_FM_MCP01). Function module must already exist."New value: +"Function module name. Function module must already exist." - changed
Input schema / properties / source_code / descriptionPrevious value: -"Complete ABAP function module source code. Must include FUNCTION statement with parameters and ENDFUNCTION. Example:\n\nFUNCTION Z_TEST_FM\n IMPORTING\n VALUE(iv_input) TYPE string\n EXPORTING\n VALUE(ev_output) TYPE string.\n \n ev_output = iv_input.\nENDFUNCTION."New value: +"Complete ABAP function module source code, from FUNCTION to ENDFUNCTION." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Required for transportable function modules."New value: +"Transport request number, not a task. Required for transportable function modules."
- Changed
UpdateInterface3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / interface_name / descriptionPrevious value: -"Interface name (e.g., ZIF_MY_INTERFACE). Must exist in the system."New value: +"Interface name. Must exist in the system." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Optional if object is local or already in transport."New value: +"Transport request number, not a task. Optional if object is local or already in transport."
- Changed
UpdateLocalDefinitions4 fields changed- changed
Input schema / properties / activate_on_update / descriptionPrevious value: -"Activate parent class after updating. Default: false"New value: +"Activate parent class after updating local definitions. Default: false" - changed
Input schema / properties / class_name / descriptionPrevious value: -"Parent class name (e.g., ZCL_MY_CLASS)."New value: +"Parent class name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number."New value: +"Transport request number (required for transportable objects), not a task."
- Changed
UpdateLocalMacros4 fields changed- changed
Input schema / properties / activate_on_update / descriptionPrevious value: -"Activate parent class after updating. Default: false"New value: +"Activate parent class after updating local macros. Default: false" - changed
Input schema / properties / class_name / descriptionPrevious value: -"Parent class name (e.g., ZCL_MY_CLASS)."New value: +"Parent class name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number."New value: +"Transport request number (required for transportable objects), not a task."
- Changed
UpdateLocalTestClass3 fields changed- changed
Input schema / properties / class_name / descriptionPrevious value: -"Parent class name (e.g., ZCL_MY_CLASS)."New value: +"Parent class name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (required for transportable objects)."New value: +"Transport request number (required for transportable objects), not a task."
- Changed
UpdateLocalTypes4 fields changed- changed
Input schema / properties / activate_on_update / descriptionPrevious value: -"Activate parent class after updating. Default: false"New value: +"Activate parent class after updating local types. Default: false" - changed
Input schema / properties / class_name / descriptionPrevious value: -"Parent class name (e.g., ZCL_MY_CLASS)."New value: +"Parent class name." - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number."New value: +"Transport request number (required for transportable objects), not a task."
- Changed
UpdateMessageClass3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / message_class_name / descriptionPrevious value: -"Message class name (e.g., ZMY_MSGS)."New value: +"Message class name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"(optional) Transport request number. Required for transportable objects."New value: +"(optional) Transport request number, not a task. Required for transportable objects."
- Changed
UpdateMessageClassMessage2 fields changed- changed
Input schema / properties / message_class_name / descriptionPrevious value: -"Parent message class name (e.g., ZMY_MSGS)."New value: +"Parent message class name." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"(optional) Transport request number. Required for transportable objects."New value: +"(optional) Transport request number, not a task. Required for transportable objects."
- Changed
UpdateMetadataExtension2 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (required for transportable packages)."New value: +"Transport request number (required for transportable packages), not a task."
- Changed
UpdateServiceBinding4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - added
Input schema / properties / response_format / descriptionAdded value: +"Accepted for backward compatibility; no longer affects the answer, which is always the structured write result." - changed
Input schema / properties / service_name / descriptionPrevious value: -"Published service name."New value: +"Published service name, from the binding. Required: an OData V2 publication job resolves the service by name and version and refuses without them. Ignored for V4, where the request names its target on its own." - changed
Input schema / properties / service_version / descriptionPrevious value: -"Published service version. Optional."New value: +"Published service version. Default 0001. Used by an OData V2 publication job together with the service name; ignored for V4."
- Changed
UpdateServiceDefinition3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / service_definition_name / descriptionPrevious value: -"Service definition name (e.g., ZSD_MY_SERVICE). Must exist in the system."New value: +"Service definition name. Must exist in the system." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Optional if object is local or already in transport."New value: +"Transport request number, not a task. Optional if object is local or already in transport."
- Changed
UpdateStructure3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / structure_name / descriptionPrevious value: -"Structure name (e.g., ZZ_S_TEST_001). Structure must already exist."New value: +"Structure name. Structure must already exist." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Optional if object is local or already in transport."New value: +"Transport request number, not a task. Optional if object is local or already in transport."
- Changed
UpdateTable3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / table_name / descriptionPrevious value: -"Table name (e.g., ZZ_TEST_TABLE_001). Table must already exist."New value: +"Table name. Table must already exist." - changed
Input schema / properties / transport_request / descriptionPrevious value: -"Transport request number (e.g., E19K905635). Optional if object is local or already in transport."New value: +"Transport request number, not a task. Optional if object is local or already in transport."
- Changed
UpdateUnitTest6 fields changed- added
Input schema / properties / class_nameAdded value: +{ + "description": "Class that holds the tests. Must already exist.", + "type": "string" +} - added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - removed
Input schema / properties / run_idRemoved value: -{ - "description": "Run identifier returned by CreateUnitTest/RunUnitTest.", - "type": "string" -} - added
Input schema / properties / test_class_sourceAdded value: +{ + "description": "ABAP source of the local test classes: definitions and implementations, FOR TESTING. Replaces what the include holds.", + "type": "string" +} - added
Input schema / properties / transport_requestAdded value: +{ + "description": "Transport request, not a task. Required for a transportable object.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "run_id" -]New value: +[ + "class_name", + "test_class_source" +]
- Changed
ValidateServiceBinding3 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "terse", + "description": "How much of the answer to return: \"terse\" (default, the fields you need to act), \"full\" (the whole parse), \"raw\" (the document as ADT sent it).", + "enum": [ + "terse", + "full", + "raw" + ], + "type": "string" +} - changed
Input schema / properties / service_binding_version / descriptionPrevious value: -"Service binding version (for example: 1.0)."New value: +"Service binding version (for example: 1.0). Accepted for backward compatibility; the transport check this now runs does not read it." - changed
Input schema / properties / service_definition_name / descriptionPrevious value: -"Service definition linked to binding."New value: +"Service definition linked to binding. Accepted for backward compatibility; the transport check this now runs does not read it."
3 tool updates
v9.0.0- Added
GetEnhancementSpot - Added
GetInclude - Added
GetIncludesList
18 tool updates
v8.12.1- Removed
GetDataElementVersionDiff - Removed
GetDataElementVersions - Removed
GetDataElementVersionSource - Removed
GetDomainVersionDiff - Removed
GetDomainVersions - Removed
GetDomainVersionSource - Removed
GetEnhancementSpot - Removed
GetFunctionGroupVersionDiff - Removed
GetFunctionGroupVersions - Removed
GetFunctionGroupVersionSource - Removed
GetInclude - Removed
GetIncludesList - Changed
GetObjectVersionDiff1 field changed- changed
Input schema / properties / object_type / enumPrevious value: -[ - "class", - "program", - "interface", - "function_group", - "function_module", - "table", - "structure", - "ddl", - "domain", - "data_element", - "package", - "behavior_definition", - "metadata_extension" -]New value: +[ + "class", + "program", + "interface", + "function_module", + "table", + "structure", + "ddl", + "behavior_definition", + "metadata_extension" +]
- Changed
GetObjectVersions1 field changed- changed
Input schema / properties / object_type / enumPrevious value: -[ - "class", - "program", - "interface", - "function_group", - "function_module", - "table", - "structure", - "ddl", - "domain", - "data_element", - "package", - "behavior_definition", - "metadata_extension" -]New value: +[ + "class", + "program", + "interface", + "function_module", + "table", + "structure", + "ddl", + "behavior_definition", + "metadata_extension" +]
- Changed
GetObjectVersionSource1 field changed- changed
Input schema / properties / object_type / enumPrevious value: -[ - "class", - "program", - "interface", - "function_group", - "function_module", - "table", - "structure", - "ddl", - "domain", - "data_element", - "package", - "behavior_definition", - "metadata_extension" -]New value: +[ + "class", + "program", + "interface", + "function_module", + "table", + "structure", + "ddl", + "behavior_definition", + "metadata_extension" +]
- Removed
GetPackageVersionDiff - Removed
GetPackageVersions - Removed
GetPackageVersionSource
8 tool updates
v8.6.1- Added
CreateMessageClass - Added
CreateMessageClassMessage - Added
DeleteMessageClass - Added
DeleteMessageClassMessage - Added
GetMessageClass - Added
GetMessageClassMessage - Added
UpdateMessageClass - Added
UpdateMessageClassMessage
37 tool updates
v8.5.0- Added
GetBehaviorDefinitionVersionDiff - Added
GetBehaviorDefinitionVersions - Added
GetBehaviorDefinitionVersionSource - Added
GetClassVersionDiff - Added
GetClassVersions - Added
GetClassVersionSource - Added
GetDataElementVersionDiff - Added
GetDataElementVersions - Added
GetDataElementVersionSource - Added
GetDdlVersionDiff - Added
GetDdlVersions - Added
GetDdlVersionSource - Added
GetDomainVersionDiff - Added
GetDomainVersions - Added
GetDomainVersionSource - Added
GetFunctionGroupVersionDiff - Added
GetFunctionGroupVersions - Added
GetFunctionGroupVersionSource - Added
GetFunctionModuleVersionDiff - Added
GetFunctionModuleVersions - Added
GetFunctionModuleVersionSource - Added
GetInterfaceVersionDiff - Added
GetInterfaceVersions - Added
GetInterfaceVersionSource - Added
GetMetadataExtensionVersionDiff - Added
GetMetadataExtensionVersions - Added
GetMetadataExtensionVersionSource - Added
GetObjectVersionDiff - Added
GetPackageVersionDiff - Added
GetPackageVersions - Added
GetPackageVersionSource - Added
GetStructureVersionDiff - Added
GetStructureVersions - Added
GetStructureVersionSource - Added
GetTableVersionDiff - Added
GetTableVersions - Added
GetTableVersionSource
2 tool updates
v8.2.0- Added
GetObjectVersions - Added
GetObjectVersionSource
14 tool updates
v8.1.0- Changed
CreateBehaviorDefinition1 field changed- added
Input schema / properties / master_languageAdded value: +{ + "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.", + "type": "string" +}
- Changed
CreateClass1 field changed- added
Input schema / properties / master_languageAdded value: +{ + "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.", + "type": "string" +}
- Changed
CreateDataElement1 field changed- added
Input schema / properties / master_languageAdded value: +{ + "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.", + "type": "string" +}
- Changed
CreateDdl1 field changed- added
Input schema / properties / master_languageAdded value: +{ + "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.", + "type": "string" +}
- Changed
CreateDomain1 field changed- added
Input schema / properties / master_languageAdded value: +{ + "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.", + "type": "string" +}
- Changed
CreateFunctionGroup1 field changed- added
Input schema / properties / master_languageAdded value: +{ + "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.", + "type": "string" +}
- Changed
CreateInterface1 field changed- added
Input schema / properties / master_languageAdded value: +{ + "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.", + "type": "string" +}
- Changed
CreateMetadataExtension1 field changed- added
Input schema / properties / master_languageAdded value: +{ + "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.", + "type": "string" +}
- Changed
CreatePackage1 field changed- added
Input schema / properties / master_languageAdded value: +{ + "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.", + "type": "string" +}
- Changed
CreateServiceBinding1 field changed- added
Input schema / properties / master_languageAdded value: +{ + "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.", + "type": "string" +}
- Changed
CreateServiceDefinition1 field changed- added
Input schema / properties / master_languageAdded value: +{ + "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.", + "type": "string" +}
- Changed
CreateStructure1 field changed- added
Input schema / properties / master_languageAdded value: +{ + "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.", + "type": "string" +}
- Changed
CreateTable1 field changed- added
Input schema / properties / master_languageAdded value: +{ + "description": "Optional master/original language for the created object (e.g. \"EN\", \"DE\", \"ZH\"). Defaults to the session language (SAP_LANGUAGE) or EN.", + "type": "string" +}
- Changed
GetWhereUsed2 fields changed- added
Input schema / properties / disable_typesAdded value: +{ + "description": "Remove these ADT object types from the default scope, keeping the rest (e.g. ['CLAS/OC'] to drop class usages). Applied on top of the default scope or of enable_only_types/enable_all_types.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / enable_only_typesAdded value: +{ + "description": "Restrict the search to ONLY these ADT object types (e.g. ['TABL/DS','TABL/DT'] for structures, ['DDLS/DF'] for CDS sources). SAP applies the selection server-side, so unwanted types (e.g. hundreds of CLAS/OC) are never searched nor returned — use this instead of enable_all_types to avoid huge result sets. Values must be object-type codes from THIS object's where-used scope (the searchable categories, e.g. 'CLAS/OC','INTF/OI','FUGR/FF','DDLS/DF', not result-row codes like 'FUGR/F'). If any value is not searchable for the object the call returns an error listing the supported types — it never falls back to the unfiltered default set. Takes precedence over enable_all_types.", + "items": { + "type": "string" + }, + "type": "array" +}
12 tool updates
v8.0.0- Added
ActivateDdl - Removed
ActivateView - Added
CheckDdl - Removed
CheckView - Added
CreateDdl - Removed
CreateView - Added
DeleteDdl - Removed
DeleteView - Added
GetDdl - Removed
GetView - Added
UpdateDdl - Removed
UpdateView
1 tool update
v7.1.1- Changed
UpdateFunctionInclude1 field changed- added
Input schema / properties / activateAdded value: +{ + "default": false, + "description": "Activate the include after the source update. Default: false. Set true to make the updated source the active version immediately.", + "type": "boolean" +}
7 tool updates
v7.1.0- Added
CreateFunctionInclude - Added
DeleteFunctionInclude - Added
GetStructuresList - Added
ListFunctionGroupIncludes - Added
ListFunctionModules - Added
ReadFunctionInclude - Added
UpdateFunctionInclude
2 tool updates
v7.0.0- Added
ActivateServiceDefinition - Added
CreatePackage
TDQS
Scored across 256 tools
The per-type tool families (Get/Create/Update/Delete/Check/ActivateClass, -Program, -Table, etc.) are individually clear, but they overlap heavily with generic tools: GetObjectVersions/GetObjectVersionSource/GetObjectVersionDiff duplicate GetClassVersions/GetTableVersions/etc., and ActivateObjects duplicates every Activate* tool. Similarly GetObjectInfo, GetObjectsList, GetObjectsByType, GetPackageTree, GetPackageContents and GetObjectStructure all walk object trees, so an agent must guess which to call.
The surface follows a strong Verb+Noun CamelCase convention (GetX, CreateX, UpdateX, DeleteX, CheckX, ActivateX, RunX) repeated consistently across all object types. A few outliers invert the order or deviate (MemorySnapshotList/Get/Delta, AmdpDebugStart, DescribeByList), keeping it from a perfect score.
256 tools is an extreme mismatch for a single server: the per-type CRUD/check/activate/version quadrants multiply the surface far beyond what an agent can reliably select from. Many tools are near-duplicates of generic ones (version source/diff per type vs. the object-generic versions), so the count is inflated rather than earned.
Coverage of the ADT domain is extremely broad: CRUD, activation, syntax checks, version history/diff, transports, ATC, ABAP Unit, runtime/profiler, SQL preview and a full debugger surface are all present. Some object types are read-only (enhancements, transactions) and a few check/generic operations are missing per type, but the core lifecycle is covered.
Maintenance
Related MCP Connectors
MCP server for Product Management
MCP Server for an Agent Task Marketplace
MCP server for Support & Service Management
MCP Server for Orderly Network - Documentation and SDK patterns
Related MCP Servers
- AlicenseCqualityNot gradedmaintenanceAn MCP server that facilitates seamless interaction with SAP ABAP systems to manage development objects, transport requests, and source code. It provides a comprehensive suite of tools for performing syntax checks, object searches, and code modifications via the ADT API.100-
- AlicenseCqualityDmaintenanceAn MCP server that enables seamless communication between ABAP systems and MCP clients using the ABAP Development Tools (ADT) API. It provides tools for managing ABAP objects, handling transport requests, and performing code analysis directly through MCP-compatible interfaces.100MIT
- MIT
- AlicenseBqualityDmaintenanceMCP server for SAP ABAP development that enables AI assistants and code editors to interact with SAP systems via ABAP Developer Toolkit (ADT) APIs, supporting read, create, update, and delete of ABAP objects.100787 npmMIT