This server acts as a Model Context Protocol (MCP) bridge to SAP ABAP systems, enabling comprehensive ABAP development and management through ADT (ABAP Development Tools).
Core Development Operations:
ABAP Object Management (CRUD): Create, read, update, and delete domains, data elements, tables, structures, views (CDS/Classic), classes, interfaces, programs, function groups, packages, service definitions, and behavior definitions.
Source Code Operations: Retrieve and modify source code for programs, classes, interfaces, function modules, includes, and enhancement implementations. Get full, recursively resolved code including all includes.
Class Components: Manage local test classes, local types, local definitions, and macros within ABAP classes.
Data & SQL:
Execute freestyle SQL queries via ADT Data Preview API
Retrieve table contents and definitions (with limitations on SAP BTP)
Analysis & Navigation:
Code Analysis: Parse ABAP code to generate Abstract Syntax Trees (AST), perform semantic analysis, and resolve system symbols
Where-Used Analysis: Find references to ABAP objects across the system
Enhancement Discovery: Analyze enhancement spots and implementations
Object Exploration: Browse packages (flat/hierarchical trees), virtual folders, and object dependency trees
System Monitoring: Get lists of inactive objects, transaction details, ADT object types, and object metadata
Testing Framework:
Create, run, and manage ABAP Unit tests and CDS unit tests
Retrieve test status (with long polling) and results in multiple formats (abapunit/junit)
Transport Management:
Create workbench or customizing transport requests
Retrieve transport request information, including tasks, objects, and status
Advanced Features:
Activation & Validation: Universal object activation and pre-flight validation checks
Session Management: Maintain stateful sessions with lock handles for complex operations
Batch Operations: Describe multiple objects in a single call and query in-memory object cache
Authentication & Deployment:
Supports multiple authentication methods (Basic, JWT/XSUAA for SAP BTP, destination-based with service keys)
Flexible deployment as standalone MCP server (stdio, HTTP, SSE) or embedded via handler export
Session persistence options (in-memory or file-based)
Provides tools for interacting with SAP ABAP systems through ABAP Development Tools (ADT), enabling management of ABAP objects including domains, data elements, tables, structures, views, classes, programs, transport requests, and enhancement discovery. Supports both on-premise systems and SAP BTP with JWT/XSUAA authentication.
Click on "Install 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., "@mcp-abap-adtshow me the structure of table ZCUSTOMER_MASTER"
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: 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) and ABAP Cloud (BTP) systems
JWT/XSUAA and service key (destination-based) 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
Getting Started
Install the server and configure your client using the configurator:
Full 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:
Standard 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:
2. Embeddable Server (For Integration)
Embed MCP server into existing applications (e.g., SAP CAP/CDS, Express):
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,RuntimeListDumps,RuntimeGetDumpById- Profiling and dump analysis with JSON payloadsπ 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:
Development Mode
Environment 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:
For JWT authentication (SAP BTP):
Generate .env from Service Key (JWT):
This 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--unsafe- Enable file-based session storage (persists tokens to disk). By default, sessions are stored in-memory (secure, lost on restart)
Examples:
See 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
Test 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
Developer Tools
Contributors
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.