SAP BTP ABAP ADT Server
FreeNot checkedEnables SAP ABAP development workflows including ADT login, object search, read, create, update, activate, delete, and OData service publishing.
About
Enables SAP ABAP development workflows including ADT login, object search, read, create, update, activate, delete, and OData service publishing.
README
MCP (Model Context Protocol) server for AI agents to interact with SAP ABAP systems via ADT HTTP APIs. Provides 27 tools covering the full ABAP development lifecycle.
Requirements
- Python 3.11+
- SAP ABAP system with ADT enabled
- Browser SSO access to the target system, or ADT-enabled Basic Auth credentials
- Optional: communication arrangements for ABAP Unit (
SAP_COM_0735) and ATC (SAP_COM_0901)
Install
python -m venv .venv
.\.venv\Scripts\pip install -e .
copy sap-mcp.example.yaml sap-mcp.yaml
Edit sap-mcp.yaml and set:
abap_dev.system_urlabap_dev.client, if the SAP system requires an explicit client such as100abap_dev.auth_mode:sso,basic, orauto(default)abap_dev.username/abap_dev.password, ifauth_modeisbasicorautoallowed_packagesallow_write/allow_activate
Do not commit or share sap-mcp.yaml, .env, or .sap-mcp-session.json.
Start
HTTP:
$env:SAP_MCP_AUTH_TOKENS="dev-token"
uvicorn sap_mcp.server:app --host 127.0.0.1 --port 8000
STDIO:
python -m sap_mcp.stdio_server
HTTP endpoints:
/mcp/healthz/logon/success
MCP Tools (27)
Session & System
| Tool | Description | Actions |
|---|---|---|
abap_list_destinations |
List available ABAP system destinations | (no args) |
abap_adt_session |
Manage ADT authentication | login, validate, save_cookies, save_cookie_header, clear |
abap_system_info |
Read ABAP system information | system, components, users |
Object Discovery
| Tool | Description | Key Parameters |
|---|---|---|
abap_find_objects |
Find ABAP repository objects by name, query, or package | query, exact_name, name, object_type, package, search_mode, sort_by |
abap_where_used |
Find where an ABAP object is referenced (Where-Used list) | object_type, name, enable_all_types |
abap_get_object_metadata |
Read object metadata, package, links, source structure | object_type, name, uri, destination |
Source Code
| Tool | Description | Key Parameters |
|---|---|---|
abap_read_source |
Read ABAP source code | object_type, name, scope (main/include/active/inactive/both), include_type, uri |
abap_describe_signature |
Describe ABAP object method signatures | object_type, name, method_name |
abap_update_source |
Update ABAP source code | object_type, name, source, include_type, etag, reason, transport_request_number |
abap_syntax_check |
Run syntax check on source (no activation) | object_type, name, source |
abap_code_assist |
Code assistance — element info or format | action (element_info/format), object_type, object_name, source, position |
Lifecycle Management
| Tool | Description | Key Parameters |
|---|---|---|
abap_create_object |
Create an ABAP repository object | object_type, name, package, description, source, object_content, transport_request_number, implementation_type, service_binding_version |
abap_creation_info |
Inspect/validate creation metadata | action (list_types/type_details/validate), destination, object_type |
abap_activate |
Activate one or more ABAP objects | object_type, name, objects[], reason |
abap_delete_object |
Delete an ABAP repository object | object_type, name, reason, etag, transport_request_number |
abap_lock |
Lock an ABAP object for editing | object_url, is_creation |
abap_unlock |
Release an ABAP object lock | lock_handle, object_url |
Transport
| Tool | Description | Actions |
|---|---|---|
abap_transport |
Manage transport requests for object workflows | get, create, list_tasks, objects, release |
Service Binding
| Tool | Description | Key Parameters |
|---|---|---|
abap_business_services |
Read service binding OData data | action (list_services/service_info), service_binding_name, destination |
abap_publish_service_binding |
Publish an OData V2 or V4 service binding | name, odata_version, reason |
abap_unpublish_service_binding |
Unpublish an OData V2 or V4 service binding | name, odata_version, reason |
RAP Generators
| Tool | Description | Actions |
|---|---|---|
abap_generators |
Work with RAP generators | list, schema, generate |
CDS Analysis
| Tool | Description | Actions |
|---|---|---|
abap_cds_analysis |
Analyze CDS views | dependencies, related_objects, active_object, create_sql, object_relations |
Data Preview
| Tool | Description | Actions |
|---|---|---|
abap_data_preview |
Preview data from CDS views, DDIC tables, or free-style SQL | cds, ddic, freestyle |
Execution
| Tool | Description | Key Parameters |
|---|---|---|
abap_execute |
Execute ABAP programs or classes | action (program/class), object_name, parameters |
abap_call_function |
Call an ABAP function module or BAPI | function_name, importing, changing, tables, commit, destination |
Quality
| Tool | Description | Key Parameters |
|---|---|---|
abap_quality |
Run ABAP quality checks (unit tests / ATC) | kind (unit/atc), action (start/status/result) |
Supported Object Types
| Code | Description |
|---|---|
CLAS |
Class |
INTF |
Interface |
DDLS |
CDS View / Entity |
DCLS / DCLX |
Access Control (DCL) |
BDEF |
Behavior Definition |
DDLX |
CDS Extension |
SRVD |
Service Definition |
SRVB |
Service Binding |
TABL |
Table / Structure |
DTEL |
Data Element |
DOMA |
Domain |
DEVC |
Package |
PROG |
Program |
FUGR |
Function Group |
FUNC |
Function Module |
Object type inputs accept either short canonical type (TABL, DDLS, SRVB) or an ADT type id from search/creation results (TABL/DT, DDLS/DF, SRVB/SVB). Prefer short object_type values for cross-tool calls.
Typical Workflow
find/read → syntax_check → update_source → activate
- Find objects with
abap_find_objects - Read source with
abap_read_source - Check syntax with
abap_syntax_check - Update source with
abap_update_source - Activate with
abap_activate
For transport-managed systems, use abap_transport(action="get") first. Write, activate, publish, and delete operations are restricted by allowed_packages.
Login Flow
SSO Mode
- Set
abap_dev.auth_mode: "sso" - Call
abap_adt_session(action="login") - Complete SAP SSO in the browser
- The callback stores the local ADT session
- Call
abap_adt_session(action="validate")
Basic Auth Mode
- Set
abap_dev.auth_mode: "basic" - Set
abap_dev.usernameandabap_dev.password - Call
abap_adt_session(action="validate")
Use read tools first; enable write and activation only when needed.
Project Structure
SAP-ABAP-ADT-MCP/
├── sap_mcp/ # Python package
│ ├── auth/ # Authentication (SSO)
│ ├── connectors/ # ADT API connectors
│ │ ├── analysis/ # CDS analysis, code assist
│ │ ├── core/ # HTTP, auth, paths, XML utils
│ │ ├── integration/ # Business services, destinations, generators
│ │ ├── lifecycle/ # Activation, lock, quality, syntax check, transport
│ │ ├── objects/ # CRUD, search, execution, function modules
│ │ └── system/ # System info
│ ├── services/ # ABAP Dev Gateway
│ ├── tools/ # MCP tool workflows
│ ├── mcp_server.py # MCP tool definitions (27 tools total)
│ └── server.py # HTTP/STDIO server entry points
├── sap-mcp.example.yaml # Example configuration
├── pyproject.toml # Python project metadata
├── .gitignore
└── README.md
Install SAP BTP ABAP ADT Server in Claude Desktop, Claude Code & Cursor
unyly install sap-btp-abap-adt-mcp-serverInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add sap-btp-abap-adt-mcp-server -- uvx --from git+https://github.com/Dante-tx/SAP-ABAP-ADT-MCP sap-mcpFAQ
Is SAP BTP ABAP ADT Server MCP free?
Yes, SAP BTP ABAP ADT Server MCP is free — one-click install via Unyly at no cost.
Does SAP BTP ABAP ADT Server need an API key?
No, SAP BTP ABAP ADT Server runs without API keys or environment variables.
Is SAP BTP ABAP ADT Server hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install SAP BTP ABAP ADT Server in Claude Desktop, Claude Code or Cursor?
Open SAP BTP ABAP ADT Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare SAP BTP ABAP ADT Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
