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.
mcp-abap-adt: Your Gateway to ABAP Development Tools (ADT)
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.
This project provides a server that allows you to interact with SAP ABAP systems using the Model Context Protocol (MCP). Think of it as a bridge that lets tools like Cline (a VS Code extension) talk to your ABAP system and retrieve information like source code, table structures, and more.
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. Handler Exporter (For Embedding)
Export handlers for integration into existing servers (e.g., SAP CAP/CDS applications):
Quick Start
Install: See Installation Guide
Configure: See Client Configuration
Use: See Available Tools
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
Installation Guide - Installation instructions for all platforms
Client Configuration - How to configure MCP clients
Available Tools - Complete list of available MCP tools
For Administrators
Installation Guide - Platform-specific installation guides
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.
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.