This guide provides instructions for setting up the ABAP Accelerator MCP server locally on macOS using the openkash fork, without requiring Docker.

Prerequisites

  • Python 3.12 — Install via Homebrew: brew install python@3.12
  • pipx — For isolated Python package installation: brew install pipx && pipx ensurepath
  • SAP credentials — Valid username and password
  • SAP ADT services activated — The ICF service /sap/bc/adt must be active on the SAP system

Step 1: Install ABAP Accelerator

Use pipx to install into an isolated virtual environment:

pipx install abap-accelerator --python python3.12

Verify installation:

pipx list | grep abap

Note the installation location, typically: ~/.local/pipx/venvs/abap-accelerator/bin/python

Step 2: Create the Wrapper Script

The openkash fork has a logging issue: its logger writes to stdout, corrupting the MCP JSON protocol. Create a wrapper script that redirects logging to stderr instead.

Create ~/abap-accelerator/run-abap-mcp.sh:

#!/bin/bash
# ABAP Accelerator MCP wrapper script
# Patches stdout logging bug in openkash fork
export SAP_HOST=X.X.X.X
export SAP_INSTANCE_NUMBER=00
export SAP_CLIENT=100
export SAP_USERNAME=YOURUSERNAME
export SAP_PASSWORD='your_sap_password'
export SAP_LANGUAGE=EN
export SAP_SECURE=false
export SSL_VERIFY=false
export LOG_LEVEL=ERROR
export FASTMCP_UPDATE_CHECK=false
export PYTHONUNBUFFERED=1
exec ~/.local/pipx/venvs/abap-accelerator/bin/python -c "
import sys, logging
logging.basicConfig(stream=sys.stderr, level=logging.ERROR, force=True)
import abap_accelerator.utils.logger as _logger
def _patched(level='INFO', log_file=None):
    formatter = logging.Formatter(
        '[%(asctime)s] [%(levelname)s] [%(name)s] %(message)s',
        datefmt='%Y-%m-%d %H:%M:%S'
    )
    handler = logging.StreamHandler(sys.stderr)
    handler.setFormatter(formatter)
    logging.basicConfig(
        level=getattr(logging, level.upper()),
        handlers=[handler],
        force=True
    )
_logger.setup_logging = _patched
from abap_accelerator.main import main
main()
" 2>>"\$HOME/abap-accelerator/error.log"

Make it executable:

chmod +x ~/abap-accelerator/run-abap-mcp.sh

Note: The openkash fork uses pydantic-settings and only looks for .env files in the current working directory. Since Claude Desktop launches scripts from unpredictable locations, inline environment variables in the wrapper script are more reliable.

Step 3: Test the Server

Verify the server can connect to SAP:

~/abap-accelerator/run-abap-mcp.sh

The process should run silently (logging goes to ~/abap-accelerator/error.log), waiting for MCP commands on stdin. Press Ctrl+C to stop.

Check the error log for connection issues:

cat ~/abap-accelerator/error.log

If you see 403 errors, the SAP ADT ICF services may not be activated.

Step 4: Configure an MCP Client

Claude Desktop

Open Claude Desktop → Settings → Developer → Edit Config:

nano ~/Library/Application\ Support/Claude/claude_desktop_config.json

Add the configuration:

{
  "mcpServers": {
    "abap-accelerator": {
      "command": "/Users/warren/.local/bin/abap-accelerator/run-abap-mcp.sh"
    }
  }
}

Update with your actual path. Then fully quit and restart Claude Desktop (Cmd+Q, then reopen).

Important: Use absolute paths — Claude Desktop does not expand ~.

Claude Code (CLI)

claude mcp add abap-accelerator -- ~/abap-accelerator/run-abap-mcp.sh

Amazon Q Developer

Add to ~/.aws/amazonq/mcp.json:

{
  "mcpServers": {
    "abap-accelerator": {
      "command": "/Users/YOUR_MAC_USERNAME/abap-accelerator/run-abap-mcp.sh"
    }
  }
}

Step 5: Verify the Connection

Once configured and restarted, test by asking the MCP client to search for an ABAP object, for example: "Search for package Z004_RAP"

If results are returned, the setup is working.

Troubleshooting

"externally-managed-environment" error with pip

Use pipx instead:

brew install pipx && pipx ensurepath
pipx install abap-accelerator --python python3.12

No matching distribution / build errors

Your Python version may be too new (3.14+). Install Python 3.12:

brew install python@3.12
pipx install abap-accelerator --python python3.12

Claude Desktop shows JSON parse errors

The openkash fork's logger writes to stdout, corrupting the MCP JSON protocol. You must use the wrapper script — the direct command will not work with Claude Desktop.

Symptoms: SyntaxError: Unexpected token '[', "[2026-04-07"... is not valid JSON

Username must be uppercase

SAP ADT authentication is case-sensitive. If receiving 403 errors with correct password, verify SAP_USERNAME is uppercase (e.g., WARRENE not warrene).

Wrong port/protocol

If SAP_SECURE=true (default), the server connects via HTTPS on port 44300. For HTTP on port 8000, set SAP_SECURE=false. This is the most common misconfiguration.

Error log location

All server logs are written to: ~/abap-accelerator/error.log

Known Issues

  1. stdout logging bug — The openkash fork's logger writes to stdout, corrupting the MCP protocol. The wrapper script monkey-patches this; hopefully upstream will fix it.
  2. pydantic-settings .env loading — The package only looks for .env in the current working directory. The wrapper script sets environment variables inline instead.
  3. FASTMCP update check — The FastMCP framework performs update checks that can interfere with MCP communication. Setting FASTMCP_UPDATE_CHECK=false disables this.

File Structure

After setup, the ~/abap-accelerator/ directory should contain:

~/abap-accelerator/
├── .env                  # Your SAP credentials (gitignored)
├── .env.example          # Template without credentials
├── run-abap-mcp.sh       # Wrapper script (the actual entry point)
└── error.log             # Server logs (created on first run)

References