npm abapilotstdioMITupdated 11d ago
ABAPilot is an in-system AI platform for SAP: natural-language business queries and AI-assisted ABAP development on the systems you already run β SAP ECC 6.0 through on-premise S/4HANA (any ABAP-based SAP instance). No BTP, no ADT, no RISE prerequisites. Deploys in 2 hours.
What can you do with ABAPilot?
ABAPilot β AI & MCP Server for SAP ECC and On-Premise S/4HANA
ABAPilot is an in-system AI platform for SAP: natural-language business queries and AI-assisted ABAP development on the systems you already run β SAP ECC 6.0 through on-premise S/4HANA (any ABAP-based SAP instance). No BTP, no ADT, no RISE prerequisites. Deploys in ~2 hours.
Install the connector: npx -y abapilot Β· requires a licensed ABAPilot backend
Website: https://crimsonconsultingsl.com/abapilot/
Architecture deep-dive: ARCHITECTURE.md
Watch a real session (4 min): https://youtu.be/r9mg-gxKQQ0
2026 guide β AI for SAP ECC: https://crimsonconsultingsl.com/ai-for-sap-ecc/
Engineering write-up (SAP Community): Running AI agents against SAP ECC 6.0 β lessons from building an in-system MCP server
vs SAP's ABAP MCP Server: https://crimsonconsultingsl.com/abapilot-vs-sap-abap-mcp-server/
Quick start
{
"mcpServers": {
"abapilot": {
"command": "npx",
"args": ["-y", "abapilot"],
"env": {
"ABAPILOT_URL": "http://<sap-host>:<port>/sap/bc/ZABAPilot",
"ABAPILOT_USER": "<sap-user>",
"ABAPILOT_PASSWORD": "<sap-password>",
"ABAPILOT_CLIENT": "100"
}
}
}
}
Your SAP credentials go only to your SAP system β never to us or any third party.
How it works
- Inside SAP: pure-ABAP add-on delivered as a transport into the registered
/ABAPILOT/namespace, attached to a single SICF (ICF) node with dynamic per-endpoint dispatch. No kernel changes, no Gateway, no BTP, no ADT/Eclipse dependency. - On your network: this MCP connector (
npx abapilot) links any MCP client β Claude, Claude Code, Cursor, ChatGPT β to the SAP-side endpoints. - Your model: BYOK for Claude, OpenAI, Gemini, Amazon Bedrock β or fully local via Ollama for zero-data-retention deployments.
Tools
49 tools, each mapping 1:1 to an endpoint of the ABAPilot dispatcher inside your SAP system.
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 an 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β Low-level ABAP write endpointsap_write_code_safeβ Write ABAP code to SAP with validation and optional ECC 6.0 auto-fixingsap_patch_codeβ Apply delta modifications to existing ABAP programs or classes without sending full source
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β Execute an ABAP report program (SUBMIT) and return its list output as text linessap_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 serves more than this connector exposes β 90+ active endpoints on a current ECC install, including transports and CTS, PFCG roles and SU24, SAP Note download and implementation, customizing writes, ABAP Unit, ATC, and SPAU/SPDD adjustment replay. The tools above are the subset with stable public schemas.
Security model
- Every call runs under the SAP user's own authorizations (S_TABU_DIS, S_DEVELOP, β¦) β enforced, not reimplemented
- Exposure limited to the
/ABAPILOT/CONFIGwhitelist table; anything not whitelisted is unreachable - Full audit trail in
/ABAPILOT/AUDIT(user, timestamp, parameters) - Write endpoints (
sap_write_code,sap_patch_code,sap_write_translations, β¦) ship switched off; a customer administrator activates them per endpoint in the registry
Getting access
ABAPilot is a commercial product by Crimson Consulting SL (Valencia, Spain). The npm connector is free (MIT); the in-system backend is licensed.
Book a demo: https://crimsonconsultingsl.com/demo/ β 30 minutes on a live system, you pick the task. POC deployment on your dev system takes about two hours.
Why not SAP's ABAP MCP Server?
Different jobs: SAP's server (inside ADT for Eclipse/VS Code) is excellent for developer assistance on systems with modern ADT services. ABAPilot adds what it doesn't cover: business-user queries, systems without ADT services (most real-world ECC 6.0), governed whitelist+audit access, and model choice including fully local. Many teams run both β full comparison here.
Install
Add ABAPilot to your client. Pick the one you use.
claude mcp add abapilot -- npx -y abapilotcodex mcp add abapilot -- npx -y abapilotamp mcp add abapilot -- npx -y abapilot{
"mcpServers": {
"abapilot": {
"command": "npx",
"args": [
"-y",
"abapilot"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"abapilot": {
"command": "npx",
"args": [
"-y",
"abapilot"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"abapilot","command":"npx","args":["-y","abapilot"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"abapilot": {
"command": "npx",
"args": [
"-y",
"abapilot"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"abapilot": {
"command": "npx",
"args": [
"-y",
"abapilot"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"abapilot": {
"command": "npx",
"args": [
"-y",
"abapilot"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"abapilot": {
"type": "local",
"command": "npx",
"args": [
"-y",
"abapilot"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"abapilot": {
"command": {
"path": "npx",
"args": [
"-y",
"abapilot"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y abapilotRun `goose configure`, choose **Add Extension β Command-line Extension**, and paste this command.
49 tools
ABAPilot exposes 49 tools to a connected agent.
- sap_read_table_data
- Reads actual data from a SAP table with optional WHERE clause filtering and metadata inclusion
- sap_read_table_data_enhanced
- Query data from an SAP table with optional WHERE clause filtering
- sap_read_table_paginated
- Read table data with pagination support for large result sets
- sap_stream_table_data
- Streams large table data using offset-based pagination
- sap_smart_table_query
- Execute a table query with automatic metadata-driven enhancements
- sap_multi_table_query
- Execute a multi-table query with proper joins and optional aggregation
- sap_count_rows
- Estimate row count for a table BEFORE fetching data
- sap_analyze_query
- Analyze a natural language query and return intelligent guidance for building the SAP query
- sap_search_tables
- Search the Data Dictionary for tables matching a keyword
- sap_read_table_structure
- Retrieves the metadata of a Data Dictionary table including field definitions, data types, keys, and descriptions
- sap_read_object_details
- Read comprehensive details about any SAP repository or DDIC object
- sap_read_object_info
- Get metadata about an ABAP object including creation date, last changed date, author, and package
- sap_check_type_exists
- Checks whether a type exists in the SAP Data Dictionary and returns its kind
- sap_read_domain_values
- Retrieves the fixed values defined for a domain
- sap_read_field_domain_values
- Get domain fixed values for a specific table field
- sap_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 matching
- sap_get_field_metadata
- Get enriched metadata for SAP table fields with semantic classification
- sap_list_package_objects
- List all ABAP repository objects in a development package (DEVCLASS)
- 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 code
- sap_read_dynpros
- Retrieves screen definitions for a program including field lists
- sap_read_texts
- Retrieves text elements (selection texts, text symbols) for a program
- sap_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 call
- sap_syntax_check
- Validates ABAP source code for syntax errors without creating or activating it
- sap_write_code
- Low-level ABAP write endpoint
- sap_write_code_safe
- Write ABAP code to SAP with validation and optional ECC 6.0 auto-fixing
- sap_patch_code
- Apply delta modifications to existing ABAP programs or classes without sending full source
- sap_read_dumps
- Query ABAP runtime errors (short dumps) from SAP's ST22 transaction
- sap_read_dump_details
- Get detailed information for a specific short dump including full error texts, cause, and solution
- sap_read_syslog
- Query system log entries from SAP's SM21 transaction
- sap_read_jobs
- Query background job information from SAP's SM37 transaction
- sap_run_program
- Execute an ABAP report program (SUBMIT) and return its list output as text lines
- sap_run_transaction
- Run the ABAP report behind a report transaction code, optionally with a selection-screen variant, and return its list output
- sap_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 table
- sap_diagnose_message
- Diagnose a SAP error/warning/info message end-to-end
- sap_lookup_t100
- Look up a specific SAP T100 message by message class and number
- sap_lookup_error
- Analyze a SAP error message using all available external knowledge sources
- sap_read_change_docs
- Query change documents from CDHDR/CDPOS tables
- sap_read_change_docs_v2
- Optimized change document query using function modules
- sap_discover_change_object
- Find the change document OBJECTCLAS for a table by querying TCDOB
- sap_scan_security_notes
- Discover ABAP Security/HotNews notes for a SAP patch-day month and rank them by relevancy to this system
- sap_check_notes_relevancy
- Check relevancy of one or more SAP Note numbers against this system (component/SP levels, download state, implementation readiness)
- sap_read_translations
- Reads translatable texts from a SAP object in source and optionally target language
- sap_write_translations
- Writes translated texts back to a SAP object
- sap_translate
- Composite tool: reads translatable texts from a SAP object, translates them using AI, and optionally writes them back
- sap_search_knowledge
- Search SAP documentation and community for information on any SAP topic
Score
77 / 100
Good
- Documentation25/25
- Maintenance19/25
- Trust13/20
- Capability8/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 4 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 49 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint β no local install
Version history
| Versions | Published |
|---|---|
| 1.0.2Latest | Jul 22, 2026 |
| 1.0.1 | Jul 22, 2026 |