Sponsored by Deepsite.site

MCP SAP GUI Server

Created By
mario-andreschak9 months ago
MCP server that allows simple SAP GUI interaction for LLM models using simulated mouse clicks and keyboard input.
Content

MCP SAP GUI Server

A Model Context Protocol (MCP) server for SAP GUI automation. This server provides tools to automate interactions with SAP GUI, enabling programmatic control of SAP transactions.

image

Requirements

  • Python 3.8 or higher
  • SAP GUI installed and configured
  • Valid SAP credentials (system, client, user, password)
  • Node.js (for npx)

Installation

  1. Clone github folder and run the automated Install using setup script:
setup.bat

This will guide you through the build process and will integrate this directly in Cline or Roo, if you select so.

  1. OR Manual Install using build script..:
build.bat
  1. Configure SAP credentials:
  • Copy .env.example to .env
  • Update the values with your SAP credentials
  1. Test server using mcp inspector:
run.bat debug
  1. Use the integration script to automatically configure MCP settings:
integrate.bat cline  # Configure for Cline
integrate.bat roo    # Configure for Roo

The script will:

  • Automatically determine the correct settings file path
  • Create a backup before making any changes
  • Safely update the MCP configuration
  • Validate changes to prevent corruption

Manual Configuration (if needed):

    "mcp-sap-gui": {
      "command": "python",
      "args": [
        "-m",
        "sap_gui_server.server"
      ],
      "cwd": "PATH_TO_YOUR_FOLDER/mcp-sap-gui",
      "disabled": false,
      "autoApprove": []
    }
  1. Use this prompt to explain the Tool to your AI Model:
**Important Safety Notice:**
SAP is a highly sensitive system where incorrect interactions can have serious consequences. Every action must be performed with utmost precision and care. When in doubt about any action, STOP immediately and request user assistance.

**Available Tools:**
The `mcp-sap-gui` server provides tools for SAP GUI interaction:
* `launch_transaction`: Start a new transaction
* `sap_click`: Click at specific coordinates
* `sap_move_mouse`: Move mouse to coordinates
* `sap_type`: Enter text into fields
* `end_transaction`: Close the current transaction

**Technical Limitations and Requirements:**
1. You will receive only screenshot images of the SAP GUI window after each action
2. No direct access to screen element metadata or technical representation
3. You must use image recognition to:
   * Identify UI elements (fields, buttons, etc.)
   * Determine precise x/y coordinates for interactions
   * Verify element sizes and positions
4. All coordinates must be exact - approximate clicking is not acceptable

**Step-by-Step Process:**
1. Start SAP GUI Session:
   * Call `launch_transaction` with desired transaction code
   * Analyze the returned screenshot carefully
2. Interact with Screen:
   * Use image recognition to identify needed elements
   * Calculate exact coordinates for interaction
   * Execute appropriate action (`sap_click`, `sap_type`, etc.)
   * Verify result in next screenshot
3. Capture Screenshots:
   * Save screenshots at key points in the process
4. End Session:
   * Call `end_transaction` when finished

**Best Practices:**
1. Always verify screen state before any action
2. Double-check coordinates before clicking
3. Document each step with clear annotations
4. If uncertain about any element position, request user verification
5. Maintain consistent screenshot naming convention

Available Tools

The MCP SAP GUI Server provides the following tools for SAP automation:

Transaction Management

  • launch_transaction: Launch a specific SAP transaction code
  • end_transaction: End the current SAP transaction

Interface Interaction

  • sap_click: Click at specific coordinates in the SAP GUI window
  • sap_move_mouse: Move mouse cursor to specific coordinates
  • sap_type: Type text at the current cursor position
  • sap_scroll: Scroll the SAP GUI screen (up/down)

Screen Capture

  • save_last_screenshot: Save the last captured screenshot of the SAP GUI window. Returns the absolute file path of the saved image.

Screenshot Return Formats

All tools that interact with the SAP GUI window (launch_transaction, sap_click, sap_move_mouse, sap_type, sap_scroll) support different screenshot return formats controlled by the return_screenshot parameter:

  1. none (Default): Only returns success/error messages
{
    "type": "text",
    "text": "Status: success"
}
  1. as_file: Saves screenshot to the specified target folder and returns the path
{
    "type": "text",
    "text": "Screenshot saved as C:/path/to/file/screenshot.png"
}

