MCP server by nhattuan1305
ADT MCP (Python)
Multi-system MCP server for reading and writing ABAP source via SAP ADT,
with a local web admin to configure systems. One process serves both the
MCP endpoint (/mcp) and the web admin (/).
Install
cd adt-mcp
python -m pip install -e .
# dev/test deps:
python -m pip install -r requirements.txt
Run
python -m adt_mcp # or: adt-mcp
# → http://127.0.0.1:8765 (MCP at /mcp, admin at /)
Open http://127.0.0.1:8765 to add SAP systems (URL, client, language, auth).
Config is stored in systems.json (gitignored). See systems.example.json.
Cookie systems can be (re)authenticated from the web admin via a browser login.
Connect Claude Code
Add to .mcp.json:
{
"mcpServers": {
"sap-adt": { "type": "http", "url": "http://127.0.0.1:8765/mcp" }
}
}
Tools
Read / navigate:
list_systems,list_package,search_objectsget_source,get_source_by_uri,get_class_method_source,get_class_include,get_object_structure,get_package_sourcegrep_package,find_references(where-used),cds_dependenciesget_context(object + compressed dependencies)get_revisions,get_revision_source,compare_source
Write (gated by safety, see below):
update_source,update_class_include,activatecreate_object(CLAS / INTF / DDLS / DDLX / BDEF / SRVD / SRVB / TABL)
Cookie maintenance: refresh_cookies_for.
Write safety
Writes are off by default. Per system in systems.json:
allow_write: true— required to enable any create/update.write_packages: ["Z*", "$TMP"]— target package must match (default).
Delete is intentionally not supported.
Token economy
Tool schemas are sent to the model on every turn. Set ADT_MCP_TOOLS=core
to expose only the essential ~13 tools (≈40% smaller schema); default full
exposes all 21. Descriptions are kept terse.
ADT_MCP_TOOLS=core python -m adt_mcp
Test
python -m pytest -v
Security
systems.json,cookies/,*-cookies.txthold session secrets and are gitignored — never commit them.- The server binds
127.0.0.1only.