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 X
  • y (número, obrigatório): Coordenada Y

right_click

Clique direito em coordenadas de tela especificadas.

Parâmetros:

  • x (número, obrigatório): Coordenada X
  • y (número, obrigatório): Coordenada Y

double_click

Clique duplo em coordenadas de tela especificadas.

Parâmetros:

  • x (número, obrigatório): Coordenada X
  • y (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 X
  • y (número, obrigatório): Coordenada Y
  • smooth (booleano, opcional): Usar animação de movimento suave
  • duration (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 digitado
  • delay (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

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

  1. Faça um fork do repositório
  2. Crie um branch de funcionalidade
  3. Faça suas alterações
  4. Adicione testes se aplicável
  5. 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