Phani Puttabakula - Jun 02, 2026

17 MCP Tools for ABAP: How ABAPer Turns Claude into Your SAP Pair-Programmer

The Model Context Protocol (MCP) is Anthropic’s open standard for connecting AI assistants to external data sources and tools. Instead of pasting code into a chat window and manually copying fixes back, MCP lets an AI assistant like Claude read objects directly from your SAP system, make changes, and activate them โ€” all within a single conversation.

ABAPer’s MCP server (abaper-mcp v0.9.0) exposes 17 tools and 7 pre-built prompts to any MCP-compatible AI assistant. This post explains the architecture, walks through each tool group, and shows practical workflows that eliminate hours of repetitive SAP work.


What Is MCP and Why Does It Matter for ABAP?

MCP defines a standard client-server protocol where an AI assistant (the MCP client) can discover and invoke capabilities exposed by an MCP server. The server declares its tools โ€” typed function signatures with descriptions โ€” and the client decides when to call them based on the conversation.

For ABAP development, this matters for a specific reason: ABAP code lives in a SAP system, not in a local file system. Traditional AI coding assistants work well when your code is in a Git repository they can read. SAP is different. You cannot git clone your ABAP system. You need a protocol-aware adapter.

abaper-mcp is that adapter. It bridges Claude (or any MCP client) to your SAP system’s ABAP repository via the SAP ADT REST API. When you ask Claude to “review my ZCL_FINANCE_POSTING class,” it does not need you to paste the source โ€” it reads it directly from SAP.


Architecture

The MCP server sits between the AI assistant and SAP. It does not communicate with SAP directly; instead, it proxies requests through abaper-ts, a TypeScript/Express REST proxy that handles SAP ADT session management, CSRF token negotiation, and response normalization.

flowchart LR
    subgraph AI["AI Assistant"]
        CLAUDE["Claude Desktop\n(MCP Client)"]
    end

    subgraph MCP["abaper-mcp v0.9.0"]
        SERVER["MCP Server\n17 tools + 7 prompts"]
        RESOURCES["Resources\nabap:// URI scheme"]
    end

    subgraph PROXY["abaper-ts v1.1.0"]
        EXPRESS["Express REST Proxy\n/api/v1/*"]
        SESSION["Session Manager\n(CSRF tokens)"]
    end

    subgraph SAP["SAP System"]
        ADT["SAP ADT REST API\n/sap/bc/adt/*"]
        REPO["ABAP Repository"]
        TRANSPORT["Transport Manager"]
    end

    CLAUDE <-->|MCP protocol\n(stdio)| SERVER
    SERVER <-->|REST calls\nJSON| EXPRESS
    SESSION <-->|manages| EXPRESS
    EXPRESS <-->|HTTP + XML\nbasic auth| ADT
    ADT <-->|reads/writes| REPO
    ADT <-->|creates/reads| TRANSPORT

The separation between abaper-mcp and abaper-ts keeps concerns clean: the MCP server handles protocol translation and tool dispatch, while abaper-ts handles the SAP-specific HTTP complexity. You can also call abaper-ts independently from other tools or scripts.


The 17 Tools

The tools fall into four groups. Each tool is described to the AI with its parameters and purpose, so Claude can decide autonomously which tools to chain together for a given task.

Object Tools (7)

These tools cover the full lifecycle of an ABAP repository object.

Tool What it does
get-object Read source code for any ABAP object by name and type
search-objects Query the repository by name pattern and object type
list-packages List packages, optionally scoped to a parent package
create-object Create a new ABAP object (program, class, interface, etc.) with initial source
update-object Write new source to an existing object
activate-object Activate an object to make changes effective in the system
test-connection Verify connectivity to the SAP system and report ADT version

These seven tools alone enable a complete write-activate loop from a conversation. Claude can read an object, propose changes, write them back, and activate โ€” without you touching SAP GUI or ADT.

Development Tools (4)

