A Model Context Protocol (MCP) server for SAP ABAP development. Connects AI assistants (Claude, Cursor, Windsurf) to live SAP systems via the ABAP Development Tools (ADT) REST API.
AI assistant (Claude Desktop / Cursor / Windsurf)
→ MCP protocol (stdio or HTTP/SSE)
→ abaper-mcp ← this repo
→ abaper-ts REST API
→ SAP system (ADT)
abaper-mcp does not connect to SAP directly. All ADT calls are delegated to an abaper-ts backend instance; configure its URL via ABAPER_TS_URL.
go install github.com/bluefunda/abaper-mcp@latestOr build from source:
git clone https://github.com/bluefunda/abaper-mcp.git
cd abaper-mcp
make buildAdd to your Claude Desktop config:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"abaper": {
"command": "/usr/local/bin/abaper-mcp",
"env": {
"ABAPER_TS_URL": "https://your-abaper-ts-host"
}
}
}
}Restart Claude Desktop. The server starts automatically via stdio.
See examples/ for Claude Desktop, Cursor, and Docker Compose configs.
Set via ABAPER_MODE env var:
| Mode | Transport | Use case |
|---|---|---|
stdio (default) |
Standard I/O | Claude Desktop, Claude Code CLI |
sse |
HTTP/SSE on :8015 |
Orchestrators, programmatic access |
| Variable | Required | Default | Description |
|---|---|---|---|
ABAPER_TS_URL |
Yes | http://localhost:8080 |
abaper-ts REST API base URL |
ABAPER_MODE |
No | stdio |
stdio or sse |
LOG_LEVEL |
No | info |
debug, info, warn, error |
LOG_FORMAT |
No | json |
json or console |
| Tool | Description |
|---|---|
get-object |
Retrieve source code for any ABAP object |
search-objects |
Search objects by pattern with wildcard support |
list-packages |
List all ABAP packages |
test-connection |
Verify connectivity to abaper-ts |
create-object |
Create a new ABAP object with source |
update-object |
Update source code of an existing object |
activate-object |
Activate an ABAP object |
create-transport |
Create a Workbench transport request |
syntax-check |
Run ABAP syntax check |
run-unit-tests |
Execute ABAP Unit tests |
format-code |
Format ABAP source code |
analyze-s4-remediation |
Analyze S/4HANA compatibility issues |
Access ABAP objects by URI:
abap://program/{name}
abap://class/{name}
abap://function/{group}/{name}
abap://interface/{name}
abap://table/{name}
abap://structure/{name}
abap://include/{name}
abap://packages
Pre-configured AI workflows:
| Prompt | Description |
|---|---|
analyze-abap |
Code quality, performance, and security analysis |
review-abap |
Detailed code review with best practices |
optimize-abap |
Performance optimization suggestions |
document-abap |
Generate comprehensive documentation |
test-abap |
Generate ABAP Unit test code |
refactor-abap |
Refactoring suggestions with examples |
explain-abap |
Explain code in simple terms |
make build # Build binary
make test # Run tests
make fmt # Format code
make lint # Run golangci-lintmain.go # Entry point, mode routing
config.go # Config struct, validation
handlers.go # Handlers struct (Config + APIClient)
tools.go # All MCP tool definitions and handlers
resources.go # MCP resource templates
prompts.go # MCP prompt definitions
apiclient.go # HTTP client for abaper-ts REST API
s4_remediation.go # S/4HANA compatibility analysis
internal/logger/ # Structured logging (zap)
examples/ # Claude Desktop, Cursor, Docker configs
Everything is package main. Do not introduce sub-packages.
Apache 2.0 — see LICENSE.
Authored by Amish Kushwaha, open-sourced under Apache 2.0 by BlueFunda, Inc.