S
Sap Btp Trial Abap Adt MCP
by @Dante-tx
SAP BTP Trial ABAP ADT MCP
Created 6/10/2026
Updated about 4 hours ago
README
Repository documentation and setup instructions
SAP BTP ABAP ADT MCP Server
Python + FastMCP + ASGI MCP server for SAP ABAP Development Tools access.
This server is focused on practical ADT development workflows:
- Browser SSO assisted ADT login
- Repository search
- Source and metadata read
- Controlled create, update, activate, delete
- OData V4 service binding publish
Runtime
- Python 3.11+
- Access to an SAP ABAP system with ADT enabled
- Browser SSO access to the target system
- Change authorization for the object types you intend to modify
Install dependencies:
python -m venv .venv
.\.venv\Scripts\pip install -e ".[test]"
HTTP Endpoints
/mcp/healthz/logon/success
Supported MCP Tools
abap_adt_loginabap_save_sso_sessionabap_save_sso_cookie_headerabap_adt_connectabap_search_objectsabap_read_sourceabap_create_objectabap_update_sourceabap_activate_objectabap_delete_objectabap_publish_service_binding
Supported Object Coverage
The following object types are supported for read, create, update, and delete:
CLAS,INTFDDLS,DCLS,BDEF,DDLX,SRVD,SRVBTABL,DTEL,DOMA,DEVCPROG,FUGR,FUNC
Notes:
- Class and interface reads aggregate local includes such as
definitionsandimplementations. - Standard SAP packages can be read when
readable_packagesallows them, but standard SAP objects must remain read-only in normal use. - Create, update, activate, publish, and delete operations are restricted by
allowed_packages. - Backend authorizations still apply. If the SAP system blocks an object type, MCP will surface the ADT error.
Configuration
Copy the example config:
copy sap-mcp.example.yaml sap-mcp.yaml
Example:
server:
name: "SAP BTP ABAP ADT MCP Server"
auth_tokens:
- "dev-token"
abap_dev:
system_url: "https://your-abap-instance.abap.region.hana.ondemand.com"
callback_url: "http://localhost:8000/logon/success"
reentrance_endpoint: "/sap/bc/sec/reentrance"
reentrance_scenario: "FTO1"
service_key_path: "service-key.json"
session_path: ".sap-mcp-session.json"
readable_packages:
- "*"
allowed_packages:
- "Z*"
allow_write: false
allow_activate: false
default_timeout_seconds: 30
Security notes:
service-key.jsonis only used to discover the ABAP system URL ifsystem_urlis not set.- Do not distribute
.sap-mcp-session.json,service-key.json,.env, or your realsap-mcp.yaml. - Prefer
readable_packages: ["*"]with a narrowallowed_packageslist for production use.
Service Key Source
When abap_dev.system_url is not set, the server can read the ABAP system URL from service-key.json.
Typical source in SAP BTP cockpit:
- Open
Instances and Subscriptions. - Locate your ABAP environment instance.
- Click the credential entry shown as
1 key value. - In the popup, click
Downloadand save the downloaded service key JSON locally asservice-key.json.
Use the entry below as the navigation reference for where to start the download:

Start
$env:SAP_MCP_AUTH_TOKENS="dev-token"
uvicorn app.server:app --host 127.0.0.1 --port 8000
ADT Login Flow
- Call
abap_adt_login. - Complete SAP SSO in the browser.
- The callback at
/logon/successstores the ADT reentrance session locally. - Call
abap_adt_connect. - Use read tools first, then enable write and activate only when needed.
Tests
python -m pytest -q
Quick Setup
Installation guide for this server
Install Package (if required)
uvx sap-btp-trial-abap-adt-mcp
Cursor configuration (mcp.json)
{
"mcpServers": {
"dante-tx-sap-btp-trial-abap-adt-mcp": {
"command": "uvx",
"args": [
"sap-btp-trial-abap-adt-mcp"
]
}
}
}