Tool What it does
syntax-check Run a syntax check on source code and return diagnostics
format-code Apply SAP’s Pretty Printer formatting to ABAP source
run-unit-tests Execute ABAP unit tests for an object and return results
analyze-s4-remediation Scan source for S/4HANA compatibility issues and suggest fixes

analyze-s4-remediation deserves special attention. S/4HANA migration is one of the most labor-intensive ABAP projects any SAP shop undertakes. This tool encodes S/4HANA compatibility rules โ€” deprecated statements, obsolete SELECT patterns, removed function modules โ€” and applies them to ABAP source, returning structured findings with suggested replacements.

Transport Tools (3)

Tool What it does
transport-info Get metadata for a transport request by ID
create-transport Create a new workbench or customizing transport
create-and-activate Create an object, assign it to a transport, and activate in one step

create-and-activate is the tool you’ll use most in development workflows. It composes three underlying operations โ€” create, transport assignment, activation โ€” into a single idempotent call that Claude can invoke reliably.

S/4HANA Workflow Tools (3)

Tool What it does
s4-batch-analyze Run S/4HANA compatibility analysis across an entire package
s4-workflow-status Check the status of a long-running S/4 analysis job
s4-workflow-result Retrieve the completed results of an S/4 analysis job

s4-batch-analyze is designed for package-level migration assessment. Because analyzing hundreds of objects takes time, it starts an async job and returns a workflow ID. You poll with s4-workflow-status and retrieve with s4-workflow-result. In a Claude conversation, you can ask Claude to start the analysis, wait for completion, and summarize the results โ€” all in one conversation turn.


The 7 AI Prompts

Beyond tools (which are invoked programmatically), abaper-mcp also exposes seven pre-built prompts. Prompts are pre-configured instructions that tell Claude how to approach a specific type of task. They appear in Claude Desktop as slash commands or template options.

Prompt Purpose
analyze-abap Deep structural analysis of an ABAP object: design patterns, dependencies, complexity
review-abap Code review focused on correctness, style, and best practices
optimize-abap Performance optimization: SELECT tuning, loop refactoring, buffering
document-abap Generate comprehensive inline documentation and method-level comments
test-abap Generate ABAP unit test classes for existing code
refactor-abap Propose refactoring to modern ABAP syntax and patterns
explain-abap Plain-language explanation of what a piece of ABAP code does

The prompts instruct Claude to use the appropriate tools automatically. For example, the review-abap prompt instructs Claude to call get-object to fetch the source, syntax-check to verify it, and then provide a structured review. You trigger the workflow by selecting the prompt โ€” Claude handles the tool calls.


MCP Resources: The abap:// URI Scheme

abaper-mcp also exposes ABAP repository objects as MCP resources, addressable via a URI scheme:

abap://program/ZMYREPORT
abap://class/ZCL_FINANCE_POSTING
abap://interface/ZIF_PAYMENT_PROCESSOR
abap://functiongroup/ZMATERIAL_FG

MCP resources allow Claude to access object source as structured context, separate from tool calls. This means Claude can hold multiple ABAP objects in its context simultaneously and reason across them โ€” for example, comparing an interface definition against its implementing class, or checking whether a program’s SELECT statements are compatible with the fields actually defined in a table.


Setup with Claude Desktop

Prerequisites

  1. A running abaper-ts instance connected to your SAP system.
  2. abaper-mcp installed (check the abaper-mcp releases page for the latest binary).
  3. Claude Desktop installed.

Configuration

Open Claude Desktop’s configuration file at ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) and add the abaper-mcp server:

{
  "mcpServers": {
    "abaper": {
      "command": "/usr/local/bin/abaper-mcp",
      "args": ["--stdio"],
      "env": {
        "ABAPER_TS_URL": "http://localhost:3000",
        "ABAPER_SAP_HOST": "https://dev.sap.company.com",
        "ABAPER_SAP_CLIENT": "100",
        "ABAPER_SAP_USER": "DEVELOPER",
        "ABAPER_SAP_PASS": "secret"
      }
    }
  }
}

Restart Claude Desktop. You should see the ABAPer tools listed in the tool panel. Test connectivity by asking Claude:

