Desktop Automation
Automatiza acciones del escritorio e interactúa con tu entorno local usando aplicaciones LLM.
Documentación
Servidor MCP de Automatización de Escritorio
Un servidor de Model Context Protocol (MCP) que expone capacidades de automatización de escritorio, permitiendo que aplicaciones LLM interactúen con tu entorno de escritorio mediante herramientas estandarizadas.
Descripción General
Este servidor MCP proporciona un puente entre aplicaciones LLM y la funcionalidad de automatización de escritorio. Expone capacidades de automatización de mouse, teclado y pantalla a través del protocolo MCP, permitiendo que los asistentes de IA puedan:
- Hacer clic, clic derecho y doble clic en coordenadas específicas
- Mover el cursor del mouse con movimiento suave o instantáneo
- Escribir texto con retrasos opcionales entre caracteres
- Presionar teclas individuales o combinaciones de teclas
- Obtener la posición actual del cursor del mouse
- Capturar capturas de pantalla del escritorio
- Obtener las dimensiones de la pantalla
Características
Automatización del Mouse
- Clic: Clic izquierdo en coordenadas especificadas
- Clic Derecho: Clic derecho en coordenadas especificadas
- Doble Clic: Doble clic en coordenadas especificadas
- Mover Mouse: Mover el cursor con animación suave opcional
- Obtener Posición: Recuperar las coordenadas actuales del mouse
Automatización del Teclado
- Escribir Texto: Escribir texto en la posición actual del cursor
- Presionar Tecla: Presionar teclas individuales o combinaciones de teclas
- Escritura con Retraso: Escribir con retrasos configurables entre caracteres
Automatización de Pantalla
- Tomar Captura: Capturar la pantalla completa y guardar en un archivo
- Obtener Tamaño de Pantalla: Recuperar las dimensiones de la pantalla
Instalación
Requisitos Previos
- Go 1.23.0 o posterior
- Ejecutor de tareas (opcional, para usar comandos de Taskfile)
# Install Task (optional)
go install github.com/go-task/task/v3/cmd/task@latest
Compilar desde el Código Fuente
# Clone the repository (if not already available)
git clone <repository-url>
cd desktop-automation-mcp
# Download dependencies
go mod download
go mod tidy
# Build the server
go build -o mcp-server ./cmd/mcp-server
# Or using Task
task build
Uso
Ejecutando el Servidor
El servidor utiliza transporte stdio para la comunicación:
# Run directly
./mcp-server
# Or using Task
task run
Integración con Aplicaciones LLM
Configura tu aplicación LLM (Claude Desktop, etc.) para conectarse a este servidor MCP:
{
"mcpServers": {
"desktop-automation": {
"command": "/path/to/mcp-server"
}
}
}
Herramientas Disponibles
click
Haz clic en coordenadas de pantalla especificadas.
Parámetros:
x(número, obligatorio): Coordenada Xy(número, obligatorio): Coordenada Y
right_click
Haz clic derecho en coordenadas de pantalla especificadas.
Parámetros:
x(número, obligatorio): Coordenada Xy(número, obligatorio): Coordenada Y
double_click
Haz doble clic en coordenadas de pantalla especificadas.
Parámetros:
x(número, obligatorio): Coordenada Xy(número, obligatorio): Coordenada Y
move_mouse
Mueve el cursor del mouse a coordenadas especificadas.
Parámetros:
x(número, obligatorio): Coordenada Xy(número, obligatorio): Coordenada Ysmooth(booleano, opcional): Usar animación de movimiento suaveduration(número, opcional): Duración del movimiento suave en segundos (predeterminado: 1.0)
get_mouse_position
Obtiene la posición actual del cursor del mouse.
Parámetros: Ninguno
type_text
Escribe texto en la posición actual del cursor.
Parámetros:
text(cadena, obligatorio): Texto a escribirdelay(número, opcional): Retraso entre caracteres en milisegundos
press_key
Presiona una tecla o combinación de teclas.
Parámetros:
key(cadena, obligatorio): Tecla a presionar (p. ej., 'enter', 'space', 'ctrl')modifiers(matriz, opcional): Teclas modificadoras (p. ej., ['ctrl', 'shift'])
take_screenshot
Captura una captura de pantalla de la pantalla.
Parámetros:
path(cadena, opcional): Ruta para guardar la captura de pantalla (si no se proporciona, se guarda en el directorio temporal)
get_screen_size
Obtiene las dimensiones de la pantalla.
Parámetros: Ninguno
Arquitectura
desktop-automation-mcp/
├── cmd/
│ └── mcp-server/ # MCP server entry point
│ └── main.go
├── internal/
│ └── automation/ # Desktop automation logic (copied from desktop-automation)
│ ├── keyboard.go
│ ├── mouse.go
│ └── screen.go
├── go.mod # Go module definition
├── Taskfile.yml # Task runner configuration
├── .gitignore # Git ignore rules
└── README.md # This file
Desarrollo
Comandos de Task
# Build the server
task build
# Run the server
task run
# Clean build artifacts
task clean
# Download and tidy dependencies
task deps
# Run tests
task test
# Install to GOPATH/bin
task install
Comandos Manuales
# Build
go build -o mcp-server ./cmd/mcp-server
# Run
./mcp-server
# Test
go test ./...
# Clean
go clean
rm -f mcp-server
Dependencias
- github.com/mark3labs/mcp-go: Implementación del protocolo MCP para Go
- github.com/go-vgo/robotgo: Biblioteca de automatización de escritorio multiplataforma
Consideraciones de Seguridad
- Límites de Pantalla: Todas las entradas de coordenadas se validan contra las dimensiones de la pantalla
- Validación de Entrada: Se rechazan coordenadas negativas y parámetros inválidos
- Manejo de Errores: Manejo integral de errores con mensajes descriptivos
- Recuperación: Recuperación de pánico integrada para una operación robusta
Soporte de Plataformas
Este servidor soporta las mismas plataformas que robotgo:
- Windows
- macOS
- Linux
Contribuciones
- Haz un fork del repositorio
- Crea una rama de características
- Realiza tus cambios
- Agrega pruebas si corresponde
- Envía una solicitud de extracción (pull request)
Licencia
Este proyecto sigue la misma licencia que el proyecto principal desktop-automation.
Proyectos Relacionados
- desktop-automation: La herramienta original de automatización de escritorio basada en CLI
- mcp-go: Implementación en Go del Model Context Protocol