{
  "markdown": "# ABAPilot — AI & MCP Server for SAP ECC and On-Premise S/4HANA\n\nABAPilot 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.\n\n**Install the connector:** `npx -y abapilot` · requires a [licensed ABAPilot backend](https://crimsonconsultingsl.com/abapilot/)\n\n**Website:** https://crimsonconsultingsl.com/abapilot/\n\n**Architecture deep-dive:** [ARCHITECTURE.md](ARCHITECTURE.md)\n\n**Watch a real session (4 min):** https://youtu.be/r9mg-gxKQQ0\n\n**2026 guide — AI for SAP ECC:** https://crimsonconsultingsl.com/ai-for-sap-ecc/\n\n**Engineering write-up (SAP Community):** [Running AI agents against SAP ECC 6.0 — lessons from building an in-system MCP server](https://community.sap.com/t5/technology-blog-posts-by-members/running-ai-agents-against-sap-ecc-6-0-lessons-from-building-an-in-system/ba-p/14468622)\n\n**vs SAP's ABAP MCP Server:** https://crimsonconsultingsl.com/abapilot-vs-sap-abap-mcp-server/\n\n<!-- mcp-name: io.github.NicoHern/abapilot-mcp -->\n\n## Quick start\n\n```json\n{\n  \"mcpServers\": {\n    \"abapilot\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"abapilot\"],\n      \"env\": {\n        \"ABAPILOT_URL\": \"http://<sap-host>:<port>/sap/bc/ZABAPilot\",\n        \"ABAPILOT_USER\": \"<sap-user>\",\n        \"ABAPILOT_PASSWORD\": \"<sap-password>\",\n        \"ABAPILOT_CLIENT\": \"100\"\n      }\n    }\n  }\n}\n```\n\nYour SAP credentials go only to your SAP system — never to us or any third party.\n\n## How it works\n\n- **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.\n- **On your network:** this MCP connector (`npx abapilot`) links any MCP client — Claude, Claude Code, Cursor, ChatGPT — to the SAP-side endpoints.\n- **Your model:** BYOK for Claude, OpenAI, Gemini, Amazon Bedrock — or fully local via Ollama for zero-data-retention deployments.\n\n## Tools\n\n49 tools, each mapping 1:1 to an endpoint of the ABAPilot dispatcher inside your SAP system.\n\n**Business data**\n\n- `sap_read_table_data` — Reads actual data from a SAP table with optional WHERE clause filtering and metadata inclusion\n- `sap_read_table_data_enhanced` — Query data from an SAP table with optional WHERE clause filtering\n- `sap_read_table_paginated` — Read table data with pagination support for large result sets\n- `sap_stream_table_data` — Streams large table data using offset-based pagination\n- `sap_smart_table_query` — Execute a table query with automatic metadata-driven enhancements\n- `sap_multi_table_query` — Execute a multi-table query with proper joins and optional aggregation\n- `sap_count_rows` — Estimate row count for a table BEFORE fetching data\n- `sap_analyze_query` — Analyze a natural language query and return intelligent guidance for building the SAP query\n- `sap_search_tables` — Search the Data Dictionary for tables matching a keyword\n\n**Data Dictionary & metadata**\n\n- `sap_read_table_structure` — Retrieves the metadata of a Data Dictionary table including field definitions, data types, keys, and descriptions\n- `sap_read_object_details` — Read comprehensive details about any SAP repository or DDIC object\n- `sap_read_object_info` — Get metadata about an ABAP object including creation date, last changed date, author, and package\n- `sap_check_type_exists` — Checks whether a type exists in the SAP Data Dictionary and returns its kind\n- `sap_read_domain_values` — Retrieves the fixed values defined for a domain\n- `sap_read_field_domain_values` — Get domain fixed values for a specific table field\n- `sap_read_foreign_keys` — Read foreign key relationships for a table from Data Dictionary (DD08L)\n- `sap_infer_joins` — Automatically detect join keys between two tables based on domain matching\n- `sap_get_field_metadata` — Get enriched metadata for SAP table fields with semantic classification\n- `sap_list_package_objects` — List all ABAP repository objects in a development package (DEVCLASS)\n\n**ABAP code**\n\n- `sap_read_code` — Retrieves the source code of an ABAP object (program, class, or function group)\n- `sap_read_includes` — Retrieves all include files for a program with their source code\n- `sap_read_dynpros` — Retrieves screen definitions for a program including field lists\n- `sap_read_texts` — Retrieves text elements (selection texts, text symbols) for a program\n- `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)\n- `sap_get_enhancements` — List ALL enhancements for a SAP transaction or program in one call\n- `sap_syntax_check` — Validates ABAP source code for syntax errors without creating or activating it\n- `sap_write_code` — Low-level ABAP write endpoint\n- `sap_write_code_safe` — Write ABAP code to SAP with validation and optional ECC 6.0 auto-fixing\n- `sap_patch_code` — Apply delta modifications to existing ABAP programs or classes without sending full source\n\n**Operations & troubleshooting**\n\n- `sap_read_dumps` — Query ABAP runtime errors (short dumps) from SAP's ST22 transaction\n- `sap_read_dump_details` — Get detailed information for a specific short dump including full error texts, cause, and solution\n- `sap_read_syslog` — Query system log entries from SAP's SM21 transaction\n- `sap_read_jobs` — Query background job information from SAP's SM37 transaction\n- `sap_run_program` — Execute an ABAP report program (SUBMIT) and return its list output as text lines\n- `sap_run_transaction` — Run the ABAP report behind a report transaction code, optionally with a selection-screen variant, and return its list output\n- `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…\n- `sap_read_user_locks` — Query user lock status from USR02 table\n- `sap_diagnose_message` — Diagnose a SAP error/warning/info message end-to-end\n- `sap_lookup_t100` — Look up a specific SAP T100 message by message class and number\n- `sap_lookup_error` — Analyze a SAP error message using all available external knowledge sources\n\n**Audit & compliance**\n\n- `sap_read_change_docs` — Query change documents from CDHDR/CDPOS tables\n- `sap_read_change_docs_v2` — Optimized change document query using function modules\n- `sap_discover_change_object` — Find the change document OBJECTCLAS for a table by querying TCDOB\n- `sap_scan_security_notes` — Discover ABAP Security/HotNews notes for a SAP patch-day month and rank them by relevancy to this system\n- `sap_check_notes_relevancy` — Check relevancy of one or more SAP Note numbers against this system (component/SP levels, download state, implementation readiness)\n\n**Translation**\n\n- `sap_read_translations` — Reads translatable texts from a SAP object in source and optionally target language\n- `sap_write_translations` — Writes translated texts back to a SAP object\n- `sap_translate` — Composite tool: reads translatable texts from a SAP object, translates them using AI, and optionally writes them back\n\n**Knowledge**\n\n- `sap_search_knowledge` — Search SAP documentation and community for information on any SAP topic\n\nThe 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:\n\n```json\n\"env\": { \"ABAPILOT_TOOLS\": \"sap_read_table_data,sap_read_code,sap_syntax_check\" }\n```\n\nThe 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.\n\n## Security model\n\n- Every call runs under the SAP user's own authorizations (S_TABU_DIS, S_DEVELOP, …) — enforced, not reimplemented\n- Exposure limited to the `/ABAPILOT/CONFIG` whitelist table; anything not whitelisted is unreachable\n- Full audit trail in `/ABAPILOT/AUDIT` (user, timestamp, parameters)\n- Write endpoints (`sap_write_code`, `sap_patch_code`, `sap_write_translations`, …) ship switched off; a\n  customer administrator activates them per endpoint in the registry\n\n## Getting access\n\nABAPilot is a commercial product by [Crimson Consulting SL](https://crimsonconsultingsl.com) (Valencia, Spain). The npm connector is free (MIT); the in-system backend is licensed.\n\n**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.\n\n## Why not SAP's ABAP MCP Server?\n\nDifferent 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](https://crimsonconsultingsl.com/abapilot-vs-sap-abap-mcp-server/).\n",
  "bytes": 9430,
  "sha": "b244e3b4a1bd372356ac73e07b25a87062c386417c19a77adf35c9049c4be90b",
  "repo_slug": "nicohern/abapilot-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_nicohern_abapilot_mcp_72b3d186/readme"
}