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)
Related MCP server: Supabase MCP Server
Instalación
Clonar la carpeta github y ejecutar la instalación automatizada usando el script de configuración:
setup.batEsto lo guiará a través del proceso de compilación y lo integrará directamente en Cline o Roo, si así lo selecciona.
O Instalación manual mediante script de compilación..:
build.batConfigurar las credenciales de SAP:
Copiar
.env.examplea.envActualice los valores con sus credenciales de SAP
Servidor de prueba usando el inspector mcp:
run.bat debugUtilice el script de integración para configurar automáticamente los ajustes de MCP:
integrate.bat cline # Configure for Cline
integrate.bat roo # Configure for RooEl 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": []
}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 conventionHerramientas 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íficoend_transaction: Finaliza la transacción SAP actual
Interacción de interfaz
sap_click: Haga clic en coordenadas específicas en la ventana de SAP GUIsap_move_mouse: Mueve el cursor del ratón a coordenadas específicassap_type: Escribe texto en la posición actual del cursorsap_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 :
none(predeterminado): solo devuelve mensajes de éxito/error
{
"type": "text",
"text": "Status: success"
}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.
as_base64: Devuelve la cadena base64 sin procesar
{
"type": "text",
"text": "base64_encoded_string_here"
}as_imagecontent: Devuelve el objeto ImageContent de MCP
{
"type": "image",
"data": "base64_encoded_string_here",
"mimeType": "image/png"
}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:
Herramienta | Parámetro | Tipo | Por defecto | Descripción |
|
|
| Código de transacción de SAP para el lanzamiento (por ejemplo, VA01, ME21N, MM03) | |
|
|
| Formato de retorno de captura de pantalla ( | |
|
| Ruta de la carpeta de destino para guardar capturas de pantalla cuando se utiliza el formato de retorno 'as_file' | ||
|
|
| Coordenada de píxel horizontal (0-1920) donde debe producirse el clic | |
|
| Coordenada de píxel vertical (0-1080) donde debe ocurrir el clic | ||
|
|
| Formato de retorno de captura de pantalla ( | |
|
| Ruta de la carpeta de destino para guardar capturas de pantalla cuando se utiliza el formato de retorno 'as_file' | ||
|
|
| Coordenada de píxel horizontal (0-1920) para mover el cursor | |
|
| Coordenada de píxel vertical (0-1080) para mover el cursor | ||
|
|
| Formato de retorno de captura de pantalla ( | |
|
| Ruta de la carpeta de destino para guardar capturas de pantalla cuando se utiliza el formato de retorno 'as_file' | ||
|
|
| Texto a introducir en la posición actual del cursor en la ventana de SAP GUI | |
|
|
| Formato de retorno de captura de pantalla ( | |
|
| Ruta de la carpeta de destino para guardar capturas de pantalla cuando se utiliza el formato de retorno 'as_file' | ||
|
|
| Dirección para desplazarse por la pantalla ('arriba' mueve el contenido hacia abajo, 'abajo' lo mueve hacia arriba) | |
|
|
| Formato de retorno de captura de pantalla ( | |
|
| Ruta de la carpeta de destino para guardar capturas de pantalla cuando se utiliza el formato de retorno 'as_file' | ||
| ||||
|
|
| Ruta donde se guardará la captura de pantalla |
Desarrollo
Ejecución de pruebas
Servidor de prueba usando el inspector mcp (compilación + depuración):
./run.bat fullO 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 serverEl 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 dependenciesLicencia
[Licencia MIT]