Reading a program's source is convenient; finding every object that references a table before you change it is the thing you cannot do any other way outside the IDE. Everything is read-only, which is the right shape for a system where a wrong write is a production incident. The BTP utilities are a small kindness — a service key becomes a working configuration without hand-copying fields.
A server over ABAP Development Tools. It reads the repository of a running SAP system: source for every object type, table definitions and contents, where-used lists, enhancement implementations, and freestyle SQL. On-premise systems authenticate with a username and password; BTP systems use a JWT.
- get_program_source_mcp, get_class_source_mcp, get_include_source_mcp and get_interface_source_mcp
- get_function_group_source_mcp and get_function_source_mcp for function groups and modules
- get_structure_source_mcp, get_table_source_mcp and get_type_info_mcp for definitions
- get_table_contents_mcp for actual rows, capped at 100 by default
- get_cds_source_mcp and get_metadata_extension_source_mcp for CDS views and their annotations
- get_usage_references_mcp — where-used for any object, which is the search you cannot do by grepping
- get_search_objects_mcp, get_package_structure_mcp and get_transaction_properties_mcp
- get_enhancements_mcp to find enhancement implementations, and get_sql_query_mcp for freestyle SQL
- parse_btp_service_key_mcp, generate_env_from_service_key_file_mcp, generate_env_from_service_key_json_mcp and get_btp_connection_status_mcp for the BTP path
A running SAP ABAP system with ADT services enabled, and Python 3.9 or newer with a virtual environment. On-premise means SAP_AUTH_TYPE set to basic with SAP_URL, SAP_CLIENT, SAP_USER and SAP_PASS; BTP means SAP_AUTH_TYPE set to jwt with SAP_URL and SAP_JWT_TOKEN, and a bundled generator turns a downloaded service key into that file for you. Transports include stdio, SSE and Streamable HTTP. Register it with the full path to the server file — a relative one is the usual cause of a connection that closes immediately.
