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)
This project provides a server that allows you to interact with SAP ABAP systems using the Model Context Protocol (MCP). It connects AI clients to real ADT capabilities: read, analyze, and modify ABAP artifacts with a consistent, secure interface.
Why teams use it:
Works with on‑prem and BTP ABAP systems
Destination‑based auth (service keys) so you stop pasting tokens everywhere
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 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 service-keys folder and use the filename as your destination:
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: See Available Tools
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🚀 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 clientsAvailable Tools - Complete list of available MCP tools
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
The server automatically looks for .env file in this order:
Path specified via
--envargument.envin current working directory (where you run the command).envin package installation 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.
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.