abap-mcp-adt
This MCP server enables AI assistants and code editors to interact with SAP ABAP systems via the ABAP Developer Toolkit (ADT) API, providing comprehensive CRUD operations, runtime diagnostics, code analysis, and system management.
ABAP Object CRUD (30+ types): Read, create, update, and delete classes, interfaces, programs, includes, tables, structures, CDS views, domains, data elements, function groups/modules, packages, service definitions/bindings, behavior definitions/implementations, metadata extensions, screens, GUI statuses, and more.
Transport Management: List, create, and retrieve transport requests and their tasks/objects.
Unit Testing: Create and run ABAP Unit tests and CDS Unit tests; retrieve status and results.
Runtime Diagnostics & Profiling: Analyze runtime dumps, create/manage profiler traces, run classes with profiling, list system messages, and browse ADT feeds.
Data Querying: Preview table contents (SE16-style) and execute SQL SELECT queries, with an optional server-side blocklist to prevent extraction of sensitive data (PII, credentials, payroll, etc.).
Code Analysis: Parse ABAP source into ASTs, perform semantic analysis, resolve system symbols, and find where-used references.
Object Discovery: Search ABAP objects by name/type/package, retrieve object trees, list inactive objects, and explore enhancements.
Environment Support: ABAP Cloud (BTP), On-Premise (S/4HANA), and Legacy (ECC/BASIS < 7.50).
Flexible Integration: Multiple transport protocols (stdio, HTTP, SSE), authentication methods (Basic Auth, JWT/XSUAA, Service Key), stateful sessions for lock/unlock workflows, and embeddable into existing MCP servers.
In total, ~287 MCP tools are organized into read-only, high-level, low-level, compact, system, and search handler groups.
Enables AI assistants and code editors to interact with SAP systems via ABAP Developer Toolkit (ADT) APIs, supporting ABAP Cloud (BTP), On-Premise, and Legacy SAP environments for reading, creating, updating, and deleting ABAP objects such as classes, interfaces, CDS views, tables, RAP elements, and more.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@abap-mcp-adt show me the contents of table MARA"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP ABAP ADT ( For sc4sap application )
๐ Language / ่จ่ช: English ยท ๆฅๆฌ่ช
Acknowledgments
This project was originally inspired by mario-andreschak/mcp-abap-adt and fr0ster/mcp-abap-adt. We started with the core concept and evolved it into an independent project with our own architecture and features. Huge thanks to the original authors and all contributors whose work made this possible.
Model Context Protocol (MCP) server for SAP ABAP development โ enables AI assistants and code editors to interact with SAP systems via ABAP Developer Toolkit (ADT) APIs.
Read, create, update, and delete ABAP objects directly from Claude Code, Cline, Cursor, Windsurf, or any MCP-compatible client. Supports ABAP Cloud (BTP), On-Premise, and Legacy SAP systems.
Related MCP server: dassian-adt
Table of Contents
Features
287 MCP Tools for comprehensive SAP ABAP development
30+ ABAP object types supported (Classes, Interfaces, CDS Views, Tables, RAP, and more)
Multiple transport protocols: stdio, HTTP (StreamableHTTP), SSE
Flexible authentication: JWT/XSUAA (OAuth2), Basic Auth, Service Key
Multi-environment: ABAP Cloud (BTP), On-Premise, Legacy (BASIS < 7.50)
Runtime diagnostics: Profiling, dump analysis, SQL queries
Handler groups: Read-Only, High-Level, Low-Level, Compact, System, Search
Embeddable: Use as a standalone server or embed handlers into existing MCP servers
Auto-configurator:
@mcp-abap-adt/configuratorfor automated client setupHealth endpoint:
GET /mcp/healthfor HTTP/SSE transportsOptional data-fetch prevention: opt-in server-side blocklist (
SC4SAP_POLICY=on) that blocks row extraction from sensitive tables (PII, credentials, payroll, banking) regardless of caller โ see Optional: Data Fetch Prevention
Supported SAP Environments
Environment | Auth Methods | Notes |
ABAP Cloud (BTP) | JWT/XSUAA, Service Key | Full RAP/CDS support |
On-Premise (S/4HANA) | Basic Auth, JWT | Full feature surface โ Programs, Classes, CDS, Screens, GUI Statuses |
Legacy (ECC / BASIS < 7.50) | Basic Auth | Classic ABAP only โ see matrix below |
Legacy detection (BASIS < 7.50 / pre-S/4HANA) applies when any of:
SAP_SYSTEM_TYPE=legacy(explicit opt-in, back-compat)SAP_VERSION=ECCABAP_RELEASEnumeric < 750 (e.g.,740,731)
Under legacy mode the client routes through AdtClientLegacy, which restricts endpoint probes to those actually present on BASIS 7.4x. Modern DDIC CRUD and RAP/Service endpoints deliberately refuse with a clear "not supported on this SAP system" message instead of a cryptic 404.
Legacy (ECC / BASIS < 7.50) Compatibility Matrix
Verified on ECC 7.40 (SAP_VERSION=ECC, ABAP_RELEASE=740, SAP_SYSTEM_TYPE=onprem).
Category | Tool | ECC 7.40 | Reason |
Session / Discovery |
| โ | Basic ADT present on all releases |
Inactive objects |
| โ | โ |
Package read |
| โ | ADT repository informationsystem |
Package metadata |
| โ |
|
DDIC read |
| โ |
|
DDIC write |
| โ | Same endpoint gap โ create from SAP GUI (SE11) instead |
CDS view (DDLS) |
| โ | DDL endpoint ( |
Classic view (VIEW/DV) |
| โ | Classic view endpoint falls in the same DDIC gap as Tables/Structures โ use SE11 in SAP GUI |
ABAP source read |
| โ |
|
ABAP source write |
| โ |
|
AST / Semantic analysis |
| โ | Client-side parse, no SAP call |
WhereUsed |
| โ ๏ธ | Classic object types only โ |
Enhancements |
| โ |
|
Transport |
| โ | CTS endpoints present |
Runtime |
| โ |
|
Screen / GUI Status |
| โน๏ธ | RFC-dispatched via |
RAP / Behavior |
| โ | S/4HANA only โ RAP does not exist on ECC |
Service binding |
| โ | S/4HANA / ABAP Cloud only |
Metadata extensions |
| โ | S/4HANA / ABAP Cloud only |
Table contents |
| โน๏ธ | Works server-side but gated by the per-profile data-extraction policy โ see Optional: Data Fetch Prevention |
Legend: โ works fully ยท โ ๏ธ works with caveats ยท โ refuses with a clear "not supported on this SAP system" error (not a bug โ SAP platform limit) ยท โน๏ธ works, but depends on prior setup / policy.
Quick Start
1. Install
npm install -g @mcp-abap-adt/core2. Configure environment
# Create .env file in your working directory
cat > .env << 'EOF'
SAP_URL=https://your-sap-system.com
SAP_CLIENT=100
SAP_AUTH_TYPE=basic
SAP_USERNAME=your_username
SAP_PASSWORD=your_password
EOF3. Run
# stdio (for MCP clients like Claude Code, Cline, Cursor)
mcp-abap-adt
# HTTP server
mcp-abap-adt --transport=http --port 3000
# SSE server
mcp-abap-adt --transport=sse --port 3000Installation
From npm (Recommended)
npm install -g @mcp-abap-adt/coreFrom source
git clone --recurse-submodules https://github.com/babamba2/abap-mcp-adt-powerup.git
cd abap-mcp-adt-powerup
npm install
npm run build
npm startPlatform-specific guides
Claude Code Plugin
This repository is also distributed as a Claude Code plugin via the marketplace.
Install via marketplace
# Add this marketplace (once)
/plugin marketplace add babamba2/abap-mcp-adt-powerup
# Install the plugin
/plugin install abap-mcp-adt-powerupAfter install, configure the SAP connection through environment variables (see Configuration) or use the auto-configurator:
npx @mcp-abap-adt/configuratorManual plugin directory
If you're editing this repo locally, it already resolves as a plugin from:
~/.claude/plugins/marketplaces/abap-mcp-adt-powerupReload Claude Code (/plugin โ Reload) to pick up changes.
Configuration
Environment Variables (.env)
# SAP connection
SAP_URL=https://your-abap-system.com
SAP_CLIENT=100
SAP_LANGUAGE=en
# System type: cloud (default), onprem, or legacy
SAP_SYSTEM_TYPE=cloud
# TLS: set to 0 for self-signed certificates (dev only)
TLS_REJECT_UNAUTHORIZED=0
# Authentication
SAP_AUTH_TYPE=xsuaa # 'xsuaa' for JWT, 'basic' for username/password
SAP_JWT_TOKEN=your_jwt_token # For JWT auth
# SAP_USERNAME=your_username # For basic auth
# SAP_PASSWORD=your_password # For basic auth
# On-premise context (required for create/update on on-prem)
# SAP_MASTER_SYSTEM=DEV
# SAP_RESPONSIBLE=your_username
# Timeouts (milliseconds)
SAP_TIMEOUT_DEFAULT=45000 # General operations (default: 45s)
SAP_TIMEOUT_CSRF=15000 # CSRF token requests (default: 15s)
SAP_TIMEOUT_LONG=60000 # Long-running operations (default: 60s)CLI Options
mcp-abap-adt [options]
Options:
--transport=<type> Transport protocol: stdio (default), http, sse
--port <number> Server port for http/sse (default: 3000)
--host <address> Bind address for http/sse (default: localhost)
--env <destination> Destination name for multi-system setups
--env-path <path> Path to .env fileYAML Configuration
Alternative to CLI arguments. See YAML Config Guide.
Authentication
Basic Auth (On-Premise)
SAP_AUTH_TYPE=basic
SAP_USERNAME=developer
SAP_PASSWORD=secret123JWT / XSUAA (Cloud / On-Premise)
SAP_AUTH_TYPE=xsuaa
SAP_JWT_TOKEN=eyJhbGciOiJSUzI1NiIs...Service Key (BTP)
Place your service key JSON file and configure via the configurator (@mcp-abap-adt/configurator).
Header-based Auth (HTTP/SSE transports)
For multi-tenant or proxy setups, pass SAP connection details via HTTP headers (x-sap-*). See Authentication Guide.
Available Tools
The server provides 287 tools organized into handler groups:
Tool Categories
Category | Count | Description |
Read-Only | 52 | Query and retrieve objects without modification |
High-Level | 113 | User-friendly CRUD operations |
Low-Level | 122 | Direct ADT API operations with granular control |
Compact | 22 | Streamlined access to common operations |
System | - | Runtime analysis, profiling, dumps, SQL queries |
Search | - | Object discovery, where-used analysis |
Supported ABAP Object Types
Object Type | Read | Create | Update | Delete |
Classes (CLAS) | O | O | O | O |
Interfaces (INTF) | O | O | O | O |
Programs (PROG) | O | O | O | O |
Includes | O | O | O | O |
Tables (TABL) | O | O | O | O |
Structures | O | O | O | O |
CDS Views (DDLS) | O | O | O | O |
Domains | O | O | O | O |
Data Elements (DTEL) | O | O | O | O |
Function Groups (FUGR) | O | O | O | O |
Function Modules (FUNC) | O | O | O | O |
Packages (DEVC) | O | O | O | O |
Transports | O | O | - | - |
Service Definitions (SRVD) | O | O | O | O |
Service Bindings (SRVB) | O | O | O | O |
Behavior Definitions (BDEF) | O | O | O | O |
Behavior Implementations (BIMP) | O | O | O | O |
Metadata Extensions (DDLX) | O | O | O | O |
Screens (DYNP) | O | O | O | O |
GUI Statuses | O | O | O | O |
Text Elements | O | O | O | O |
Unit Tests | O | O | O | O |
CDS Unit Tests | O | O | O | O |
Enhancements | O | - | - | - |
Runtime & System Tools
Runtime Profiling - Profile class and program execution with trace analysis
Dump Analysis - List and analyze ABAP runtime dumps
SQL Queries - Execute SQL queries via ADT (
GetSqlQuery)Table Contents - Read table data (
GetTableContents)Object Search - Find objects by name, type, package (
SearchObject)Where-Used - Cross-reference analysis (
GetWhereUsed)Type Info - Retrieve type information (
GetTypeInfo)Inactive Objects - List objects pending activation (
GetInactiveObjects)AST / Semantic Analysis - Parse ABAP syntax tree and semantic info
For the complete tool reference, see AVAILABLE_TOOLS.md.
Transport Protocols
stdio (Default)
Standard input/output transport for MCP clients. Used by Claude Code, Cline, Cursor, and other MCP-compatible tools.
mcp-abap-adt
# or explicitly:
mcp-abap-adt --transport=stdioHTTP (StreamableHTTP)
REST API with JSON streaming responses. Ideal for web clients and multi-user deployments.
mcp-abap-adt --transport=http --port 3000 --host 0.0.0.0Health check: GET /mcp/health
SSE (Server-Sent Events)
Long-polling transport with session management.
mcp-abap-adt --transport=sse --port 3000Client Configuration
Claude Code
{
"mcpServers": {
"mcp-abap-adt": {
"command": "npx",
"args": ["-y", "@mcp-abap-adt/core"],
"env": {
"SAP_URL": "https://your-sap-system.com",
"SAP_CLIENT": "100",
"SAP_AUTH_TYPE": "basic",
"SAP_USERNAME": "developer",
"SAP_PASSWORD": "secret"
}
}
}
}Cline / Cursor / VS Code
{
"mcpServers": {
"mcp-abap-adt": {
"command": "npx",
"args": ["-y", "@mcp-abap-adt/core"],
"env": {
"SAP_URL": "https://your-sap-system.com",
"SAP_CLIENT": "100",
"SAP_AUTH_TYPE": "xsuaa",
"SAP_JWT_TOKEN": "eyJhbGciOiJSUzI1NiIs..."
}
}
}
}Auto-Configuration
Use the configurator for automated setup:
npx @mcp-abap-adt/configuratorSee Client Configuration Guide for more examples.
Handler Architecture
The server organizes tools into composable handler groups:
handlers/
โโโ behavior_definition/ # BDEF CRUD
โโโ behavior_implementation/# BIMP CRUD
โโโ class/ # CLAS CRUD
โโโ compact/ # Shorthand tools
โโโ common/ # Shared handlers
โโโ data_element/ # DTEL CRUD
โโโ ddlx/ # Metadata Extension CRUD
โโโ domain/ # Domain CRUD
โโโ enhancement/ # Enhancement read-only
โโโ function/ # Function-related
โโโ function_group/ # FUGR CRUD
โโโ function_module/ # FUNC CRUD
โโโ gui_status/ # GUI Status CRUD
โโโ include/ # Include CRUD
โโโ interface/ # INTF CRUD
โโโ metadata_extension/ # DDLX CRUD
โโโ package/ # DEVC CRUD
โโโ program/ # PROG CRUD
โโโ screen/ # Screen/Dynpro CRUD
โโโ search/ # Object search & where-used
โโโ service_binding/ # SRVB CRUD
โโโ service_definition/ # SRVD CRUD
โโโ structure/ # Structure CRUD
โโโ system/ # Runtime diagnostics
โโโ table/ # TABL CRUD
โโโ text_element/ # Text Element CRUD
โโโ transport/ # Transport management
โโโ unit_test/ # Unit test CRUD & run
โโโ view/ # CDS View CRUDEach handler category contains subdirectories:
high/- High-level, user-friendly operationslow/- Low-level, direct ADT API operationsreadonly/- Safe read-only queries
Embedding Handlers
For integrating into existing MCP servers (e.g., CAP/CDS applications):
import { HandlerExporter } from '@mcp-abap-adt/core/handlers';
const exporter = new HandlerExporter({
includeReadOnly: true,
includeHighLevel: true,
includeLowLevel: false,
includeSystem: true,
includeSearch: true,
});
exporter.registerOnServer(mcpServer, () => connection);Docker Deployment
Using Docker Compose
# Build and run
npm run docker:build
npm run docker:up
# Or with pre-built package
npm run docker:build:package
npm run docker:up:packageManual Docker Build
cd docker
docker-compose build
docker-compose up -dSee Docker Deployment Guide for full details.
Development
Prerequisites
Node.js >= 20.0.0
npm >= 9.0.0
TypeScript 5.9+
Setup
git clone --recurse-submodules https://github.com/babamba2/abap-mcp-adt-powerup.git
cd abap-mcp-adt-powerup
npm install
npm run buildScripts
Command | Description |
| Lint + compile TypeScript |
| Compile only (skip lint) |
| Build + launch MCP Inspector (stdio) |
| Build + launch HTTP dev server |
| Build + launch SSE dev server |
| Run Biome linter with auto-fix |
| Format code with Biome |
| Run MCP server (stdio) |
| Run MCP server (HTTP) |
| Run MCP server (SSE) |
| Regenerate tool documentation |
Project Structure
mcp-abap-adt/
โโโ bin/ # CLI entry points
โ โโโ mcp-abap-adt.js # Main CLI
โ โโโ mcp-abap-adt-v2.js # V2 server variant
โโโ src/
โ โโโ handlers/ # 30 handler categories (287 tools)
โ โโโ lib/
โ โ โโโ auth/ # Auth broker, JWT/XSUAA
โ โ โโโ config/ # Configuration management
โ โ โโโ handlers/ # Handler registry & utilities
โ โ โโโ stores/ # Session/token storage
โ โ โโโ types/ # TypeScript interfaces
โ โ โโโ utils.ts # Core utilities
โ โโโ server/
โ โ โโโ BaseMcpServer.ts # MCP server extension
โ โ โโโ StdioServer.ts # stdio transport
โ โ โโโ SseServer.ts # SSE transport
โ โ โโโ StreamableHttpServer.ts # HTTP transport
โ โ โโโ launcher.ts # Server startup
โ โโโ utils/ # Utility modules
โโโ docker/ # Docker deployment
โโโ docs/ # Documentation
โโโ tests/ # Test configuration
โโโ tools/ # Dev tools & scripts
โโโ package.jsonKey Dependencies
Package | Purpose |
| ADT REST API clients |
| SAP connection management |
| Authentication token management |
| Auth strategy implementations |
| MCP protocol SDK |
| XML parsing for ADT responses |
Testing
Integration Tests
Integration tests run against a real SAP system in two modes:
Soft mode (default): Calls handlers directly, no MCP subprocess
Hard mode: Spawns full MCP server via stdio, calls tools through MCP protocol
Setup
# Create test config from template
npm run test:init
# Edit only the lines marked "# <- CHANGE"
# - environment.env (session .env file)
# - environment.system_type (onprem/cloud/legacy)
# - environment.default_package
# - environment.default_transportRunning Tests
# Unit tests
npm test
# All integration tests (soft mode)
npm run test:integration
# High-level handler tests only
npm run test:high
# Low-level handler tests only
npm run test:low
# Type check test files
npm run test:checkSee Testing Guide for full details.
Troubleshooting
self-signed certificate in certificate chain
Your SAP system uses a self-signed TLS certificate. For development only:
TLS_REJECT_UNAUTHORIZED=0For production, install the SAP CA certificate into the Node.js trust store.
401 Unauthorized / 403 Forbidden
Basic Auth: confirm
SAP_USERNAME/SAP_PASSWORDand that the user has ADT authorization (S_DEVELOP,S_RFC,S_TCODE).JWT/XSUAA: the token may be expired โ refresh via the configurator or service key.
Client mismatch: verify
SAP_CLIENTmatches the logon client.
CSRF token validation failed on Update/Create
The session lost its CSRF token. Most handlers refresh automatically; if it persists:
Increase
SAP_TIMEOUT_CSRF(default 15s).Confirm cookies are not being stripped by a proxy.
transport required on On-Premise
Create or update on on-prem systems requires a transport request. Set:
SAP_MASTER_SYSTEM=DEV
SAP_RESPONSIBLE=your_usernameโฆand pass transport=<TRKORR> to the handler, or use a local package ($TMP).
Claude Code doesn't see the MCP server
Restart Claude Code after editing config.
Check logs:
~/.claude/logs/(stderr from the MCP process).Run
mcp-abap-adtdirectly in a shell โ it must start without errors before Claude can connect.
Programs not available on Cloud
Programs (PROG) are on-premise / legacy only. Use Classes or CDS on ABAP Cloud.
FAQ
Q. Does this work with S/4HANA Cloud, public edition? Yes โ via ABAP Cloud (BTP) with JWT/XSUAA or a service key. RAP/CDS objects are fully supported; classic objects (Programs, Screens, GUI Statuses) are not available on cloud.
Q. Can I use this without Claude Code?
Yes. Any MCP-compatible client works: Cline, Cursor, Windsurf, VS Code MCP extension, or a custom client built with @modelcontextprotocol/sdk.
Q. How do I limit which tools are exposed?
Use the HandlerExporter to select handler groups when embedding, or set environment flags to disable groups. See Handler Management.
Q. Is it safe to use against a productive SAP system? The server respects SAP authorization โ whatever your user cannot do in SE80/ADT, it cannot do here either. Still, we recommend a dedicated development user and running against non-prod first.
Q. How do I run against multiple SAP systems?
Use --env <destination> with per-destination .env files, or the YAML config. For HTTP/SSE deployments, pass x-sap-* headers per request.
Q. Does it support RFC?
Yes, for legacy systems where ADT HTTP APIs are unavailable. Set connection_type: rfc in the test config (or equivalent env) โ requires the SAP NW RFC SDK installed locally.
Documentation
Guide | Description |
Platform-specific installation | |
MCP client setup | |
Auth methods & destinations | |
Complete tool reference (287 tools) | |
Command-line reference | |
YAML configuration guide | |
System architecture overview | |
Lock/update/unlock flow | |
Tool & handler structure | |
Container deployment | |
Test setup & execution | |
Enable/disable handler groups |
Optional: Data Fetch Prevention
Row-returning tools (GetTableContents, GetSqlQuery) can expose sensitive business data โ PII, credentials, payroll, banking, transactional finance. This server ships with an opt-in server-side blocklist that stops such calls before they ever reach SAP, regardless of the caller (Claude, other LLMs, direct JSON-RPC, external scripts).
The feature is disabled by default โ nothing is blocked unless you explicitly turn it on.
Enable
export SC4SAP_POLICY=on # or: strict | standard | minimal | custom
export SC4SAP_POLICY_PROFILE=strict # optional, default when SC4SAP_POLICY=on
export SC4SAP_BLOCKLIST_PATH=/path/to/table_exception.md # optional extra list
export SC4SAP_ALLOW_TABLE=TAB1,TAB2 # session-scoped emergency exemption (logged)Profiles
Profile | Blocks |
| PII + credentials + HR + transactional finance + audit logs + workflow |
| PII + credentials + HR + transactional finance |
| PII + credentials + HR + Tax (business tables allowed) |
| User-supplied list only ( |
Behavior
When a blocked table is accessed, the server responds with isError: true and a categorized reason โ no SAP round-trip occurs. Schema/DDIC metadata calls (GetTable, GetStructure, GetView, GetDataElement, GetDomain), existence checks (SearchObject), and aggregate-only GetSqlQuery remain allowed.
Built-in blocklist covers 100+ tables / patterns across Banking (BNKA, KNBK, LFBK, REGUH), Customer/Vendor PII (KNA1, LFA1, BUT000, BUT0ID), Addresses (ADRC, ADR6, ADRP), Authentication (USR02, RFCDES, AGR_1251), HR/Payroll (PA* / HRP* / PCL*), Tax IDs, Protected Business Data (VBAK/BKPF/ACDOCA), Audit logs, and customer Z* PII patterns.
This feature is designed for but not coupled to the sc4sap plugin โ any MCP client can benefit from it.
Contributing
We welcome contributions! Please see the development documentation for setup instructions.
Contributors
Paek Seunghyun (@babamba2) - Enhanced features addition
Oleksii Kyslytsia (@fr0ster) - Main maintainer (539+ commits)
mario-andreschak (@mario-andreschak) - Original project maintainer
Henry Mao (@calclavia) - Contributor
Aleksandr Razinkin (@raaleksandr-epam) - Contributor
Frank Fiegel (@punkpeye) - Contributor
License
MIT โ Copyright (c) 2026 ๋ฐฑ์นํ (Paek Seunghyun) & Oleksii Kyslytsia
Available Tools
143 toolsActivateObjectsA
[high-level] Activate a set of ABAP objects in a single call. Uses the ADT mass-activation endpoint (/sap/bc/adt/activation/runs) so cyclic references between siblings (e.g. main program + multiple cross-referencing includes) resolve in one compilation scope. Returns per-object status, errors, warnings. Falls back to /sap/bc/adt/activation on legacy systems.
Inputs: objects (required), preaudit, run_timeout_ms.
CreateBehaviorDefinitionB
Create a new ABAP Behavior Definition (BDEF) in SAP system. Defines RAP business object behavior: CRUD operations, validations, determinations, actions, and draft handling.
Inputs: name (required), root_entity (required), package_name (required), implementation_type (required), +3 more.
CreateBehaviorImplementationA
Create a new ABAP behavior implementation class for a behavior definition. Creates the object in initial state. Use UpdateBehaviorImplementation to set implementation code afterwards.
Inputs: class_name (required), package_name (required), behavior_definition (required), description, +1 more.
CreateCdsUnitTestB
Create a CDS unit test class with CDS validation. Creates the test class in initial state.
Inputs: class_name (required), package_name (required), cds_view_name (required), description, +1 more.
CreateClassA
Create a new ABAP class in SAP system. Creates the class object in initial state. Use UpdateClass to set source code afterwards.
Inputs: class_name (required), package_name (required), final, abstract, +4 more.
CreateDataElementB
Create a new ABAP data element in SAP system with all required steps: create, activate, and verify.
Inputs: package_name (required), data_element_name (required), length, decimals, +12 more.
CreateDomainA
Create a new ABAP domain in SAP system with all required steps: lock, create, check, unlock, activate, and verify.
Inputs: domain_name (required), length, activate, datatype, +9 more.
CreateFunctionGroupA
Create a new ABAP function group in SAP system. Function groups serve as containers for function modules. Uses stateful session for proper lock management.
Inputs: package_name (required), function_group_name (required), activate, description, +1 more.
CreateFunctionModuleA
Create a new ABAP function module within an existing function group. Creates the function module in initial state. Use UpdateFunctionModule to set source code afterwards.
Inputs: function_group_name (required), function_module_name (required), description, transport_request.
CreateInterfaceA
Create a new ABAP interface in SAP system. Creates the interface object in initial state. Use UpdateInterface to set source code afterwards.
Inputs: package_name (required), interface_name (required), description, transport_request.
CreateMetadataExtensionA
Create a new ABAP Metadata Extension (DDLX) in SAP system. Defines Fiori UI annotations, field labels, search help, and list/object page layout for CDS views.
Inputs: name (required), package_name (required), activate, description, +1 more.
CreatePackageB
Create a new ABAP package in SAP system. Packages are containers for development objects and are essential for organizing code.
Inputs: package_name (required), super_package (required), description, package_type, +5 more.
CreateServiceBindingB
Create ABAP service binding via ADT Business Services endpoint. XML is generated from high-level parameters.
Inputs: package_name (required), service_binding_name (required), service_definition_name (required), activate, +7 more.
CreateServiceDefinitionB
Create a new ABAP service definition for OData services. Service definitions define the structure and behavior of OData services. Uses stateful session for proper lock management.
Inputs: package_name (required), service_definition_name (required), activate, description, +2 more.
CreateStructureB
Create a new ABAP structure in SAP system with fields and type references. Includes create, activate, and verify steps.
Inputs: fields (required), package_name (required), structure_name (required), activate, +3 more.
CreateTableA
Create a new ABAP table via the ADT API. Creates the table object in initial state. Use UpdateTable to set DDL code afterwards.
Inputs: table_name (required), package_name (required), description, transport_request.
CreateTransportB
Create a new ABAP transport request in SAP system for development objects.
Inputs: description (required), owner, target_system, transport_type.
CreateUnitTestA
Start an ABAP Unit test run for provided class test definitions. Returns run_id for status/result queries.
Inputs: tests (required), scope, title, context, +2 more.
CreateViewA
Create CDS View or Classic View in SAP. Creates the view object in initial state. Use UpdateView to set DDL source code afterwards.
Inputs: view_name (required), package_name (required), description, transport_request.
DeleteBehaviorDefinitionA
Delete an ABAP behavior definition from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.
Inputs: behavior_definition_name (required), transport_request.
DeleteBehaviorImplementationA
Delete an ABAP behavior implementation from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.
Inputs: behavior_implementation_name (required), transport_request.
DeleteCdsUnitTestB
Delete a CDS unit test class (global class).
Inputs: class_name (required), transport_request.
DeleteClassA
Delete an ABAP class from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.
Inputs: class_name (required), transport_request.
DeleteDataElementA
Delete an ABAP data element from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.
Inputs: data_element_name (required), transport_request.
DeleteDomainA
Delete an ABAP domain from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.
Inputs: domain_name (required), transport_request.
DeleteFunctionGroupA
Delete an ABAP function group from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.
Inputs: function_group_name (required), transport_request.
DeleteFunctionModuleB
Delete an ABAP function module from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.
Inputs: function_group_name (required), function_module_name (required), transport_request.
DeleteInterfaceA
Delete an ABAP interface from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.
Inputs: interface_name (required), transport_request.
DeleteLocalDefinitionsA
Delete local definitions from an ABAP class by clearing the definitions include. Manages lock, update, unlock, and optional activation.
Inputs: class_name (required), transport_request, activate_on_delete.
DeleteLocalMacrosA
Delete local macros from an ABAP class by clearing the macros include. Manages lock, update, unlock, and optional activation. Note: Macros are supported in older ABAP versions but not in newer ones.
Inputs: class_name (required), transport_request, activate_on_delete.
DeleteLocalTestClassA
Delete a local test class from an ABAP class by clearing the testclasses include. Manages lock, update, unlock, and optional activation of parent class.
Inputs: class_name (required), transport_request, activate_on_delete.
DeleteLocalTypesA
Delete local types from an ABAP class by clearing the implementations include. Manages lock, update, unlock, and optional activation.
Inputs: class_name (required), transport_request, activate_on_delete.
DeleteMetadataExtensionA
Delete an ABAP metadata extension from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.
Inputs: metadata_extension_name (required), transport_request.
DeleteServiceBindingB
Delete ABAP service binding via ADT Business Services endpoint.
Inputs: service_binding_name (required), response_format, transport_request.
DeleteServiceDefinitionA
Delete an ABAP service definition from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.
Inputs: service_definition_name (required), transport_request.
DeleteStructureA
Delete an ABAP structure from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.
Inputs: structure_name (required), transport_request.
DeleteTableA
Delete an ABAP table from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.
Inputs: table_name (required), transport_request.
DeleteUnitTestB
Delete an ABAP Unit test run. Note: ADT does not support deleting unit test runs and will return an error.
Inputs: run_id (required).
DeleteViewA
Delete an ABAP view from the SAP system. Includes deletion check before actual deletion. Transport request optional for $TMP objects.
Inputs: view_name (required), transport_request.
DescribeByListB
[read-only] Batch description for a list of ABAP objects. 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.
Inputs: objects (required).
GetAbapASTA
[read-only] Parse ABAP code and return AST (Abstract Syntax Tree) in JSON format.
Inputs: code (required), filePath.
GetAbapSemanticAnalysisA
[read-only] Perform semantic analysis on ABAP code and return symbols, types, scopes, and dependencies.
Inputs: code (required), filePath.
GetAbapSystemSymbolsC
[read-only] Resolve ABAP symbols from semantic analysis with SAP system information including types, scopes, descriptions, and packages.
Inputs: code (required), filePath.
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.
Inputs: validate_type.
GetBehaviorDefinitionB
Retrieve ABAP behavior definition definition. Supports reading active or inactive version.
Inputs: behavior_definition_name (required), version.
GetBehaviorImplementationC
Retrieve ABAP behavior implementation definition. Supports reading active or inactive version.
Inputs: behavior_implementation_name (required), version.
GetCdsUnitTestB
Retrieve CDS unit test run status and result for a previously started run_id.
Inputs: run_id (required).
GetCdsUnitTestResultC
Retrieve CDS unit test run result for a run_id.
Inputs: run_id (required), format, with_navigation_uris.
GetCdsUnitTestStatusB
Retrieve CDS unit test run status for a run_id.
Inputs: run_id (required), with_long_polling.
GetClassC
Retrieve ABAP class source code. Supports reading active or inactive version.
Inputs: class_name (required), version.
GetDataElementB
Retrieve ABAP data element definition. Supports reading active or inactive version.
Inputs: data_element_name (required), version.
GetDomainB
Retrieve ABAP domain definition. Supports reading active or inactive version.
Inputs: domain_name (required), version.
GetEnhancementImplA
[read-only] Retrieve source code of a specific enhancement implementation by its name and enhancement spot.
Inputs: enhancement_name (required), enhancement_spot (required).
GetEnhancementsB
[read-only] Retrieve a list of enhancements for a given ABAP object.
Inputs: object_name (required), object_type (required).
GetEnhancementSpotA
[read-only] Retrieve metadata and list of implementations for a specific enhancement spot.
Inputs: enhancement_spot (required).
GetFunctionGroupB
Retrieve ABAP function group definition. Supports reading active or inactive version.
Inputs: function_group_name (required), version.
GetFunctionModuleB
Retrieve ABAP function module definition. Supports reading active or inactive version.
Inputs: function_group_name (required), function_module_name (required), version.
GetInactiveObjectsA
[read-only] Get a list of inactive ABAP objects โ modified but not yet activated, pending activation. Shows classes, tables, CDS views, and other objects awaiting activation.
Inputs: no named parameters.
GetIncludeA
[read-only] Retrieve source code of a specific ABAP include file.
Inputs: include_name (required).
GetIncludesListA
[read-only] Recursively discover and list ALL include files within an ABAP program or include.
Inputs: object_name (required), object_type (required), timeout, detailed.
GetInterfaceB
Retrieve ABAP interface definition. Supports reading active or inactive version.
Inputs: interface_name (required), version.
GetLocalDefinitionsB
Retrieve local definitions source code from a class (definitions include). Supports reading active or inactive version.
Inputs: class_name (required), version.
GetLocalMacrosA
Retrieve local macros source code from a class (macros include). Supports reading active or inactive version. Note: Macros are supported in older ABAP versions but not in newer ones.
Inputs: class_name (required), version.
GetLocalTestClassB
Retrieve local test class source code from a class. Supports reading active or inactive version.
Inputs: class_name (required), version.
GetLocalTypesA
Retrieve local types source code from a class (implementations include). Supports reading active or inactive version.
Inputs: class_name (required), version.
GetMetadataExtensionC
Retrieve ABAP metadata extension definition. Supports reading active or inactive version.
Inputs: metadata_extension_name (required), version.
GetNodeStructureLowA
[low-level] Fetch node structure from ADT repository. Used for object tree navigation and structure discovery. Can use session_id and session_state from GetSession to maintain the same session.
Inputs: parent_name (required), parent_type (required), node_id, session_id, +2 more.
GetObjectInfoA
[read-only] Return ABAP object tree structure for packages (DEVC), classes (CLAS), programs (PROG), function groups (FUGR), and other objects. Shows root, group nodes, and terminal leaves up to maxDepth. Enrich each node with description and package via SearchObject if enrich=true.
Inputs: parent_name (required), parent_type (required), enrich, maxDepth.
GetObjectNodeFromCacheA
[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.
Inputs: tech_name (required), object_name (required), object_type (required).
GetObjectsByTypeC
[read-only] Retrieves all ABAP objects of a specific type (classes, tables, programs, interfaces, etc.) under a given parent node. Useful for listing all objects of one type within a package or composite object.
Inputs: node_id (required), parent_name (required), parent_type (required), parent_tech_name (required), +2 more.
GetObjectsListA
[read-only] Recursively retrieves all child ABAP repository objects for a given parent โ programs (PROG), function groups (FUGR), classes (CLAS), packages (DEVC), and other composite objects โ including nested includes and subcomponents.
Inputs: parent_name (required), parent_type (required), parent_tech_name (required), with_short_descriptions.
GetObjectStructureB
[read-only] Retrieve ADT object structure as a compact JSON tree.
Inputs: objectname (required), objecttype (required).
GetObjectStructureLowA
[low-level] Retrieve ADT object structure as compact JSON tree. Returns XML response with object structure tree. Can use session_id and session_state from GetSession to maintain the same session.
Inputs: object_name (required), object_type (required), session_id, session_state.
GetPackageB
Retrieve ABAP package metadata (description, super-package, etc.). Supports reading active or inactive version.
Inputs: package_name (required), version.
GetPackageContentsA
[read-only] Retrieve objects inside an ABAP package as a flat list. Supports recursive traversal of subpackages.
Inputs: package_name (required), max_depth, include_subpackages, include_descriptions.
GetPackageTreeB
[high-level] Retrieve complete package tree structure including subpackages and objects. Returns hierarchical tree with object names, types, and descriptions.
Inputs: package_name (required), debug, max_depth, include_subpackages, +1 more.
GetServiceBindingB
Retrieve ABAP service binding source/metadata by name via ADT Business Services endpoint.
Inputs: service_binding_name (required), response_format.
GetServiceDefinitionA
Retrieve ABAP service definition definition. Supports reading active or inactive version.
Inputs: service_definition_name (required), version.
GetSessionA
[read-only] Get a new session ID and current session state (cookies, CSRF token) for reuse across multiple ADT operations. Use this to maintain the same session and lock handle across multiple requests.
Inputs: force_new.
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.
Inputs: sql_query (required), row_number, acknowledge_risk.
GetStructureB
Retrieve ABAP structure definition. Supports reading active or inactive version.
Inputs: structure_name (required), version.
GetTableA
Retrieve ABAP table definition. Supports reading active or inactive version.
Inputs: table_name (required), version.
GetTableContentsA
[read-only] Retrieve contents (data preview) of an ABAP database table or CDS view. Returns rows of data like SE16/SE16N.
Inputs: table_name (required), max_rows, acknowledge_risk.
GetTransactionA
[read-only] Retrieve ABAP transaction (t-code) details โ program, screen, authorization object, and transaction type (dialog, report, OO).
Inputs: transaction_name (required).
GetTransportB
[read-only] Retrieve ABAP transport request information including metadata, included objects, and status from SAP system.
Inputs: transport_number (required), owner, include_tasks, include_objects.
GetTypeInfoB
[read-only] Retrieve ABAP type information for domains (DOMA), data elements (DTEL), table types, and structures. Returns field definitions, value ranges, fixed values, and DDIC metadata.
Inputs: type_name (required), include_structure_fallback.
GetUnitTestA
Retrieve ABAP Unit test run status and result for a previously started run_id.
Inputs: run_id (required).
GetUnitTestResultB
Retrieve ABAP Unit test run result for a run_id.
Inputs: run_id (required), format, with_navigation_uris.
GetUnitTestStatusB
Retrieve ABAP Unit test run status for a run_id.
Inputs: run_id (required), with_long_polling.
GetViewB
Retrieve ABAP view definition. Supports reading active or inactive version.
Inputs: view_name (required), version.
GetVirtualFoldersLowB
[low-level] Retrieve hierarchical virtual folder contents from ADT information system. Used for browsing ABAP objects by package, group, type, etc.
Inputs: facet_order, preselection, with_versions, object_search_pattern, +1 more.
GetWhereUsedA
[read-only] Find where-used references (cross-references, usages, dependencies) for ABAP objects โ classes, interfaces, tables, data elements, programs, function modules, etc. Returns list of all referencing objects with their types and packages.
Inputs: object_name (required), object_type (required), enable_all_types.
ListServiceBindingTypesA
List available service binding types (for example ODataV2/ODataV4) from ADT Business Services endpoint.
Inputs: response_format.
ListTransportsB
[read-only] List transport requests for the current or specified user. Returns modifiable and/or released workbench and customizing requests.
Inputs: user, modifiable_only.
ReadBehaviorDefinitionA
[read-only] Read ABAP behavior definition source code and metadata (package, responsible, description, etc.).
Inputs: behavior_definition_name (required), version.
ReadBehaviorImplementationB
[read-only] Read ABAP behavior implementation source code and metadata (package, responsible, description, etc.).
Inputs: behavior_implementation_name (required), version.
ReadClassB
[read-only] Read ABAP class source code and metadata (package, responsible, description, etc.).
Inputs: class_name (required), version.
ReadDataElementA
[read-only] Read ABAP data element definition and metadata (package, responsible, description, etc.).
Inputs: data_element_name (required), version.
ReadDomainB
[read-only] Read ABAP domain definition and metadata (package, responsible, description, etc.).
Inputs: domain_name (required), version.
ReadFunctionGroupB
[read-only] Read ABAP function group source code and metadata (package, responsible, description, etc.).
Inputs: function_group_name (required), version.
ReadFunctionModuleB
[read-only] Read ABAP function module source code and metadata (package, responsible, description, etc.).
Inputs: function_group_name (required), function_module_name (required), version.
ReadInterfaceB
[read-only] Read ABAP interface source code and metadata (package, responsible, description, etc.).
Inputs: interface_name (required), version.
ReadMetadataExtensionB
[read-only] Read ABAP metadata extension (DDLX) source code and metadata (package, responsible, description, etc.).
Inputs: metadata_extension_name (required), version.
ReadPackageA
[read-only] Read ABAP package definition and metadata (super-package, responsible, description, etc.).
Inputs: package_name (required), version.
ReadServiceBindingA
[read-only] Read ABAP service binding source/payload and metadata (package, responsible, description, etc.).
Inputs: service_binding_name (required).
ReadServiceDefinitionA
[read-only] Read ABAP service definition source code and metadata (package, responsible, description, etc.).
Inputs: service_definition_name (required), version.
ReadStructureC
[read-only] Read ABAP structure definition and metadata (package, responsible, description, etc.).
Inputs: structure_name (required), version.
ReadTableA
[read-only] Read ABAP table definition and metadata (package, responsible, description, etc.).
Inputs: table_name (required), version.
ReadViewB
[read-only] Read ABAP view (CDS view) source code and metadata (package, responsible, description, etc.).
Inputs: view_name (required), version.
ReloadProfileA
[system] Reload the active SAP profile from .sc4sap/active-profile.txt and reset the cached connection. Called by the sc4sap plugin after switching profiles. Returns the newly active alias, host, tier, and readonly status.
Inputs: no named parameters.
RuntimeAnalyzeDumpA
[runtime] Read runtime dump by ID and return compact analysis summary with key fields.
Inputs: dump_id (required), view, include_payload.
RuntimeAnalyzeProfilerTraceB
[runtime] Read profiler trace view and return compact analysis summary (totals + top entries).
Inputs: trace_id_or_uri (required), top, view, with_system_events.
RuntimeCreateProfilerTraceParametersC
[runtime] Create ABAP profiler trace parameters and return profilerId (URI) for profiled execution.
Inputs: description (required), aggregate, sql_trace, amdp_trace, +10 more.
RuntimeGetDumpByIdA
[runtime] Read a specific ABAP runtime dump by dump ID. Returns parsed JSON payload. Use response_mode="both" or "summary" to also include a compact key-facts summary (title, exception, program, line, user, date...).
Inputs: dump_id (required), view, response_mode.
RuntimeGetProfilerTraceDataA
[runtime] Read profiler trace data by trace id/uri: hitlist, statements, or db accesses. Returns parsed JSON payload.
Inputs: view (required), trace_id_or_uri (required), id, with_details, +2 more.
RuntimeListDumpsA
[runtime] List ABAP runtime dumps with optional user filter and paging. Returns parsed JSON payload.
Inputs: top, skip, user, orderby, +1 more.
RuntimeListFeedsA
[runtime] List available ADT runtime feeds or read a specific feed type. Feed types: dumps, system_messages, gateway_errors. Without feed_type returns available feed descriptors.
Inputs: to, from, user, feed_type, +1 more.
RuntimeListProfilerTraceFilesB
[runtime] List ABAP profiler trace files available in ADT runtime. Returns parsed JSON payload.
Inputs: no named parameters.
RuntimeListSystemMessagesB
[runtime] List SM02 system messages. Returns structured entries with id, title, text, severity, validity period, and author.
Inputs: to, from, user, max_results.
RuntimeRunClassWithProfilingC
[runtime] Execute ABAP class with profiler enabled and return created profilerId + traceId.
Inputs: class_name (required), aggregate, sql_trace, amdp_trace, +11 more.
RunUnitTestC
Start an ABAP Unit test run for provided class test definitions. Returns run_id for status/result queries.
Inputs: tests (required), scope, title, context, +2 more.
SearchObjectA
[read-only] Find, search, locate, or check if an ABAP repository object exists by name or wildcard pattern (e.g. 'ZOK*'). Use this tool to answer questions like 'is there a program named...', 'find all objects starting with...', 'does this class exist?', 'list objects matching...'. Supports all repository object types โ optionally filter by type (PROG, CLAS, INTF, DEVC, TABL, DDLS, DTEL, FUGR, SRVD, SRVB, BDEF, DDLX, etc.).
Inputs: object_name (required), maxResults, object_type.
UpdateBehaviorDefinitionB
Update source code of an ABAP Behavior Definition (BDEF). Modifies RAP business object behavior: CRUD operations, validations, determinations, actions, and draft handling.
Inputs: name (required), source_code (required), activate, lock_handle, +1 more.
UpdateBehaviorImplementationA
Update source code of an existing ABAP behavior implementation class. Updates both main source (with FOR BEHAVIOR OF clause) and implementations include. Uses stateful session with proper lock/unlock mechanism.
Inputs: class_name (required), behavior_definition (required), implementation_code (required), activate, +1 more.
UpdateCdsUnitTestC
Update a CDS unit test class local test class source code.
Inputs: class_name (required), test_class_source (required), transport_request.
UpdateClassA
Update source code of an existing ABAP class. Locks, checks, updates, unlocks, and optionally activates.
Inputs: class_name (required), source_code (required), activate, transport_request.
UpdateDataElementA
Update an existing ABAP data element in SAP system.
Workflow:
Gets domain info (if type_kind is 'domain') to extract dataType/length/decimals
Acquires lock on the data element
Updates data element with provided parameters (complete replacement)
Unlocks data element
Optionally activates data element (default: true)
Returns updated data element details
Supported type_kind values:
domain: Based on ABAP domain (requires type_name = domain name)
predefinedAbapType: Direct ABAP type (requires data_type, length, decimals)
refToPredefinedAbapType: Reference to ABAP type (requires data_type, length, decimals)
refToDictionaryType: Reference to another data element (requires type_name = data element name)
refToClifType: Reference to class (requires type_name = class name)
Note: All provided parameters completely replace existing values. Field labels are truncated to max lengths (10/20/40/55).
Inputs: package_name (required), data_element_name (required), length, activate, +13 more.
UpdateDomainA
Update an existing ABAP domain in SAP system.
Workflow:
Acquires lock on the domain
Updates domain with provided parameters (complete replacement)
Performs syntax check
Unlocks domain
Optionally activates domain (default: true)
Returns updated domain details
Note: All provided parameters completely replace existing values. Use GetDomain first to see current values if needed.
Inputs: domain_name (required), package_name (required), length, activate, +9 more.
UpdateFunctionGroupA
Update metadata (description) of an existing ABAP function group. Function groups are containers for function modules and don't have source code to update directly. Uses stateful session with proper lock/unlock mechanism.
Inputs: description (required), function_group_name (required), transport_request.
UpdateFunctionModuleA
Update source code of an existing ABAP function module. Locks the function module, uploads new source code, and unlocks. Optionally activates after update. Use this to modify existing function modules without re-creating metadata.
Inputs: source_code (required), function_group_name (required), function_module_name (required), activate, +1 more.
UpdateInterfaceA
Update source code of an existing ABAP interface. Uses stateful session with proper lock/unlock mechanism. Lock handle and transport number are passed in URL parameters.
Inputs: source_code (required), interface_name (required), activate, transport_request.
UpdateLocalDefinitionsB
Update local definitions in an ABAP class (definitions include). Manages lock, check, update, unlock, and optional activation.
Inputs: class_name (required), definitions_code (required), transport_request, activate_on_update.
UpdateLocalMacrosB
Update local macros in an ABAP class (macros include). Manages lock, check, update, unlock, and optional activation. Note: Macros are supported in older ABAP versions but not in newer ones.
Inputs: class_name (required), macros_code (required), transport_request, activate_on_update.
UpdateLocalTestClassA
Update a local test class in an ABAP class. Manages lock, check, update, unlock, and optional activation of parent class.
Inputs: class_name (required), test_class_code (required), transport_request, activate_on_update.
UpdateLocalTypesB
Update local types in an ABAP class (implementations include). Manages lock, check, update, unlock, and optional activation.
Inputs: class_name (required), local_types_code (required), transport_request, activate_on_update.
UpdateMetadataExtensionA
Update source code of an ABAP Metadata Extension (DDLX). Modifies Fiori UI annotations, field labels, search help, and list/object page layout for CDS views.
Inputs: name (required), source_code (required), activate, lock_handle, +1 more.
UpdateServiceBindingC
Update publication state for ABAP service binding via AdtServiceBinding workflow.
Inputs: service_name (required), service_binding_name (required), desired_publication_state (required), service_type, +2 more.
UpdateServiceDefinitionB
Update source code of an existing ABAP service definition. Uses stateful session with proper lock/unlock mechanism.
Inputs: source_code (required), service_definition_name (required), activate, transport_request.
UpdateStructureA
Update DDL source code of an existing ABAP structure. Locks the structure, uploads new DDL source, and unlocks. Optionally activates after update. Use this to modify existing structures without re-creating metadata.
Inputs: ddl_code (required), structure_name (required), activate, transport_request.
UpdateTableA
Update DDL source code of an existing ABAP table. Locks the table, uploads new DDL source, and unlocks. Optionally activates after update. Use this to modify existing tables without re-creating metadata.
Inputs: ddl_code (required), table_name (required), activate, transport_request.
UpdateUnitTestA
Update an ABAP Unit test run. Note: ADT does not support updating unit test runs and will return an error.
Inputs: run_id (required).
UpdateViewA
Update DDL source code of an existing CDS View or Classic View. Locks the view, checks new code, uploads new DDL source, unlocks, and optionally activates.
Inputs: view_name (required), ddl_source (required), activate, transport_request.
ValidateServiceBindingB
Validate service binding parameters (name, service definition, package, version) via ADT validation endpoint.
Inputs: service_binding_name (required), service_definition_name (required), description, package_name, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogโฆ
TDQS
Scored across 143 tools
Many tools have overlapping purposes, especially the GetX and ReadX pairs (e.g., GetClass vs. ReadClass) which both retrieve source code with slight metadata differences. Additionally, several listing tools (GetObjectsList, GetPackageContents, GetObjectsByType) serve similar purposes, making it difficult for an agent to select the correct tool.
Tools generally follow a VerbObject PascalCase pattern (e.g., CreateClass, DeleteTable). However, inconsistency arises with the use of both 'Get' and 'Read' for retrieval operations, and 'List' vs 'Get' for list operations (e.g., ListTransports vs GetObjectsList). This breaks a uniform naming convention.
With 143 tools, the server is excessively large for an MCP server. While the domain is broad, this many tools leads to cognitive overload and difficulty in tool selection, far exceeding typical curated sets (3-15 tools) and even heavy sets (25+). Many tools are granular variants that could be consolidated.
The tool set covers the full lifecycle of ABAP development objects: create, read, update, delete for classes, interfaces, tables, structures, views, data elements, domains, function groups, modules, behavior definitions, service artifacts, and more. It also includes runtime analysis, transport management, search, and unit testing, leaving no obvious gaps.
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
List, read, edit, and deploy your GenMB AI-generated apps from any MCP client.
Cloud-hosted MCP server for secure AI access to enterprise data sources via CData Connect AI.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceAn MCP server that enables AI assistants to interact with SAP systems via the ABAP Development Tools (ADT) REST API. It allows users to read ABAP source code, inspect DDIC objects, and execute SQL queries directly.66-

dassian-adtofficial
AlicenseNot gradedqualityCmaintenanceMCP server for SAP ABAP development via the ADT API. Connect AI assistants to your SAP system โ read, write, test, and deploy ABAP code without SAP GUI.21MIT- AlicenseNot gradedqualityDmaintenanceA standalone MCP server for SAP ABAP development and customizing that connects directly to your SAP system via ADT REST API, enabling AI assistants to search, read, write, activate, transport, debug, and run quality checks on ABAP code, as well as manage customizing/IMG configurations with governed transport recording.MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that connects AI assistants to SAP systems via the ADT REST API, enabling read, write, syntax-check, and activation of ABAP code directly from the chat.3MIT