logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

mcp-abap-interface-bridge

Facilitates communication with SAP ABAP backend environments leveraging the Model Context Protocol (MCP). This utility server enables external tooling to securely query critical development artifacts, such as source code listings and Data Dictionary schema definitions, acting as a crucial intermediary layer.

Author

mcp-abap-interface-bridge logo

mario-andreschak

MIT License

Quick Info

GitHub GitHub Stars 33
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

sapabapapissap abapabap systemsabap environments

mcp-abap-interface-bridge: Your Conduit to ABAP Development Artifacts (ADT)

smithery badge

This repository furnishes a dedicated server component enabling interaction with SAP ABAP systems utilizing the Model Context Protocol (MCP). Envision this as a necessary intermediary, permitting advanced tooling, such as the Cline extension within VS Code, to interrogate your ABAP landscape and extract metadata like program source, table definitions, and related development entities. It essentially offers remote operational oversight for your ABAP workspace!

ABAP ADT MCP server

This introductory guide is structured sequentially for newcomers, detailing every necessary action:

  1. Prerequisites Check: Essential requirements before initiation.
  2. Acquisition and Configuration: Setting up the environment and software.
  3. Server Initialization: Launching the operational service under various modalities.
  4. Integration with Cline: Establishing connectivity to the Cline VS Code utility.
  5. Diagnostic Procedures: Addressing typical failures and resolution pathways.
  6. Exposed Capabilities: A catalog of callable service functions.

1. Prerequisites Check

Before proceeding, ensure the following components are readily available:

  • An Active SAP ABAP Instance: This server requires connectivity to a live ABAP system, demanding:

    • The system's accessible endpoint URI (e.g., https://my-sap-system.com:8000).
    • Valid authentication credentials (user ID and secret).
    • The designated SAP client identifier (e.g., 100).
    • Confirmation that the ABAP system permits ADT (ABAP Development Tools) connectivity. Typically, this necessitates activation of specific services within the SICF transaction code. Consult your system basis administrator. Specifically, the following URI paths must be operational:
      • /sap/bc/adt
    • For utilizing the GetTableContents capability, the deployment of a custom web service endpoint, /z_mcp_abap_adt/z_tablecontent, is mandatory. Reference this guide for implementation details: here
  • Version Control System (Git or GitHub Desktop): Required for downloading the source repository.

    • Git: The command-line interface. Acquire Git Here. Select the appropriate build for your OS (Windows, macOS, or Linux) and follow the installation prompts.
    • GitHub Desktop: A graphical interface alternative, often simpler for initial setups! Acquire GitHub Desktop Here. Install following the provided instructions.
  • Node.js Runtime and npm Package Manager: Node.js executes JavaScript outside browser contexts. npm manages project dependencies (code libraries).

    • Download Node.js Here. Crucially, select the LTS (Long Term Support) distribution. This version prioritizes stability. Execute the installation wizard for your operating system, ensuring npm is included (usually default).
    • Verification Step: After installation, open a new command line interface (CMD on Windows, Terminal otherwise) and execute: bash node -v npm -v

      Version numbers should display for both. If an error occurs, Node.js installation may be flawed or its location omitted from the system PATH (Consult Diagnostics).

2. Acquisition and Configuration

We now proceed to obtain and prepare the project assets:

Installation via Smithery

To automatically deploy the MCP ABAP Development Tools Server for Cline via Smithery:

bash npx -y @smithery/cli install @mario-andreschak/mcp-abap-adt --client cline

Manual Acquisition

  1. Repository Cloning:

    • Using Git (CLI method):

      1. Launch your command prompt or terminal.
      2. Navigate to your desired storage location (e.g., Desktop): bash cd Desktop

      3. Duplicate the repository contents: bash git clone https://github.com/mario-andreschak/mcp-abap-adt

      4. Change directory into the newly created project folder: bash cd mcp-abap-adt

    • Using GitHub Desktop:

      1. Launch GitHub Desktop.
      2. Select "File" -> "Clone Repository...".
      3. In the "URL" tab, paste the repository URI.
      4. Specify a local path for storage on your machine.
      5. Click "Clone".
  2. Dependency Fetching: This step retrieves all required external libraries. bash npm install

    Allow several minutes for completion.

  3. Project Compilation: This transforms the source code into an executable format. bash npm run build

  4. Creation of the Configuration File (.env): This file safeguards confidential system access details. Security is paramount; this file must remain protected.

    1. In the root directory, fabricate a new file named .env (with no file extension).
    2. Edit this .env file using a text editor (like Notepad or VS Code).
    3. Input the subsequent configuration lines, substituting the bracketed text with your actual SAP parameters: Note: If your secret contains the '#' symbol, enclose the entire password string within quotation marks!

      SAP_URL=https://your-sap-system.com:8000 # URI of your SAP instance SAP_USERNAME=your_username # SAP User Identifier SAP_PASSWORD=your_password # SAP Secret SAP_CLIENT=100 # SAP Client Identifier

      Critical Warning: Do not share the .env file, and absolutely ensure it is excluded from any version control submission (e.g., .gitignore).

3. Server Initialization

Generally, direct standalone execution of this server is uncommon, as its primary purpose is to interface with an MCP client such as Cline or Claude Desktop. However, manual activation is possible via two primary operational modes:

  • Isolated Mode: Executes the server directly, logging activity to the terminal. It waits passively for client attachments, which may render it functionally inert unless used purely for initial connectivity verification.
  • Debugging/Development Mode: Initiates the server alongside the integrated MCP Inspector interface. Opening the specified URL in a web browser allows for interactive API testing.

3.1 Isolated Mode

To activate the server in its standalone configuration, execute the following command within the root directory's terminal:

bash npm run start

