Skip to content

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 FileOption 2: Environment Variables
Best forMultiple systems with different access strategiesSingle system, quick setup
Credential scopePer-directory, isolated per systemOS-level (user or system)
Version control riskNone — file lives outside the repoNone — stored in OS
Setup effortMediumLow

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:

json
{
  "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_PASSWORD

Option 2: Defining Environment Variables

  1. Open Command Prompt: click Start, type cmd, press Enter.
  2. Set the variable (persists across sessions):
setx SAP_DEV_SYSTEM_1_PASSWORD "YOUR_SAP_PASSWORD"
  1. Verify it was saved:
echo %SAP_DEV_SYSTEM_1_PASSWORD%
json
"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)

FlagDefaultEffect
SAP_ALLOW_TRANSPORTABLE_EDITSfalseEnable editing objects in transportable (non-$) packages
SAP_ENABLE_TRANSPORTSfalseEnable 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

FlagDefaultEffect
SAP_ALLOW_WRITESfalseEnable object write operations
SAP_ALLOW_TRANSPORT_WRITESfalseEnable transport mutations — also requires SAP_ALLOW_WRITES=true
SAP_ALLOW_GIT_WRITESfalseEnable Git mutations — also requires SAP_ALLOW_WRITES=true
SAP_ALLOW_DATA_PREVIEWfalseEnable named table data preview
SAP_ALLOW_FREE_SQLfalseEnable freestyle SQL execution
SAP_ALLOWED_PACKAGES$TMPScope 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.

Sources: ARC-1 Safety flags, ARC-1 Security Recommendations

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.

ModeTools exposedSchema tokensHow AI calls itBest for
hyperfocused1 universal SAP() tool~200SAP(action, target, params)Most setups — minimal overhead, any model
focused100 curated tools~14,000GetSource(type, name)Legacy setups
expert147 tools~40,000Individual tool namesEdge 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.

PatternExpensive approachToken-efficient approachSaving
Read a class with its dependenciesSAPRead × N calls for each depSAPContext(type="CLAS", name="ZCL_ORDER")~7–30x
Read a single methodSAPRead full class (~500 lines)SAPRead(type="CLAS", name="ZCL_ORDER", method="get_name")~20x
Search source codeRead all candidates, scan manuallySAPRead(..., grep="select.*from") — returns matching lines + 3 context linesVaries
Read one class sectionSAPRead full classSAPRead(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

json
{
"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

json
{
  "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

Copyright © MSG Systems Romania AI Labs