Test the SAP connection using the test-connection tool.

Claude will invoke test-connection and report the system status.


Practical Workflows

Workflow 1: AI-Assisted Code Review

This is the most common workflow. You want a code review of an existing ABAP class before releasing a transport.

Conversation with Claude:

You: Review ZCL_FINANCE_POSTING for code quality and potential issues.

Claude: I’ll fetch the class and review it. (calls get-object with name=ZCL_FINANCE_POSTING, type=CLAS) (calls syntax-check on the retrieved source)

Here’s my review of ZCL_FINANCE_POSTING:

Issues found:

  1. Method post_document at line 47: SELECT * fetches all fields from BKPF but only bukrs and belnr are used. Specify the field list.
  2. Line 89: CATCH cx_root catches all exceptions โ€” this will suppress unexpected errors silently. Catch specific exception classes.
  3. Line 112: Hard-coded company code '1000' should be a parameter or configuration entry.

Suggestions:

The entire review happens without you leaving the Claude conversation or opening SAP GUI.

Workflow 2: S/4HANA Compatibility Analysis

Your organization is planning a S/4HANA migration and needs to assess the custom code in package ZFINANCE.

You: Analyze package ZFINANCE for S/4HANA compatibility issues.

Claude: I’ll start a batch analysis of the ZFINANCE package. (calls s4-batch-analyze with package=ZFINANCE)

Analysis started, workflow ID: WF-20260605-001. Checking status… (calls s4-workflow-status with id=WF-20260605-001) (waits, polls status) (calls s4-workflow-result when complete)

Analysis complete. ZFINANCE package contains 47 objects. Findings:

Severity Count Category
Error 12 Removed APIs
Warning 31 Deprecated syntax
Info 8 Performance recommendations

Critical items requiring remediation before S/4HANA migration:

  • 5 programs use CALL FUNCTION 'DYNPRO_*' โ€” these function modules do not exist in S/4HANA
  • 3 classes reference CL_GUI_ALV_GRID patterns incompatible with Fiori architecture
  • 4 reports use SELECT ... BYPASSING BUFFER โ€” removed in S/4HANA …

This workflow compresses what would be days of manual code analysis into a single conversation.

Workflow 3: Test Generation

You have a utility class with no unit tests. You want Claude to generate them.

You: Generate unit tests for ZCL_MATERIAL_UTILS.

Claude: I’ll read the class first, then generate tests. (calls get-object with name=ZCL_MATERIAL_UTILS, type=CLAS)

I’ve analyzed ZCL_MATERIAL_UTILS. It has 6 public methods. Here are the unit tests:

CLASS zcl_material_utils_test DEFINITION
  FOR TESTING
  RISK LEVEL HARMLESS
  DURATION SHORT.

  PRIVATE SECTION.
    DATA: mo_cut TYPE REF TO zcl_material_utils.

    METHODS: setup,
             test_get_material_description,
             test_get_material_description_not_found,
             test_validate_material_number,
             test_validate_material_number_empty.
ENDCLASS.
...

Shall I create and activate this test class in your SAP system?

You: Yes, create it in package ZMATERIAL_TEST.

Claude: Creating and activating the test class. (calls create-and-activate with appropriate parameters)

Done. ZCL_MATERIAL_UTILS_TEST has been created in ZMATERIAL_TEST and activated. Would you like me to run the tests now?

This workflow takes a class with no tests to a running test suite in minutes.


Try It with Claude Desktop

abaper-mcp v0.9.0 is available now. To get started:

  1. Install abaper-ts and connect it to your SAP system (see the abaper-ts documentation).
  2. Download abaper-mcp from the releases page.
  3. Add the configuration block above to your claude_desktop_config.json.
  4. Restart Claude Desktop and ask it to test your SAP connection.

The combination of abaper-mcp + Claude Desktop is the fastest path to AI-assisted ABAP development that actually reads and writes your SAP system. No copy-pasting, no context loss โ€” just a conversation.

Questions or feedback? Open an issue on GitHub or visit bluefunda.com.

Share this article
LinkedIn