ABAPilot
MCP connector for AI-assisted ABAP development on SAP ECC and on-premise S/4HANA; requires a separately licensed SAP backend.
Documentation
ABAPilot — MCP connector for ABAP development on SAP ECC and S/4HANA
ABAPilot by Crimson Consulting connects AI coding assistants to SAP ECC and on-premise S/4HANA. Use SAP source code and dictionary context to understand existing ABAP, review proposed changes and support development from your preferred MCP-capable coding client.
The connector is free and MIT-licensed. Connecting to SAP requires a licensed ABAPilot backend installed in your system.
- Watch the three-minute code-change walkthrough
- Read the technical case and test limitations
- Set up your IDE
- Book a live ABAP workflow demo
Evidence you can inspect
- Four-installation operational checks, 9 September 2026: two ECC and two S/4HANA installations passed dictionary reads, component reads, dispatcher-source reads and positive/negative syntax checks. This did not test writes, activation, transports, authorization boundaries or production readiness.
- Public MIT-licensed ABAP REST framework: inspect the table-driven endpoint registry, dispatcher and example handlers. This framework is separate from the licensed ABAPilot backend and is not proof that the checked installations run an identical public commit.
- Published MCP catalog: the npm 1.0.6 connector exposes 49 tools. Catalog discovery is not evidence that every operation works on a particular SAP installation.
Start with an existing ABAP program
Ask your assistant to explain a program using source and dictionary definitions retrieved from SAP. Review the references it used before moving to a proposed change. Available operations depend on the connector version, installed backend and enabled endpoints.
Architecture and prerequisites
The MCP connector runs outside SAP and calls the licensed SAP-side backend. Agree the SAP release, backend version, HTTPS endpoint, individual user permissions and permitted operations with your SAP team before a customer trial.
Start the connector using npx -y abapilot. This command does not install the SAP backend. Follow the linked setup guide for client-specific configuration and secret handling. Pin a reviewed connector version for repeatable team rollouts.
Technical reference: Architecture
Tools
The current repository catalog lists 49 tools. Availability depends on the installed connector, backend version and enabled endpoints.
Business data
sap_read_table_data— Reads actual data from a SAP table with optional WHERE clause filtering and metadata inclusionsap_read_table_data_enhanced— Query data from a SAP table with optional WHERE clause filteringsap_read_table_paginated— Read table data with pagination support for large result setssap_stream_table_data— Streams large table data using offset-based paginationsap_smart_table_query— Execute a table query with automatic metadata-driven enhancementssap_multi_table_query— Execute a multi-table query with proper joins and optional aggregationsap_count_rows— Estimate row count for a table BEFORE fetching datasap_analyze_query— Analyze a natural language query and return intelligent guidance for building the SAP querysap_search_tables— Search the Data Dictionary for tables matching a keyword
Data Dictionary & metadata
sap_read_table_structure— Retrieves the metadata of a Data Dictionary table including field definitions, data types, keys, and descriptionssap_read_object_details— Read comprehensive details about any SAP repository or DDIC objectsap_read_object_info— Get metadata about an ABAP object including creation date, last changed date, author, and packagesap_check_type_exists— Checks whether a type exists in the SAP Data Dictionary and returns its kindsap_read_domain_values— Retrieves the fixed values defined for a domainsap_read_field_domain_values— Get domain fixed values for a specific table fieldsap_read_foreign_keys— Read foreign key relationships for a table from Data Dictionary (DD08L)sap_infer_joins— Automatically detect join keys between two tables based on domain matchingsap_get_field_metadata— Get enriched metadata for SAP table fields with semantic classificationsap_list_package_objects— List all ABAP repository objects in a development package (DEVCLASS)
ABAP code
sap_read_code— Retrieves the source code of an ABAP object (program, class, or function group)sap_read_includes— Retrieves all include files for a program with their source codesap_read_dynpros— Retrieves screen definitions for a program including field listssap_read_texts— Retrieves text elements (selection texts, text symbols) for a programsap_read_where_used— Queries SAP's cross-reference tables (WBCROSSGT/WBCROSSI) to find what objects use a given object (forward) or what a given object uses (inverse)sap_get_enhancements— List ALL enhancements for a SAP transaction or program in one callsap_syntax_check— Validates ABAP source code for syntax errors without creating or activating itsap_write_code— Forward a source-write request; object support, validation and activation depend on the installed backendsap_write_code_safe— Forward a request to the backend; safeguards are not implemented by the public Node connector and its input schema is incompletesap_patch_code— Forward a source-patching request; supported patch arguments and validation depend on the backend
Operations & troubleshooting
sap_read_dumps— Query ABAP runtime errors (short dumps) from SAP's ST22 transactionsap_read_dump_details— Get detailed information for a specific short dump including full error texts, cause, and solutionsap_read_syslog— Query system log entries from SAP's SM21 transactionsap_read_jobs— Query background job information from SAP's SM37 transactionsap_run_program— Request report execution; output depends on the backend, with no timeout or background-job fallback implemented by this connectorsap_run_transaction— Run the ABAP report behind a report transaction code, optionally with a selection-screen variant, and return its list outputsap_save_variant— Create or overwrite an ABAP selection-screen VARIANT for a report, so it can be reused by sap_run_program (and the performance trace / headless…sap_read_user_locks— Query user lock status from USR02 tablesap_diagnose_message— Diagnose a SAP error/warning/info message end-to-endsap_lookup_t100— Look up a specific SAP T100 message by message class and numbersap_lookup_error— Analyze a SAP error message using all available external knowledge sources
Audit & compliance
sap_read_change_docs— Query change documents from CDHDR/CDPOS tablessap_read_change_docs_v2— Optimized change document query using function modulessap_discover_change_object— Find the change document OBJECTCLAS for a table by querying TCDOBsap_scan_security_notes— Discover ABAP Security/HotNews notes for a SAP patch-day month and rank them by relevancy to this systemsap_check_notes_relevancy— Check relevancy of one or more SAP Note numbers against this system (component/SP levels, download state, implementation readiness)
Translation
sap_read_translations— Reads translatable texts from a SAP object in source and optionally target languagesap_write_translations— Writes translated texts back to a SAP objectsap_translate— Composite tool: reads translatable texts from a SAP object, translates them using AI, and optionally writes them back
Knowledge
sap_search_knowledge— Search SAP documentation and community for information on any SAP topic
The catalog is gated in two places. In your system, the /ABAPILOT/CONFIG (or /TSRA/CONFIG) endpoint registry decides which endpoints are live — switch one off and the tool stops working, with no client change. On the client side, ABAPILOT_TOOLS narrows what a given MCP client sees:
"env": { "ABAPILOT_TOOLS": "sap_read_table_data,sap_read_code,sap_syntax_check" }
The licensed backend may expose operations beyond this public catalog. Agree the required capabilities and verify them on the deployed version before a trial.
Validation and data handling
The public connector advertises source and dictionary readers, syntax checking and write endpoints. Validation and deployment safeguards depend on the installed backend. A syntax check must not be assumed for every write. Confirm the enabled endpoints, validation behavior, authorization failures and log attribution on your deployed version.
Review which SAP context your chosen AI client and model provider receive. Using your own API key does not by itself establish local processing or a particular retention policy.
Evaluate the workflow
The September 2026 walkthrough uses Claude Code, ABAPilot and a lifecycle skill to change a sandbox copy of an existing material-description report, then update its technical specification and test scenarios. Length and invalid-character checks run independently; a regex-cache regression checks that changing patterns does not reuse a stale expression.
The final recorded ABAP Unit run passed 14 test methods. The scenario document records 15 passes out of 16 scenarios: 14 unit scenarios and a documentation review, with manual report integration not run. Material selection, SALV rendering, MM03 navigation and runtime termination before data selection were not verified by the unit run. The original report and material-master data were not changed. This is one configured sandbox installation, not evidence of production readiness or a promise of identical support on every SAP release.
The technical case contains screenshots and the coverage boundaries. The earlier four-minute creation demo is also available.
The recorded demo shows one sandbox workflow. In a live demo we can discuss your system, IDE and requirements before agreeing a customer trial. Choose a time.