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/adtmust 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
- 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.
-
pydantic-settings .env loading — The package only looks for
.envin the current working directory. The wrapper script sets environment variables inline instead. -
FASTMCP update check — The FastMCP framework performs update checks that can interfere with MCP communication. Setting
FASTMCP_UPDATE_CHECK=falsedisables 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)