Skip to main content
Glama

mcp-abap-adt: Your Gateway to ABAP Development Tools (ADT)

This project provides a server that allows you to interact with SAP ABAP systems using the Model Context Protocol (MCP). Think of it as a bridge that lets tools like FLUJO, Claude or Cline (a VS Code extension) talk to your ABAP system and retrieve information like source code, table structures, and more. It's like having a remote control for your ABAP development environment!

The server is published on npm as mcp-abap-adt and listed in the MCP Registry as io.github.mario-andreschak/mcp-abap-adt, so most MCP clients can install it with a single command.

This guide is designed for beginners, so we'll walk through everything step-by-step. We'll cover:

  1. Prerequisites: What you need before you start.

  2. Installation and Setup: Getting everything up and running.

  3. Running the Server: Starting the server in different modes.

  4. Integrating with FLUJO: The easiest way — one-click install from the Spotlight/Marketplace.

  5. Integrating with Cline: Connecting this server to the Cline VS Code extension.

  6. Integrating with Claude Desktop: Adding the server to the Claude Desktop app.

  7. Integrating with Claude Code: Adding the server via .mcp.json or the CLI.

  8. Troubleshooting: Common problems and solutions.

  9. Available Tools: A list of the commands you can use.

1. Prerequisites

Before you begin, you'll need a few things:

  • An SAP ABAP System: This server connects to an existing ABAP system. You'll need:

    • The system's URL (e.g., https://my-sap-system.com:8000)

    • A valid username and password for that system.

    • The SAP client number (e.g., 100).

    • Ensure that your SAP system allows connections via ADT (ABAP Development Tools). This usually involves making sure the necessary services are activated in transaction SICF. Your basis administrator can help with this. Specifically, you will need the following services to be active:

      • /sap/bc/adt

  • Node.js and npm: Node.js is a JavaScript runtime that lets you run JavaScript code outside of a web browser. npm (Node Package Manager) is included with Node.js and is used to install packages (libraries of code).

    • Download Node.js. Choose the LTS (Long Term Support) version. This is the most stable version. Follow the installation instructions for your operating system. Make sure to include npm in the installation (it's usually included by default).

    • Verify Installation: After installing Node.js, open a new terminal (command prompt on Windows, Terminal on macOS/Linux) and type:

      node -v
      npm -v

      You should see version numbers for both Node.js and npm. If you see an error, Node.js might not be installed correctly, or it might not be in your system's PATH. (See Troubleshooting below).

  • Git (or GitHub Desktop) (optional in most cases): We'll use Git to download the project code. You have two options:

    • Git: The command-line tool. Download Git. Choose the version for your operating system (Windows, macOS, Linux). Follow the installation instructions.

    • GitHub Desktop: A graphical user interface for Git. Easier for beginners! Download GitHub Desktop. Follow the installation instructions.

Related MCP server: mcp-abap-adt

2. Installation and Setup

Now, let's get the project code and set it up:

See Integrating with FLUJO

Install from npm

The server is published on npm, so you don't need to clone or build anything. Most MCP clients can run it directly with npx:

npx -y mcp-abap-adt

You'll typically configure this inside your MCP client rather than run it by hand — point the client at the command npx with args ["-y", "mcp-abap-adt"] and supply your SAP credentials as environment variables (SAP_URL, SAP_USERNAME, SAP_PASSWORD, SAP_CLIENT; optionally SAP_LANGUAGE, TLS_REJECT_UNAUTHORIZED). See the integration sections below for and Cline.

To install it globally instead:

npm install -g mcp-abap-adt

Manual Installation (from source)

  1. Clone the Repository:

    • Using Git (command line):

      1. Open a terminal (command prompt or Terminal).

      2. Navigate to the directory where you want to store the project. For example, to put it on your Desktop:

        cd Desktop
      3. Clone the repository:

        git clone https://github.com/mario-andreschak/mcp-abap-adt
      4. Change into the project directory:

        cd mcp-abap-adt  # Or whatever the folder name is
    • Using GitHub Desktop:

      1. Open GitHub Desktop.

      2. Click "File" -> "Clone Repository...".

      3. In the "URL" tab, paste the repository URL.

      4. Choose a local path (where you want to save the project on your computer).

      5. Click "Clone".

  2. Install Dependencies: This downloads all the necessary libraries the project needs. In the terminal, inside the root directory, run:

    npm install

    This might take a few minutes.

  3. Build the Project: This compiles the code into an executable format.

    npm run build
  4. Create a .env file: This file stores sensitive information like your SAP credentials. It's very important to keep this file secure.

    1. In the root directory, create a new file named .env (no extension).

    2. Open the .env file in a text editor (like Notepad, VS Code, etc.).

    3. Add the following lines, replacing the placeholders with your actual SAP system information: Important: If your password contains a "#" character, make sure to enclose your password in quotes!

      SAP_URL=https://your-sap-system.com:8000  # Your SAP system URL
      SAP_USERNAME=your_username              # Your SAP username
      SAP_PASSWORD=your_password              # Your SAP password
      SAP_CLIENT=100                         # Your SAP client

      Important: Never share your .env file with anyone, and never commit it to a Git repository!

3. Running the Server

To be fair, you usually dont usually "run" this server on it's own. It is supposed to be integrated into an MCP Client like Claude, FLUJO, Cline, etc. But you can manually run the server in two main ways:

  • Standalone Mode: This runs the server directly, and it will output messages to the terminal. The server will start and wait for client connections, so potentially rendering it useless except to see if it starts.

  • Development/Debug Mode: This runs the server with the MCP Inspector. You can open the URL that it outputs in your browser and start playing around.

3.1 Standalone Mode

To run the server in standalone mode, use the following command in the terminal (from the root directory):

npm run start

You should see messages in the terminal indicating that the server is running. It will listen for connections from MCP clients. The server will keep running until you stop it (usually with Ctrl+C).

3.2 Development/Debug Mode (with Inspector)

This mode is useful for debugging.

  1. Start the server in debug mode:

    npm run dev

    This will start the server and output a message like: 🔍 MCP Inspector is up and running at http://localhost:5173 🚀. This is the URL you'll use to open the MCP inspector in your Browser.

4. Integrating with FLUJO

FLUJO is the easiest way to use this server — no cloning, building, or editing JSON config. mcp-abap-adt is a curated Spotlight server, so it installs with a single click:

  1. In FLUJO, navigate to MCP.

  2. Click Add Server.

  3. On the Spotlight tab, click mcp-abap-adt (or switch to the Marketplace tab and find it there).

  4. FLUJO fetches the package automatically and opens the Local Server tab. Enter your SAP URL, Username, and Password (and client), then click Save.

That's it — FLUJO downloads and runs the npm package for you.

Streamable HTTP transport (via FLUJO)

mcp-abap-adt runs over stdio. If you need to reach it over streamable HTTP — for example from another app on your machine or a client that only speaks HTTP — let FLUJO re-host it: install the server in FLUJO as above, then toggle "Expose to external apps" on the server. FLUJO's built-in mcp-proxy then serves it over HTTP at http://localhost:4200/mcp-proxy/mcp-abap-adt, and any HTTP-capable MCP client can connect with a config like:

{
  "mcpServers": {
    "mcp-abap-adt": {
      "type": "http",
      "url": "http://localhost:4200/mcp-proxy/mcp-abap-adt"
    }
  }
}

FLUJO keeps your SAP credentials with the installed server, so the HTTP config itself carries none.

5. Integrating with Cline

Cline is a VS Code extension that uses MCP servers to provide language support. Here's how to connect this ABAP server to Cline:

  1. Install Cline: If you haven't already, install the "Cline" extension in VS Code.

  2. Open Cline Settings:

    • Open the VS Code settings (File -> Preferences -> Settings, or Ctrl+,).

    • Search for "Cline MCP Settings".

    • Click "Edit in settings.json". This will open the cline_mcp_settings.json file. The full path is usually something like: C:\Users\username\AppData\Roaming\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json (replace username with your Windows username).

  3. Add the Server Configuration: You'll need to add an entry to the mcpServers object in the cline_mcp_settings.json file. The recommended way is to run the published npm package via npx and pass your SAP credentials as environment variables — no local build required:

    {
      "mcpServers": {
        "mcp-abap-adt": {
          "command": "npx",
          "args": ["-y", "mcp-abap-adt"],
          "env": {
            "SAP_URL": "https://your-sap-system.com:8000",
            "SAP_USERNAME": "your_username",
            "SAP_PASSWORD": "your_password",
            "SAP_CLIENT": "100"
          },
          "disabled": false,
          "autoApprove": []
        }
        // ... other server configurations ...
      }
    }

    If you installed from source instead (see Manual Installation), point command at node with an absolute path to the build output, e.g. "args": ["C:/PATH_TO/mcp-abap-adt/dist/index.js"], and configure credentials via the .env file.

  4. Test the Connection:

    • Cline should automatically connect to the server. You will see the Server appear in the "MCP Servers" Panel (in the Cline extension, you'll find different buttons on the top.)

    • Ask Cline to get the Sourcecode of a program and it should mention the MCP Server and should try to use the corresponding tools

6. Integrating with Claude Desktop

Claude Desktop can run this server directly via the published npm package.

  1. Open Claude Desktop → Settings → Developer → Edit Config. This opens claude_desktop_config.json. The file lives at:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  2. Add an mcp-abap-adt entry under mcpServers, filling in your SAP credentials:

    {
      "mcpServers": {
        "mcp-abap-adt": {
          "command": "npx",
          "args": ["-y", "mcp-abap-adt"],
          "env": {
            "SAP_URL": "https://your-sap-system.com:8000",
            "SAP_USERNAME": "your_username",
            "SAP_PASSWORD": "your_password",
            "SAP_CLIENT": "100"
          }
        }
      }
    }
  3. Save the file and restart Claude Desktop. The ABAP tools appear under the tools (🔨) menu.

Windows tip: if npx isn't found, set "command": "npx.cmd", or use the full path to node with the absolute path to dist/index.js from a source install.

7. Integrating with Claude Code

Claude Code reads MCP servers from a .mcp.json file in your project root (shared with your team) or from user/project scope via the CLI.

Option A — .mcp.json in your project root:

{
  "mcpServers": {
    "mcp-abap-adt": {
      "command": "npx",
      "args": ["-y", "mcp-abap-adt"],
      "env": {
        "SAP_URL": "https://your-sap-system.com:8000",
        "SAP_USERNAME": "your_username",
        "SAP_PASSWORD": "your_password",
        "SAP_CLIENT": "100"
      }
    }
  }
}

Because this file is committed to your repo, avoid putting real passwords in it — either use placeholder values that each developer fills in locally, or reference environment variables (Claude Code expands ${VAR} in .mcp.json), e.g. "SAP_PASSWORD": "${SAP_PASSWORD}".

Option B — add it from the CLI:

claude mcp add mcp-abap-adt \
  --env SAP_URL=https://your-sap-system.com:8000 \
  --env SAP_USERNAME=your_username \
  --env SAP_PASSWORD=your_password \
  --env SAP_CLIENT=100 \
  -- npx -y mcp-abap-adt

Add --scope project to write it to the shared .mcp.json, or --scope user to make it available across all your projects. Verify with claude mcp list.

8. Large-response pagination

All text-returning tools support the optional startLine and maxLines arguments: GetProgram, GetClass, GetFunctionGroup, GetFunction, GetStructure, GetTable, GetTableContents, GetPackage, GetTypeInfo, GetInclude, SearchObject, GetTransaction, GetCDSView, GetInterface, GetBehaviorDefinition, GetServiceDefinition, RunAtc, CheckReleaseState, FindCleanCoreViolations, RemediateObject, CreateCDSExtension, and CreateCDSObject.

  • startLine is a 1-based integer. It defaults to 1.

  • maxLines is an integer from 1 through 100,000. When omitted, the tool requests all remaining lines.

  • A small response with neither paging argument keeps the existing raw content[0].text exactly.

  • Any explicit paging request returns a JSON envelope in content[0].text.

  • An unpaged result that exceeds the conservative 40,000-byte UTF-8 budget is automatically reduced and returned in the same envelope with autoPaged: true and capped: true.

  • A request beyond EOF returns content: "", returnedLines: 0, and hasMore: false.

The envelope has this shape:

{
  "content": "...returned source lines...",
  "totalLines": 7745,
  "startLine": 1,
  "returnedLines": 1200,
  "hasMore": true,
  "autoPaged": true,
  "capped": true
}

content is the selected text, totalLines describes the full serialized result, and returnedLines counts source lines consumed. Continue ordinary paging with startLine + returnedLines while hasMore is true. autoPaged appears only when the caller did not request paging. capped means the requested/default range was reduced to meet the final content[0].text UTF-8 byte budget.

If one source line alone exceeds the budget, the envelope also contains truncatedMidLine: true. The returned prefix is UTF-8 safe and does not split a Unicode surrogate pair, but the omitted suffix cannot be recovered with line-based paging. That line counts as consumed; hasMore only indicates whether later source lines exist.

Clients that previously treated every result as raw source should parse content[0].text as JSON whenever they explicitly request paging or when automatic capping returns an envelope. Small unpaged responses remain backward compatible.

The default npm test run is credential-free and skips the live SAP integration suite. Maintainers can opt in by setting RUN_SAP_INTEGRATION=1 before running npm test -- src/index.test.ts.

9. Troubleshooting

  • node -v or npm -v gives an error:

    • Make sure Node.js is installed correctly. First try closing the Terminal/Powershell/cmd.exe in which you were executing the command. Try restarting your computer. Try reinstalling it.

    • Ensure that the Node.js installation directory is in your system's PATH environment variable. On Windows, you can edit environment variables through the System Properties (search for "environment variables" in the Start Menu).

  • npm install fails:

    • Make sure you have an internet connection.

    • Try deleting the node_modules folder and running npm install again.

    • If you're behind a proxy, you might need to configure npm to use the proxy. Search online for "npm proxy settings".

  • Cline doesn't connect to the server:

    • Double-check the settings in cline_mcp_settings.json. It must be the correct, absolute path to the root-server directory, and use double backslashes on Windows.

    • Make sure the server is running (use npm run start to check).

    • Restart VS Code.

    • Alternatively:

    • Navigate to the root folder of mcp-abap-adt in your Explorer, Shift+Right-Click and select "Open Powershell here". (Or open a Powershell and navigate to the folder using cd C:/PATH_TO/mcp-abap-adt/

    • Run "npm install"

    • Run "npm run build"

    • Run "npx @modelcontextprotocol/inspector node dist/index.js"

    • Open your browser at the URL it outputs. Click "connect" on the left side.

    • Click "Tools" on the top, then click "List Tools"

    • Click GetProgram and enter "SAPMV45A" or any other Report name as Program Name on the right

    • Test and see what the output is

  • SAP connection errors:

    • Verify your SAP credentials in the .env file.

    • Ensure that the SAP system is running and accessible from your network.

    • Make sure that your SAP user has the necessary authorizations to access the ADT services.

    • Check that the required ADT services are activated in transaction SICF.

    • If you're using self-signed certificates or there is an issue with your SAP systems http config, make sure to set TLS_REJECT_UNAUTHORIZED as described above!

10. Available Tools

This server provides the following tools, which can be used through FLUJO, Cline, Claude Desktop, Claude Code, or any other MCP client. Every listed tool also accepts the shared optional startLine and maxLines pagination parameters described above:

Tool Name

Description

Input Parameters

Example Usage (in Cline)

GetProgram

Retrieve ABAP program source code.

program_name (string): Name of the ABAP program.

@tool GetProgram program_name=ZMY_PROGRAM

GetClass

Retrieve ABAP class source code.

class_name (string): Name of the ABAP class.

@tool GetClass class_name=ZCL_MY_CLASS

GetFunctionGroup

Retrieve ABAP Function Group source code.

function_group (string): Name of the function group

@tool GetFunctionGroup function_group=ZMY_FUNCTION_GROUP

GetFunction

Retrieve ABAP Function Module source code.

function_name (string), function_group (string)

@tool GetFunction function_name=ZMY_FUNCTION function_group=ZFG

GetStructure

Retrieve ABAP Structure.

structure_name (string): Name of the DDIC Structure.

@tool GetStructure structure_name=ZMY_STRUCT

GetTable

Retrieve ABAP table structure.

table_name (string): Name of the ABAP DB table.

@tool GetTable table_name=ZMY_TABLE

GetTableContents

Retrieve contents of an ABAP table.

table_name (string), max_rows (number, optional, default 100)

@tool GetTableContents table_name=ZMY_TABLE max_rows=50

GetCDSView

Retrieve CDS view (DDL source) source code.

cds_view_name (string): Name of the CDS view (DDL source name).

@tool GetCDSView cds_view_name=I_CURRENCY

GetPackage

Retrieve ABAP package details.

package_name (string): Name of the ABAP package.

@tool GetPackage package_name=ZMY_PACKAGE

GetTypeInfo

Retrieve ABAP type information.

type_name (string): Name of the ABAP type.

@tool GetTypeInfo type_name=ZMY_TYPE

GetInclude

Retrieve ABAP include source code

include_name (string): name of the ABAP include`

@tool GetInclude include_name=ZMY_INCLUDE

SearchObject

Search for ABAP objects using quick search.

query (string), maxResults (number, optional, default 100)

@tool SearchObject query=ZMY* maxResults=20

GetInterface

Retrieve ABAP interface source code.

interface_name (string): Name of the ABAP interface.

@tool GetInterface interface_name=ZIF_MY_INTERFACE

GetTransaction

Retrieve ABAP transaction details.

transaction_name (string): Name of the ABAP transaction.

@tool GetTransaction transaction_name=ZMY_TRANSACTION

GetBehaviorDefinition

Retrieve RAP Behavior Definition (BDEF) source. Requires ~NW 7.54 / S/4HANA.

behavior_definition_name (string): Name of the RAP Behavior Definition.

@tool GetBehaviorDefinition behavior_definition_name=ZMY_ENTITY

GetServiceDefinition

Retrieve RAP Service Definition (SRVD) source. Requires ~NW 7.54 / S/4HANA.

service_definition_name (string): Name of the RAP Service Definition.

@tool GetServiceDefinition service_definition_name=ZMY_SERVICE

RunAtc

Run ABAP Test Cockpit (ATC) checks and return findings.

object_name (string), object_type (string, e.g. PROG/P, CLAS/OC, DDLS/DF), maximum_verdicts (number, optional, default 100), check_variant (string, optional, e.g. S4HANA_READINESS_2023)

@tool RunAtc object_name=ZMY_PROG object_type=PROG/P check_variant=S4HANA_READINESS_2023

CheckReleaseState

Check the SAP release classification (Level A/B/C/D) of a CDS view. Returns API state, successor, base view, and extensibility.

cds_view_name (string)

@tool CheckReleaseState cds_view_name=I_GLAccount

FindCleanCoreViolations

Scan Z/Y custom objects for usages of unreleased (C) or deprecated (D) CDS views. Returns prioritised violations (P1–P3).

max_objects (number, default 50), start_index (number, default 0), object_types (array, default all), package_name (string, optional), search_query (string, default Z*)

@tool FindCleanCoreViolations package_name=ZADR_ABAP max_objects=20

RemediateObject

Replace a C/D CDS view reference in a Z object with the correct successor. Supports field name mapping. Always dry_run by default.

object_name, object_type, old_view_name, new_view_name (all string), field_mapping (object, optional), dry_run (boolean, default true)

@tool RemediateObject object_name=ZMY_PROG object_type=PROG/P old_view_name=I_OLD new_view_name=I_NEW dry_run=true

CreateCDSExtension

Create a CDS View Extension (extend view entity) to add missing fields to an existing SAP standard view. Always dry_run by default.

sap_view_name, extension_name (string), fields (array of {name, source_path, label?}), package_name (string, optional), dry_run (boolean, default true)

@tool CreateCDSExtension sap_view_name=I_GLAccount extension_name=ZI_GLACCOUNT_EXT ...

CreateCDSObject

Create a new Z wrapper CDS view with @Api.state: #RELEASED (Level A — clean core safe). Always dry_run by default.

view_name, base_source (string), fields (array of {name, alias?, is_key?, label?}), description (string, optional), package_name (string, optional), dry_run (boolean, default true)

@tool CreateCDSObject view_name=ZW_MYWRAPPER base_source=MYTABLE ...

Available Tools

23 tools
CheckReleaseStateA

Check the SAP release classification (Level A/B/C/D) of a CDS view. Returns the API state, official successor, base view, and extensibility information. Use this before remediating to understand what needs to change.

Inputs: cds_view_name (required), maxLines, startLine.

CreateCDSExtensionA

Create a CDS View Extension (extend view entity) to add missing fields to an existing SAP standard view. Use when a successor view is missing fields needed by the Z object. Always dry_run: true by default.

Inputs: fields (required), sap_view_name (required), extension_name (required), dry_run, +3 more.

CreateCDSObjectA

Create a new Z wrapper CDS view (Level A — clean core safe). Used for P4 cases where no SAP successor exists. Always dry_run: true by default — review the scaffold before creating.

Inputs: view_name (required), fields, dry_run, raw_ddl, +6 more.

FindCleanCoreViolationsA

Scan Z/Y custom objects system-wide for usages of unreleased (Level C) or deprecated (Level D) SAP CDS views. Returns a prioritised list of violations (P1-P4) with successor recommendations. Use max_objects and start_index to paginate large systems.

Inputs: maxLines, startLine, max_objects, start_index, +3 more.

GetBehaviorDefinitionA

Retrieve RAP Behavior Definition (BDEF) source code (requires ~NW 7.54 / S/4HANA). For large definitions, use startLine/maxLines to page through the source instead of retrieving it all at once.

Inputs: behavior_definition_name (required), maxLines, startLine.

GetCDSViewA

Retrieve CDS view (DDL source) source code. For large views, use startLine/maxLines to page through the source instead of retrieving it all at once.

Inputs: cds_view_name (required), maxLines, startLine.

GetClassA

Retrieve ABAP class source code. For large classes, use startLine/maxLines to page through the source instead of retrieving it all at once.

Inputs: class_name (required), maxLines, startLine.

GetFunctionA

Retrieve ABAP Function Module source code. For large function modules, use startLine/maxLines to page through the source instead of retrieving it all at once.

Inputs: function_name (required), function_group (required), maxLines, startLine.

GetFunctionGroupA

Retrieve ABAP Function Group source code. For large function groups, use startLine/maxLines to page through the source instead of retrieving it all at once.

Inputs: function_group (required), maxLines, startLine.

GetIncludeA

Retrieve ABAP Include Source Code. For large includes, use startLine/maxLines to page through the source instead of retrieving it all at once.

Inputs: include_name (required), maxLines, startLine.

GetInterfaceA

Retrieve ABAP interface source code. For large interfaces, use startLine/maxLines to page through the source instead of retrieving it all at once.

Inputs: interface_name (required), maxLines, startLine.

GetPackageA

Retrieve ABAP package details. Use startLine/maxLines to page large serialized package listings.

Inputs: package_name (required), maxLines, startLine.

GetProgramA

Retrieve ABAP program source code. For large programs, use startLine/maxLines to page through the source instead of retrieving it all at once.

Inputs: program_name (required), maxLines, startLine.

GetServiceDefinitionA

Retrieve RAP Service Definition (SRVD) source code (requires ~NW 7.54 / S/4HANA). For large definitions, use startLine/maxLines to page through the source instead of retrieving it all at once.

Inputs: service_definition_name (required), maxLines, startLine.

GetStructureA

Retrieve ABAP Structure. For large structures, use startLine/maxLines to page through the result instead of retrieving it all at once.

Inputs: structure_name (required), maxLines, startLine.

GetTableA

Retrieve ABAP table structure. For large tables, use startLine/maxLines to page through the result instead of retrieving it all at once.

Inputs: table_name (required), maxLines, startLine.

GetTableContentsA

Retrieve contents of an ABAP table. max_rows limits SAP rows; startLine/maxLines page the returned textual XML when its serialized size is still large.

Inputs: table_name (required), maxLines, max_rows, startLine.

GetTransactionA

Retrieve ABAP transaction details. For large results, use startLine/maxLines to page through it instead of retrieving it all at once.

Inputs: transaction_name (required), maxLines, startLine.

GetTypeInfoA

Retrieve ABAP type information. For large results, use startLine/maxLines to page through it instead of retrieving it all at once.

Inputs: type_name (required), maxLines, startLine.

ReleaseAsC1A

Formally register a Z/Y CDS wrapper view as C1-released in SAP's ARS_RUNTIME_API_STATE table. Used after CreateCDSObject in P4 flow so SAP's own ATC tools recognise the wrapper as released. Always dry_run: true by default.

Inputs: view_name (required), dry_run.

RemediateObjectA

Replace a C/D CDS view reference in a Z object with the correct successor. Supports field name mapping and produces a before/after diff. Always runs as dry_run: true by default — set dry_run: false to write and activate in SAP.

Inputs: object_name (required), object_type (required), new_view_name (required), old_view_name (required), +4 more.

RunAtcA

Run ABAP Test Cockpit (ATC) checks on an ABAP object and return findings with priority, check name, message, and source location.

Inputs: object_name (required), object_type (required), maxLines, startLine, +2 more.

SearchObjectB

Search for ABAP objects using quick search. maxResults limits matches; startLine/maxLines page the returned textual XML when its serialized size is still large.

Inputs: query (required), maxLines, startLine, maxResults.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 23 tools

    Disambiguation4/5

    Most tools are clearly separated by artifact type (class, program, interface, table, etc.), and the remediation/creation tools are distinct from retrieval. However, GetStructure, GetTable, and GetTypeInfo have overlapping territory around ABAP data types, so an agent could occasionally select the wrong getter.

    Naming Consistency5/5

    Tool names follow a consistent PascalCase verb-noun pattern, with Get* for retrieval and verbs like Run, Check, Find, Remediate, Create, and Release for actions. Even multi-word CDS tools follow the same convention.

    Tool Count3/5

    23 tools is on the heavy side, largely because there are 15 Get* retrieval variants for different ABAP artifact types. The count is not unreasonable for the domain, but it exceeds the 3-15 well-scoped range.

    Completeness4/5

    The set covers a coherent clean-core workflow: search, retrieve source, run ATC checks, find violations, remediate, create CDS wrappers/extensions, and release them. The main gaps are general-purpose create/update/delete operations for non-CDS ABAP objects, but those appear outside the server's intended focus.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      Not graded
      maintenance
      An MCP server that facilitates seamless interaction with SAP ABAP systems to manage development objects, transport requests, and source code. It provides a comprehensive suite of tools for performing syntax checks, object searches, and code modifications via the ADT API.
      100
      -