MCP Server Configuration in SAP Ecosystem
GitHub Copilot
Reference:
Recommendations
It is recommended to grant the MCP Server only the minimum required permissions during the initial exploratory phase. Users should follow a gradual learning path starting with limited access, progressing through development scenarios, and only then considering broader permissions as needed. Before expanding access, it is essential to consult the MCP Server documentation to fully understand the implications, supported features, and available access strategies.
Credentials
Hardcoded credentials in IDE config files can be accidentaly shared with teammates, or leaked, exposing your SAP system to anyone with access to the system. Store credentials outside the IDE config using one of these two options:
Option 1: .env File | Option 2: Environment Variables | |
|---|---|---|
| Best for | Multiple systems with different access strategies | Single system, quick setup |
| Credential scope | Per-directory, isolated per system | OS-level (user or system) |
| Version control risk | None — file lives outside the repo | None — stored in OS |
| Setup effort | Medium | Low |
Option 1: Defining a .env File
It is possible to configure multiple instances of the same MCP Server for different systems by using distinct keys, e.g. vsp-dev-system-1-mcp, vsp-dev-system-2-mcp. With this option it is possible to handle different credentials or access strategies based on system specific requirements.
Store the .env file in a secure location outside the IDE workspace and point each MCP server instance to its own directory via cwd (Current Working Directory). This isolates credentials per system and keeps them out of version control.
Each directory contains a .env file with the credentials and access flags for that specific system:
{
"servers": {
"vsp-dev-system-1-mcp": {
"type": "local",
"command": "/absolute/path/to/vibing-steampunk/vsp.exe",
"cwd": "/absolute/path/to/system/1/dot/env/config/"
},
"vsp-dev-system-2-mcp": {
"type": "local",
"command": "/absolute/path/to/vibing-steampunk/vsp.exe",
"cwd": "/absolute/path/to/system/2/dot/env/config/"
},
"arc1-dev-system-1-mcp": {
"type": "local",
"command": "arc1",
"cwd": "/absolute/path/to/system/1/dot/env/config/"
},
"arc1-dev-system-2-mcp": {
"type": "local",
"command": "arc1",
"cwd": "/absolute/path/to/system/2/dot/env/config/"
}
}
}Each cwd directory holds a separate .env file — for example /absolute/path/to/system/1/dot/env/config/.env — containing the variables for that system:
SAP_URL=http://your-dev-sap-host:50000
SAP_USER=YOUR_USERNAME
SAP_CLIENT=100
SAP_PASSWORD=YOUR_SAP_PASSWORDOption 2: Defining Environment Variables
- Open Command Prompt: click Start, type
cmd, press Enter. - Set the variable (persists across sessions):
setx SAP_DEV_SYSTEM_1_PASSWORD "YOUR_SAP_PASSWORD"- Verify it was saved:
echo %SAP_DEV_SYSTEM_1_PASSWORD%"vsp-dev-system-1-mcp":{
"type": "stdio",
"command": "/absolute/path/to/vibing-steampunk/vsp.exe",
"args": [
"--url", "http://your-sap-host:50000",
"--user", "YOUR_USERNAME",
"--client", "100",
"--mode", "focused"
],
"env": {
"SAP_PASSWORD": "${SAP_DEV_SYSTEM_1_PASSWORD}"
}Safety Flags
Both VSP and ARC-1 ship read-only by default. Write access, transport operations, and package scope must be explicitly opted into via environment variables. Enable only what your current workflow requires.
MCP Server - Vibing Steampunk (vsp)
| Flag | Default | Effect |
|---|---|---|
SAP_ALLOW_TRANSPORTABLE_EDITS | false | Enable editing objects in transportable (non-$) packages |
SAP_ENABLE_TRANSPORTS | false | Enable full transport management (create, release) |
SAP_ALLOWED_TRANSPORTS | (none) | Whitelist transport request patterns, e.g. DEVK*,A4HK* |
SAP_ALLOWED_PACKAGES | (none) | Whitelist package name patterns, e.g. $TMP,Z* |
Without SAP_ALLOW_TRANSPORTABLE_EDITS, operations on transportable packages are blocked by the safety system. SAP_ALLOWED_TRANSPORTS and SAP_ALLOWED_PACKAGES only take effect once the corresponding write flag is enabled.
Source: Vibing Steampunk — Transportable Packages Configuration
MCP Server - ARC-1
| Flag | Default | Effect |
|---|---|---|
SAP_ALLOW_WRITES | false | Enable object write operations |
SAP_ALLOW_TRANSPORT_WRITES | false | Enable transport mutations — also requires SAP_ALLOW_WRITES=true |
SAP_ALLOW_GIT_WRITES | false | Enable Git mutations — also requires SAP_ALLOW_WRITES=true |
SAP_ALLOW_DATA_PREVIEW | false | Enable named table data preview |
SAP_ALLOW_FREE_SQL | false | Enable freestyle SQL execution |
SAP_ALLOWED_PACKAGES | $TMP | Scope writes to matching package patterns, e.g. $TMP,Z* or * for any |
SAP_DENY_ACTIONS | (none) | Fine-grained action blocklist even after allow flags are set, e.g. SAPWrite.delete |
Transport and Git reads (list, get, history) work without any flags — only mutations are gated.
Token optimization
Every MCP tool call consumes tokens from the model's context window — both to describe available tools (schema tokens) and to carry response data. Choosing the right tool mode and the right read strategy significantly reduces cost and latency, especially for large codebases.
Vibing Steampunk (vsp) — Tool modes
VSP exposes its tools in three modes, controlled by --mode or SAP_MODE. hyperfocused is recommended for most setups.
| Mode | Tools exposed | Schema tokens | How AI calls it | Best for |
|---|---|---|---|---|
hyperfocused | 1 universal SAP() tool | ~200 | SAP(action, target, params) | Most setups — minimal overhead, any model |
focused | 100 curated tools | ~14,000 | GetSource(type, name) | Legacy setups |
expert | 147 tools | ~40,000 | Individual tool names | Edge cases, debugging |
All safety controls (SAP_ALLOW_TRANSPORTABLE_EDITS, SAP_ALLOWED_PACKAGES, etc.) apply identically across all three modes — the universal tool routes through the same handler and checkSafety() chain.
Source: Vibing Steampunk — Tool Modes
ARC-1 — Token-efficient read patterns
ARC-1 exposes 12 intent-based tools (~5K schema tokens total). Several parameters exist specifically to reduce response size.
| Pattern | Expensive approach | Token-efficient approach | Saving |
|---|---|---|---|
| Read a class with its dependencies | SAPRead × N calls for each dep | SAPContext(type="CLAS", name="ZCL_ORDER") | ~7–30x |
| Read a single method | SAPRead full class (~500 lines) | SAPRead(type="CLAS", name="ZCL_ORDER", method="get_name") | ~20x |
| Search source code | Read all candidates, scan manually | SAPRead(..., grep="select.*from") — returns matching lines + 3 context lines | Varies |
| Read one class section | SAPRead full class | SAPRead(type="CLAS", name="ZCL_ORDER", include="testclasses") | Varies |
Sources: ARC-1 MCP Usage Guide — Token Optimization, ARC-1 Tools Reference
Configuring MCP Servers in Eclipse
Add MCP Server from MCP registry by following the instuctions.
OR
Add MCP Server manually by following the instuctions.
MCP Server configuration examples
{
"servers": {
// ... configuration of locl MCP Servers using CWD
"vsp-dev-system-1-mcp": {
"type": "local",
"command": "/absolute/path/to/vibing-steampunk/vsp.exe",
"cwd": "/absolute/path/to/system/1/dot/env/config/"
},
"vsp-dev-system-2-mcp": {
"type": "local",
"command": "/absolute/path/to/vibing-steampunk/vsp.exe",
"cwd": "/absolute/path/to/system/2/dot/env/config/"
},
"arc1-dev-system-1-mcp": {
"type": "local",
"command": "arc1",
"cwd": "/absolute/path/to/system/1/dot/env/config/"
},
// ... configuration of remote MCP Server with Environment Variable ...
"remote-arc-1-dev-system-1-mcp": {
"command": "npx",
"args": ["-y", "arc-1@latest"],
"env": {
"SAP_URL": "<YOUR_SAP_URL>",
"SAP_CLIENT": "<YOUR_CLIENT>",
"SAP_USER": "<YOUR_SAP_USER>",
"SAP_PASSWORD": "<YOUR_SAP_PASSWORD>" // or use Environment variable e.g. "${SAP_DEV_SYSTEM_1_PASSWORD}"
}
},
// ... configuration of remote MCP Servers ...
"sap-docs-mcp": {
"url": "https://mcp-sap-docs.marianzeis.de/mcp",
"type": "http"
},
"abap-mcp": {
"type": "http",
"url": "https://mcp-abap.marianzeis.de/mcp"
}
}
}Configuring MCP Servers in VS Code
Add MCP Server from MCP registry by following the instuctions.
OR
Add MCP Server manually by following the instuctions.
MCP Server configuration examples
{
"mcpServers": {
"abap-vsp-dev": {
"command": "/absolute/path/to/vibing-steampunk/vsp.exe",
"args": ["--url", "http://your-sap-host:50000"]
},
"sap-docs": {
"url": "https://mcp-sap-docs.marianzeis.de/mcp",
"type": "http"
}
}
}Configuring MCP Servers in Copilot CLI
Getting started with GitHub Copilot CLI GitHub Copilot CLI.
Add MCP Server by following the instuctions