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)
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. Embeddable Server (For Integration)
Embed MCP server into existing applications (e.g., SAP CAP/CDS, Express):
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.