ABAP MCP
A VS Code extension that automatically deploys the ABAP MCP server plus a library of Claude Code agents, SDD slash-commands, and ABAP/CDS skills into your workspace for enhanced ABAP development.
Demo
Watch the setup and usage walkthrough:

Features
✨ Automatic Workspace Setup
- Auto-deploy on folder open: Automatically deploys MCP configuration and files when you open any workspace folder
- Zero configuration: No manual commands needed - works out of the box
- Per-workspace MCP config: Each workspace gets its own local
.vscode/mcp.json configuration
- Version-aware: Only updates files when a newer version is available
- Automatic path updates: MCP executable path is updated automatically when the extension is updated or moved
🛠️ ABAP Object Creation
- Broad object type coverage: programs, classes, interfaces, function groups/modules, CDS views, behavior definitions, behavior implementations, service definitions, metadata extensions, access controls (DCL), data elements, domains, tables, structures, message classes, and ABAP Unit test classes
- Flexible package assignment: create objects in
$TMP or any existing development package
- Transport integration: assign objects to an existing transport request or create a new one as part of the operation
- Create → upload → activate in one step: every creation runs an automatic syntax check and returns errors/warnings with line numbers
🧭 Claude Code Instructions, Agents & Skills
CLAUDE.md: documents every MCP tool's purpose, mandatory/optional parameters, and sample calls, plus the SDD command workflow and its required execution order
.claude/agents/: specialist ABAP/RAP subagents (modernization, RAP analysis, SAP research, ABAP Unit, and per-object-type task agents for BDEF/behavior implementation/CDS/DCL/metadata extension/service definition)
.claude/skills/: a growing library of ABAP/CDS syntax and annotation reference skills, consulted automatically before code is generated
📋 Spec-Driven Development (SDD) Slash-Commands
- The SDD framework ships as Claude Code custom slash-commands under
.claude/commands/
- Type
/sdd-spec, /sdd-plan, /sdd-tasks, /sdd-impl, or /sdd-gap in Claude Code to run a phase
/sdd-spec takes a natural-language feature description as its argument — there's no separate input template to fill in first
📁 What Gets Automatically Deployed
To Each Workspace — everything under the extension's templates/ folder is copied 1:1 into the workspace root on open:
.vscode/mcp.json - Local MCP server configuration; the extension rewrites the command path to point at the bundled binary for your OS on every deploy
CLAUDE.md - MCP tool + SDD command reference for Claude Code
.claude/agents/ - Specialist ABAP/RAP subagents
.claude/commands/ - The SDD slash-commands (/sdd-spec, /sdd-plan, /sdd-tasks, /sdd-impl, /sdd-gap)
.claude/skills/ - ABAP/CDS syntax and annotation reference skills
Written separately by the extension (not copied from templates/):
.github/.sap-adt-version.json - Version marker used to detect when updates are needed
Requirements
- Windows, macOS, or Linux (x64): the extension bundles a platform-specific MCP server binary; installing from the Marketplace automatically gets you the right one for your OS
- VS Code 1.85.0 or higher
- Claude Code: Required to use the deployed agents, skills, and SDD slash-commands (
.claude/ folder)
- SAP System Access: MCP server requires SAP ABAP system credentials
The extension bundles a native MCP server executable, so each OS gets its own build — there's no single binary that works everywhere:
| OS |
Bundled binary |
VS Code Marketplace target |
| Windows (x64) |
abap-mcp-windows.exe |
win32-x64 |
| macOS (x64) |
abap-mcp-mac |
darwin-x64 |
| Linux (x64) |
abap-mcp-linux |
linux-x64 |
- Installed from the VS Code Marketplace: VS Code automatically downloads the package built for your platform — you never see or choose between them, and each one contains only the single binary for your OS (not all three).
- Unsupported platforms: only x64 builds exist today — there's no arm64 binary yet, so Apple Silicon Macs and ARM-based Linux/Windows have no matching platform package. On any unsupported platform the extension shows an activation error naming the detected platform/architecture instead of failing silently.
- Once installed, the extension detects the OS it's running on and points the workspace's
.vscode/mcp.json at the correct bundled binary automatically — no manual path configuration needed.
Quick Start
Install the extension from the VS Code Marketplace — search for "ABAP MCP" in the Extensions view (Ctrl+Shift+X) and click Install. VS Code automatically fetches the package built for your OS (Windows, macOS, or Linux).
Open any workspace folder - Files are deployed automatically!
Configure SAP credentials in .vscode/mcp.json (only edit the env values — the command path to the bundled MCP server binary for your OS is set automatically by the extension):
{
"servers": {
"abap-mcp": {
"type": "stdio",
"command": "<set automatically by the extension>",
"env": {
"SAP_URL": "https://hostname:port",
"SAP_USERNAME": "sap_username",
"SAP_PASSWORD": "sap_password",
"SAP_CLIENT": "sap_client",
"SAP_LANGUAGE": "en",
"TLS_REJECT_UNAUTHORIZED": "0",
"HTTP_PROXY": "http://systemusername:systempassword@proxy:port",
"HTTPS_PROXY": "http://systemusername:systempassword@proxy:port"
}
}
}
}
Reload VS Code to activate the MCP server
Start using Claude Code — it reads CLAUDE.md for MCP tool guidance automatically, and picks up the deployed .claude/agents/, .claude/commands/, and .claude/skills/ on its own!
Commands
The extension contributes one command, available via the Command Palette (Ctrl+Shift+P):
- ABAP MCP: Deploy/Update Workspace Files - Force re-deploys all template files to the selected workspace folder, bypassing the version check.
Use it when:
- Auto-deployment didn't work
- You want to force an update
- You manually deleted files and want to restore them
⚠️ Note: A force deploy (and any automatic version update) overwrites .vscode/mcp.json with the template, so you will need to re-enter your SAP credentials afterwards. Back up your env values first if needed.
Configuration
SAP Connection Parameters
Required Parameters:
SAP_URL: Your SAP system URL (format: https://hostname:port)
SAP_USERNAME: Your SAP username
SAP_PASSWORD: Your SAP password
SAP_CLIENT: SAP client number (e.g., "100")
SAP_LANGUAGE: Language code (default: "en")
Optional Parameters:
TLS_REJECT_UNAUTHORIZED: Set to "0" if using self-signed certificates (default: "0")
HTTP_PROXY: HTTP proxy URL (format: http://username:password@proxy:port)
HTTPS_PROXY: HTTPS proxy URL
Security Notes
⚠️ Important: Storing passwords in mcp.json is not secure for production use. Consider:
- Using environment variables
- Restricting file permissions on
.vscode/mcp.json
- Adding
.vscode/mcp.json to .gitignore
- Using SAP's secure credential store
CLAUDE.md — AI Instructions Reference
The extension deploys CLAUDE.md to the workspace root, which teaches Claude Code directly how to work with this MCP server — there's nothing to @mention or invoke; Claude Code reads the file automatically as workspace context.
It documents two things:
- MCP Tools Reference — every SAP ADT tool exposed by the bundled MCP server, each with when-to-use guidance, mandatory/optional parameters, and sample calls:
SearchObject - Find an object's exact name/type before further calls
GetObjectInfo - Retrieve existing object source/metadata
CreateAIObject - Create a new Z*-prefixed ABAP/CDS/DDIC object
ChangeAIObject - Update an existing Z*-prefixed object's source
ActivateObject - Activate + syntax-check a Z* object
ATCbyObject - ABAP Test Cockpit findings for an object — a quality gate run before activation
GetReleasedAPI - Maps a deprecated predecessor BAPI/table/FM to its released successor — a quality gate checked while planning
runABAPUnit - Run ABAP Unit tests against an object and return the results — a quality gate run after activation
WhereUsedSearch - Find references before changing/deleting an object
getDomainInfo - Look up current ABAP/RAP development guidance from the SAP Help Portal and SAP Community (search → fetch → coverage-check loop, up to 3 rounds) — call before generating source during plan/tasks/impl phases
data_preview - Execute a read-only SELECT against a table or CDS view
- SDD Workflow Reference — the
/sdd-spec → /sdd-plan → /sdd-tasks → /sdd-impl workflow plus the /sdd-gap add-on (see below)
Slash-Commands — Spec-Driven Development (SDD)
The extension deploys the SDD (Spec-Driven Development) framework as Claude Code custom slash-commands under .claude/commands/. SDD structures AI-assisted development around an explicit specification before code is generated, giving you reviewable, repeatable results.
To use them, type the command directly into Claude Code — no @mention or discovery step needed.
Workflow order
Run the phases strictly in this order — each one reads artifacts the previous phase wrote to specs/<feature>/ and .specify/feature.json. Don't skip ahead (e.g. don't run /sdd-tasks before /sdd-plan has produced a plan for the active feature):
| Step |
Command |
Input → Output |
| 1 |
/sdd-spec |
Natural-language requirement → spec.md (business-focused functional spec) |
| 2 |
/sdd-plan |
spec.md → plan.md (RAP/ABAP implementation architecture, per object type; checks GetReleasedAPI for every standard BAPI/FM/table used, planning against the released successor where one exists) |
| 3 |
/sdd-tasks |
plan.md → tasks/*.md (dependency-ordered T001-TNNN checklist, with inline ABAP source externalized to tasks/source/*.abap) |
| 4 |
/sdd-impl |
Executes ONE tasks file at a time against the live SAP system, in the order listed in tasks/00-index.md, using the CreateAIObject/ChangeAIObject → lock → ATCbyObject → ActivateObject → runABAPUnit workflow with an Actor/Evaluator fix cycle |
/sdd-gap — traceability add-on
Not a workflow phase — an add-on check you can run any time after /sdd-spec (typically after /sdd-impl, or whenever you want to verify progress). Compares the original free-text requirement given to /sdd-spec against everything actually produced for the feature (spec.md, plan.md, tasks/*.md, and what's actually been created/activated in SAP), across 7 layers: REQ→Spec, Spec→Plan, Plan→Tasks, Tasks→Impl, field lineage, logic/validation coverage, and test coverage. Uses a 3-round Actor/Evaluator reflexion loop, then a one-gap-at-a-time Q&A to close or defer each gap, and produces a prioritized remediation plan. Writes results into the feature's traceability.md.
/sdd-gap
/sdd-gap context="tasks gaps only"
Troubleshooting
MCP Server Not Working
- Open
.vscode/mcp.json in your workspace and verify the abap-mcp server entry exists
- Verify the
command path points to the bundled binary inside the installed extension's bin/ directory (abap-mcp-windows.exe, abap-mcp-mac, or abap-mcp-linux, matching your OS)
- Check SAP credentials in the
env block are correct
- Reload VS Code:
Ctrl+Shift+P → "Developer: Reload Window"
- If the path looks wrong, run ABAP MCP: Deploy/Update Workspace Files (this resets
mcp.json — re-enter credentials)
Workspace Files Not Installing
- Check the workspace folder is writable
- Run the manual command: ABAP MCP: Deploy/Update Workspace Files
- Check for errors in
Help → Toggle Developer Tools → Console or View → Output → Extension Host
- Supported platforms: Windows, macOS, and Linux, all x64
- On an unsupported platform (e.g. ARM-based Linux/Windows, or a Mac/Linux install that didn't get the platform-specific package) the extension shows an activation error instead of silently failing
Credits & Acknowledgments
This extension builds upon the excellent work of the following open-source projects:
MCP Server Implementation
See THIRD_PARTY_LICENSES.md for complete license details.
License
MIT License - see LICENSE file for details.
Copyright (c) 2026 HariePrasad
Note: This extension requires Claude Code and access to an SAP ABAP system.
| |