Desktop Automation
Automatize ações da área de trabalho e interaja com seu ambiente local usando aplicações de LLM.
Documentação
Desktop Automation MCP Server
Um servidor Model Context Protocol (MCP) que expõe capacidades de automação de desktop, permitindo que aplicações LLM interajam com seu ambiente de desktop por meio de ferramentas padronizadas.
Visão Geral
Este servidor MCP fornece uma ponte entre aplicações LLM e funcionalidades de automação de desktop. Ele expõe capacidades de automação de mouse, teclado e tela através do protocolo MCP, permitindo que assistentes de IA possam:
- Clicar, clicar com o botão direito e clicar duas vezes em coordenadas específicas
- Mover o cursor do mouse com movimento suave ou instantâneo
- Digitar texto com atrasos opcionais entre caracteres
- Pressionar teclas individuais ou combinações de teclas
- Obter a posição atual do cursor do mouse
- Capturar capturas de tela do desktop
- Obter dimensões da tela
Recursos
Automação de Mouse
- Clique: Clique esquerdo em coordenadas especificadas
- Clique Direito: Clique direito em coordenadas especificadas
- Clique Duplo: Clique duplo em coordenadas especificadas
- Mover Mouse: Move o cursor com animação suave opcional
- Obter Posição: Recupera as coordenadas atuais do mouse
Automação de Teclado
- Digitar Texto: Digita texto na posição atual do cursor
- Pressionar Tecla: Pressiona teclas individuais ou combinações de teclas
- Digitação com Atraso: Digita com atrasos configuráveis entre caracteres
Automação de Tela
- Capturar Tela: Captura a tela inteira e salva em arquivo
- Obter Tamanho da Tela: Recupera as dimensões da tela
Instalação
Pré-requisitos
- Go 1.23.0 ou posterior
- Task runner (opcional, para usar comandos do Taskfile)
# Install Task (optional)
go install github.com/go-task/task/v3/cmd/task@latest
Compilar a partir do Código Fonte
# 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
Executando o Servidor
O servidor usa transporte stdio para comunicação:
# Run directly
./mcp-server
# Or using Task
task run
Integração com Aplicações LLM
Configure sua aplicação LLM (Claude Desktop, etc.) para conectar-se a este servidor MCP:
{
"mcpServers": {
"desktop-automation": {
"command": "/path/to/mcp-server"
}
}
}
Ferramentas Disponíveis
click
Clique em coordenadas de tela especificadas.
Parâmetros:
x(número, obrigatório): Coordenada Xy(número, obrigatório): Coordenada Y
right_click
Clique direito em coordenadas de tela especificadas.
Parâmetros:
x(número, obrigatório): Coordenada Xy(número, obrigatório): Coordenada Y
double_click
Clique duplo em coordenadas de tela especificadas.
Parâmetros:
x(número, obrigatório): Coordenada Xy(número, obrigatório): Coordenada Y
move_mouse
Move o cursor do mouse para as coordenadas especificadas.
Parâmetros:
x(número, obrigatório): Coordenada Xy(número, obrigatório): Coordenada Ysmooth(booleano, opcional): Usar animação de movimento suaveduration(número, opcional): Duração do movimento suave em segundos (padrão: 1.0)
get_mouse_position
Obtém a posição atual do cursor do mouse.
Parâmetros: Nenhum
type_text
Digita texto na posição atual do cursor.
Parâmetros:
text(string, obrigatório): Texto a ser digitadodelay(número, opcional): Atraso entre caracteres em milissegundos
press_key
Pressiona uma tecla ou combinação de teclas.
Parâmetros:
key(string, obrigatório): Tecla a pressionar (ex.: 'enter', 'space', 'ctrl')modifiers(array, opcional): Teclas modificadoras (ex.: ['ctrl', 'shift'])
take_screenshot
Captura uma captura de tela.
Parâmetros:
path(string, opcional): Caminho para salvar a captura de tela (se não fornecido, salva no diretório temporário)
get_screen_size
Obtém as dimensões da tela.
Parâmetros: Nenhum
Arquitetura
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
Desenvolvimento
Comandos 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 Manuais
# Build
go build -o mcp-server ./cmd/mcp-server
# Run
./mcp-server
# Test
go test ./...
# Clean
go clean
rm -f mcp-server
Dependências
- github.com/mark3labs/mcp-go: Implementação do protocolo MCP para Go
- github.com/go-vgo/robotgo: Biblioteca de automação de desktop multiplataforma
Considerações de Segurança
- Limites da Tela: Todas as entradas de coordenadas são validadas contra as dimensões da tela
- Validação de Entrada: Coordenadas negativas e parâmetros inválidos são rejeitados
- Tratamento de Erros: Tratamento abrangente de erros com mensagens descritivas
- Recuperação: Recuperação de pânico integrada para operação robusta
Suporte a Plataformas
Este servidor suporta as mesmas plataformas que o robotgo:
- Windows
- macOS
- Linux
Contribuindo
- Faça um fork do repositório
- Crie um branch de funcionalidade
- Faça suas alterações
- Adicione testes se aplicável
- Envie um pull request
Licença
Este projeto segue a mesma licença do projeto desktop-automation original.
Projetos Relacionados
- desktop-automation: A ferramenta original de automação de desktop baseada em CLI
- mcp-go: Implementação em Go do Model Context Protocol