Note: When using as_file, you must specify the target folder using the as_file_target_folder parameter. The folder will be created if it doesn't exist.

  1. as_base64: Returns the raw base64 string
{
    "type": "text",
    "text": "base64_encoded_string_here"
}
  1. as_imagecontent: Returns MCP ImageContent object
{
    "type": "image",
    "data": "base64_encoded_string_here",
    "mimeType": "image/png"
}
  1. as_imageurl: Returns embedded resource with data URL
{
    "type": "resource",
    "resource": {
        "uri": "application:image",
        "mimeType": "image/png",
        "text": "data:image/png;base64,..."
    }
}

Example usage:

# Default - no screenshot
result = await client.call_tool("launch_transaction", {
    "transaction": "VA01"
})

# Save to specific folder
result = await client.call_tool("launch_transaction", {
    "transaction": "VA01",
    "return_screenshot": "as_file",
    "as_file_target_folder": "C:/screenshots"
})

# Get base64 string
result = await client.call_tool("launch_transaction", {
    "transaction": "VA01",
    "return_screenshot": "as_base64"
})

Tool Parameter Summary:

ToolParameterTypeDefaultDescription
launch_transactiontransactionstringSAP transaction code to launch (e.g., VA01, ME21N, MM03)
return_screenshotstringnoneScreenshot return format (none, as_file, as_base64, as_imagecontent, as_imageurl)
as_file_target_folderstringTarget folder path for saving screenshots when using 'as_file' return format
sap_clickxintegerHorizontal pixel coordinate (0-1920) where the click should occur
yintegerVertical pixel coordinate (0-1080) where the click should occur
return_screenshotstringnoneScreenshot return format (none, as_file, as_base64, as_imagecontent, as_imageurl)
as_file_target_folderstringTarget folder path for saving screenshots when using 'as_file' return format
sap_move_mousexintegerHorizontal pixel coordinate (0-1920) to move the cursor to
yintegerVertical pixel coordinate (0-1080) to move the cursor to
return_screenshotstringnoneScreenshot return format (none, as_file, as_base64, as_imagecontent, as_imageurl)
as_file_target_folderstringTarget folder path for saving screenshots when using 'as_file' return format
sap_typetextstringText to enter at the current cursor position in the SAP GUI window
return_screenshotstringnoneScreenshot return format (none, as_file, as_base64, as_imagecontent, as_imageurl)
as_file_target_folderstringTarget folder path for saving screenshots when using 'as_file' return format
sap_scrolldirectionstringDirection to scroll the screen ('up' moves content down, 'down' moves up)
return_screenshotstringnoneScreenshot return format (none, as_file, as_base64, as_imagecontent, as_imageurl)
as_file_target_folderstringTarget folder path for saving screenshots when using 'as_file' return format
end_transaction
save_last_screenshotfilenamestringPath where the screenshot will be saved

Development

Running Tests

  1. Test server using mcp inspector (build + debug):
./run.bat full
  1. Or use test suite: The test suite includes live tests that interact with SAP GUI. Make sure you have SAP GUI installed and configured before running tests.

Run tests:

run.bat test server

The test suite includes:

  • SapGuiServer tests (test_server.py)
    • Tool registration
    • Request handling
    • Response formatting
    • Error handling

Project Structure

mcp-sap-gui/
├── src/
│   └── sap_gui_server/
│       ├── __init__.py
│       ├── sap_controller.py  # SAP GUI interaction logic
│       └── server.py         # MCP server implementation
├── tests/
│   ├── __init__.py
│   ├── test_sap_controller.py
│   └── test_server.py
├── build.bat          # Build and test script
├── integrate.bat      # Integration script for Cline/Roo
├── integrate.py       # Python script for safe MCP settings updates
├── requirements.txt   # Production dependencies
└── requirements-dev.txt  # Development dependencies

License

[MIT License]

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
Playwright McpPlaywright MCP server
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
DeepChatYour AI Partner on Desktop
Tavily Mcp
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
CursorThe AI Code Editor
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
ChatWiseThe second fastest AI chatbot™
Serper MCP ServerA Serper MCP Server
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Amap Maps高德地图官方 MCP Server
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
WindsurfThe new purpose-built IDE to harness magic
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.