Activity messages confirming the server is active and listening for MCP connections will appear. Press Ctrl+C to terminate the process.

3.2 Debugging/Development Mode (With Inspector)

This mode is invaluable for diagnostic work.

  1. Launch in Debug Mode: bash npm run dev

    The output will include a notification similar to: 🔍 MCP Inspector is up and running at http://localhost:5173 🚀. This address is your entry point into the browser-based inspector.

4. Integration with Cline

Cline is a specialized VS Code extension utilizing MCP servers for enhanced programming language services. Steps to link this ABAP interface bridge:

  1. Cline Installation: Install the "Cline" extension within VS Code if it is not already present.

  2. Accessing Cline Configuration:

    • Open VS Code settings (File -> Preferences -> Settings, or use Ctrl+,).
    • Search for "Cline MCP Settings".
    • Select "Edit in settings.json". This opens the configuration file, typically located in a user-specific global storage path (e.g., C:\Users\username\AppData\Roaming\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json).
  3. Server Configuration Entry: Insert a new entry into the servers array within your configuration file:

    { "mcpServers": { "mcp-abap-adt": { "command": "node", "args": [ "C:/PATH_TO/mcp-abap-adt/dist/index.js" ], "disabled": true, "autoApprove": [] } // ... other server configurations ... } }

  4. Connection Validation:

    • Cline should attempt automatic linkage. Verify the server's presence in the "MCP Servers" pane (accessible via controls within the Cline extension interface).
    • Instruct Cline to retrieve a snippet of source code; it should log an attempt to employ the designated MCP tooling.

5. Diagnostic Procedures

  • node -v or npm -v yields an error:
    • Confirm Node.js installation integrity. Consider re-installation.
    • Verify that the Node.js installation path is correctly registered in your system's PATH environment variable. (On Windows, use the System Properties dialog to adjust environment variables).
  • npm install terminates unsuccessfully:
    • Check active network connectivity.
    • Attempt removal of the node_modules folder, followed by re-running npm install.
    • If operating behind a corporate proxy, npm configuration adjustments may be necessary (search for "npm proxy settings").
  • Cline fails to establish a session with the server:
    • Scrutinize the path definition in cline_mcp_settings.json. It must be the absolute file system path, utilizing double backslashes on Windows systems.
    • Confirm server activity via npm run start.
    • Restart VS Code.
    • Alternatively, for detailed inspection:
      • Navigate to the mcp-abap-adt root directory in File Explorer. Shift+Right-Click and choose "Open PowerShell window here" (or navigate manually using cd C:/PATH_TO/mcp-abap-adt/).
      • Execute npm install, followed by npm run build.
      • Execute: npx @modelcontextprotocol/inspector node dist/index.js
      • Access the printed URL in your browser. Click "connect" on the navigation panel.
      • Select "Tools" at the top, then "List Tools".
      • Select GetProgram, inputting a known Report name like SAPMV45A as the parameter value.
      • Analyze the resulting output for functional confirmation.
  • Errors during SAP Communication:
    • Re-confirm credentials within the .env file.
    • Verify the SAP instance is operational and network-accessible.
    • Ensure the user account possesses the required authorizations for ADT service consumption.
    • Confirm necessary ADT endpoints are active in SICF.
    • If facing SSL/TLS certificate validation issues related to self-signed or misconfigured SAP HTTP services, set the environment variable TLS_REJECT_UNAUTHORIZED as previously outlined.

6. Exposed Capabilities

This service exposes the following functions, consumable via Cline or any compliant MCP client:

Tool Identifier Function Description Required Inputs Example Cline Invocation
GetProgram Fetches the source textual content of an ABAP Report. program_name (Textual identifier) @tool GetProgram program_name=ZMY_PROGRAM
GetClass Extracts the source code for a specified ABAP Class. class_name (Textual identifier) @tool GetClass class_name=ZCL_MY_CLASS
GetFunctionGroup Retrieves the source content for an ABAP Function Group container. function_group (Textual identifier) @tool GetFunctionGroup function_group=ZMY_FUNCTION_GROUP
GetFunction Extracts the source code for an individual ABAP Function Module. function_name (Textual), function_group (Textual) @tool GetFunction function_name=ZMY_FUNCTION function_group=ZFG
GetStructure Queries and returns the definition of a DDIC Structure. structure_name (Textual identifier) @tool GetStructure structure_name=ZMY_STRUCT
GetTable Retrieves the metadata schema for an ABAP Database Table. table_name (Textual identifier) @tool GetTable table_name=ZMY_TABLE
GetTableContents Fetches data records from an ABAP table. table_name (Textual), max_rows (Numeric, defaults to 100) @tool GetTableContents table_name=ZMY_TABLE max_rows=50
GetPackage Extracts metadata pertaining to an ABAP Software Component Package. package_name (Textual identifier) @tool GetPackage package_name=ZMY_PACKAGE
GetTypeInfo Retrieves detailed information regarding a specific ABAP data type definition. type_name (Textual identifier) @tool GetTypeInfo type_name=ZMY_TYPE
GetInclude Extracts the source text content embedded within an ABAP Include structure. include_name (Textual identifier) @tool GetInclude include_name=ZMY_INCLUDE
SearchObject Performs a broad search across development objects using wildcard queries. query (Textual pattern), maxResults (Numeric, defaults to 100) @tool SearchObject query=ZMY* maxResults=20
GetInterface Extracts the source code definition for an ABAP Interface. interface_name (Textual identifier) @tool GetInterface interface_name=ZIF_MY_INTERFACE
GetTransaction Retrieves descriptive details associated with a specified ABAP Transaction Code. transaction_name (Textual identifier) @tool GetTransaction transaction_name=ZMY_TRANSACTION

See Also

`