MCP SAP GUI Server

by mario-andreschak
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Provides tools to automate interactions with SAP GUI, enabling programmatic control of SAP transactions including launching transactions, clicking at coordinates, moving the mouse, typing text, and scrolling the SAP GUI screen.

Servidor SAP GUI de MCP

Un servidor de Protocolo de Contexto de Modelo (MCP) para la automatización de SAP GUI. Este servidor proporciona herramientas para automatizar las interacciones con SAP GUI, lo que permite el control programático de las transacciones de SAP.

Requisitos

  • Python 3.8 o superior
  • SAP GUI instalado y configurado
  • Credenciales SAP válidas (sistema, cliente, usuario, contraseña)
  • Node.js (para npx)

Instalación

  1. Clonar la carpeta github y ejecutar la instalación automatizada usando el script de configuración:
setup.bat

Esto lo guiará a través del proceso de compilación y lo integrará directamente en Cline o Roo, si así lo selecciona.

  1. O Instalación manual mediante script de compilación..:
build.bat
  1. Configurar las credenciales de SAP:
  • Copiar .env.example a .env
  • Actualice los valores con sus credenciales de SAP
  1. Servidor de prueba usando el inspector mcp:
run.bat debug
  1. Utilice el script de integración para configurar automáticamente los ajustes de MCP:
integrate.bat cline # Configure for Cline integrate.bat roo # Configure for Roo

El guión hará lo siguiente:

  • Determinar automáticamente la ruta correcta del archivo de configuración
  • Cree una copia de seguridad antes de realizar cualquier cambio
  • Actualice de forma segura la configuración de MCP
  • Validar los cambios para prevenir la corrupción

Configuración manual (si es necesario):

"mcp-sap-gui": { "command": "python", "args": [ "-m", "sap_gui_server.server" ], "cwd": "PATH_TO_YOUR_FOLDER/mcp-sap-gui", "disabled": false, "autoApprove": [] }
  1. Utilice este mensaje para explicar la herramienta a su modelo de IA:
**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

Herramientas disponibles

El servidor SAP GUI de MCP proporciona las siguientes herramientas para la automatización de SAP:

Gestión de transacciones

  • launch_transaction : Iniciar un código de transacción de SAP específico
  • end_transaction : Finaliza la transacción SAP actual

Interacción de interfaz

  • sap_click : Haga clic en coordenadas específicas en la ventana de SAP GUI
  • sap_move_mouse : Mueve el cursor del ratón a coordenadas específicas
  • sap_type : Escribe texto en la posición actual del cursor
  • sap_scroll : desplazarse por la pantalla de SAP GUI (arriba/abajo)

Captura de pantalla

  • save_last_screenshot : Guarda la última captura de pantalla de la ventana de SAP GUI. Devuelve la ruta de acceso absoluta de la imagen guardada.

Formatos de retorno de captura de pantalla

Todas las herramientas que interactúan con la ventana SAP GUI (launch_transaction, sap_click, sap_move_mouse, sap_type, sap_scroll) admiten diferentes formatos de retorno de captura de pantalla controlados por el parámetro return_screenshot :

  1. none (predeterminado): solo devuelve mensajes de éxito/error
{ "type": "text", "text": "Status: success" }
  1. as_file : guarda la captura de pantalla en la carpeta de destino especificada y devuelve la ruta
{ "type": "text", "text": "Screenshot saved as C:/path/to/file/screenshot.png" }

Nota: Al usar as_file , debe especificar la carpeta de destino mediante el parámetro as_file_target_folder . La carpeta se creará si no existe.

  1. as_base64 : Devuelve la cadena base64 sin procesar
{ "type": "text", "text": "base64_encoded_string_here" }
  1. as_imagecontent : Devuelve el objeto ImageContent de MCP
{ "type": "image", "data": "base64_encoded_string_here", "mimeType": "image/png" }
  1. as_imageurl : Devuelve un recurso incrustado con la URL de datos
{ "type": "resource", "resource": { "uri": "application:image", "mimeType": "image/png", "text": "data:image/png;base64,..." } }

Ejemplo de uso:

# 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" })

Resumen de parámetros de la herramienta:

HerramientaParámetroTipoPor defectoDescripción
launch_transactiontransactionstringCódigo de transacción de SAP para el lanzamiento (por ejemplo, VA01, ME21N, MM03)
return_screenshotstringnoneFormato de retorno de captura de pantalla ( none , as_file , as_base64 , as_imagecontent , as_imageurl )
as_file_target_folderstringRuta de la carpeta de destino para guardar capturas de pantalla cuando se utiliza el formato de retorno 'as_file'
sap_clickxintegerCoordenada de píxel horizontal (0-1920) donde debe producirse el clic
yintegerCoordenada de píxel vertical (0-1080) donde debe ocurrir el clic
return_screenshotstringnoneFormato de retorno de captura de pantalla ( none , as_file , as_base64 , as_imagecontent , as_imageurl )
as_file_target_folderstringRuta de la carpeta de destino para guardar capturas de pantalla cuando se utiliza el formato de retorno 'as_file'
sap_move_mousexintegerCoordenada de píxel horizontal (0-1920) para mover el cursor
yintegerCoordenada de píxel vertical (0-1080) para mover el cursor
return_screenshotstringnoneFormato de retorno de captura de pantalla ( none , as_file , as_base64 , as_imagecontent , as_imageurl )
as_file_target_folderstringRuta de la carpeta de destino para guardar capturas de pantalla cuando se utiliza el formato de retorno 'as_file'
sap_typetextstringTexto a introducir en la posición actual del cursor en la ventana de SAP GUI
return_screenshotstringnoneFormato de retorno de captura de pantalla ( none , as_file , as_base64 , as_imagecontent , as_imageurl )
as_file_target_folderstringRuta de la carpeta de destino para guardar capturas de pantalla cuando se utiliza el formato de retorno 'as_file'
sap_scrolldirectionstringDirección para desplazarse por la pantalla ('arriba' mueve el contenido hacia abajo, 'abajo' lo mueve hacia arriba)
return_screenshotstringnoneFormato de retorno de captura de pantalla ( none , as_file , as_base64 , as_imagecontent , as_imageurl )
as_file_target_folderstringRuta de la carpeta de destino para guardar capturas de pantalla cuando se utiliza el formato de retorno 'as_file'
end_transaction
save_last_screenshotfilenamestringRuta donde se guardará la captura de pantalla

Desarrollo

Ejecución de pruebas

  1. Servidor de prueba usando el inspector mcp (compilación + depuración):
./run.bat full
  1. O utilice el conjunto de pruebas: El conjunto de pruebas incluye pruebas en vivo que interactúan con SAP GUI. Asegúrese de tener SAP GUI instalado y configurado antes de ejecutar las pruebas.

Ejecutar pruebas:

run.bat test server

El conjunto de pruebas incluye:

  • Pruebas de SapGuiServer (test_server.py)
    • Registro de herramientas
    • Manejo de solicitudes
    • Formato de respuesta
    • Manejo de errores

Estructura del proyecto

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

Licencia

[Licencia MIT]

-
security - not tested
A
license - permissive license
-
quality - not tested

Automatiza las interacciones con SAP GUI utilizando el Protocolo de contexto de modelo, lo que permite un control preciso de las transacciones de SAP a través de herramientas como hacer clic, escribir, desplazarse y administrar transacciones.

  1. Requirements
    1. Installation
      1. Available Tools
        1. Transaction Management
        2. Interface Interaction
        3. Screen Capture
        4. Screenshot Return Formats
      2. Development
        1. Running Tests
      3. Project Structure
        1. License
          ID: jrsv7188i3