MCPComputerUse

Um servidor MCP nativo em C# para automação do Windows usando integração direta com a API do Windows. Ele é executado como um executável autossuficiente sem necessidade de runtime adicional.

Documentação

MCPComputerUse - Servidor MCP de Uso de Computador em C#

Uma implementação nativa em C# de um Servidor MCP de Uso de Computador para Windows, oferecendo capacidades superiores de automação por meio da integração direta com a API do Windows.

🚀 Recursos

  • Captura de Tela: Suporte a múltiplos monitores com direcionamento flexível
  • Gerenciamento de Janelas: Enumeração e controle completo de janelas
  • Automação de Mouse: Cliques, movimentos e rolagem precisos
  • Automação de Teclado: Digitação de texto e combinações de teclas
  • Sistema de Macros: Sequências complexas de automação
  • Protocolo MCP: Conformidade total com a especificação MCP
  • Alto Desempenho: Integração nativa com a API do Windows
  • Zero Dependências: Executável autossuficiente

🛠️ Ferramentas Disponíveis

Ferramentas de Captura de Tela

  • computer-use:take_screenshot - Tire capturas de tela com direcionamento flexível
  • Suporte para configurações de múltiplos monitores
  • Capturas específicas de janelas
  • Formatos de saída configuráveis

Gerenciamento de Janelas

  • computer-use:list_windows - Liste todas as janelas visíveis
  • computer-use:get_active_window - Obtenha informações da janela ativa no momento
  • computer-use:focus_window - Foque uma janela por ID ou nome
  • computer-use:manage_window - Minimize, maximize e restaure janelas

Automação de Entrada

  • computer-use:mouse_click - Clique em coordenadas com opções de botão
  • computer-use:mouse_move - Mova o mouse para coordenadas
  • computer-use:type_text - Digite texto com suporte a Unicode
  • computer-use:press_key - Pressione teclas com suporte a modificadores
  • computer-use:scroll - Role em coordenadas específicas

Sistema de Macros

  • computer-use:run_macro - Execute sequências complexas de automação
  • Suporte para todas as ações de automação
  • Tratamento de erros e relatórios
  • Temporização configurável

Informações do Sistema

  • computer-use:get_server_capabilities - Obtenha capacidades e status do servidor

🏗️ Arquitetura

Componentes Principais

  • MCPComputerUse.exe - Aplicação de console principal com protocolo MCP
  • WindowsAutomation.dll - Biblioteca nativa de automação da API do Windows
  • MCPProtocol.dll - Implementação da especificação MCP

Pilha de Tecnologia

  • .NET 8.0 - Framework LTS mais recente
  • Windows Forms - Para suporte à captura de tela
  • System.Drawing - Manipulação de imagens
  • Newtonsoft.Json - Serialização JSON
  • APIs nativas do Windows - Integração direta via P/Invoke

📦 Instalação

Pré-requisitos

  • Windows 10 ou Windows 11
  • Nenhum runtime adicional necessário (autossuficiente)

Download

  1. Baixe a versão mais recente do GitHub
  2. Extraia MCPComputerUse.exe para o local desejado
  3. Nenhuma instalação necessária - arquivo executável único

Integração com Claude Desktop

Adicione à sua configuração do Claude Desktop:

{
  "mcpServers": {
    "computer-use": {
      "command": "c:/path/to/MCPComputerUse.exe",
      "args": []
    }
  }
}

🔧 Compilando a partir do Código-Fonte

Requisitos

  • Visual Studio 2022 ou VS Code com extensão C#
  • SDK .NET 8.0
  • Máquina de desenvolvimento com Windows 10/11

Etapas de Compilação

# Clone the repository
git clone <repository-url>
cd MCPComputerUse

# Restore dependencies
dotnet restore

# Build solution
dotnet build --configuration Release

# Publish self-contained executable
dotnet publish src/MCPComputerUse -c Release -r win-x64 --self-contained -o ./publish

O executável resultante estará na pasta ./publish.

📖 Exemplos de Uso

Tirando Capturas de Tela

{
  "method": "tools/call",
  "params": {
    "name": "computer-use:take_screenshot",
    "arguments": {
      "target": "screen",
      "filename": "desktop_capture"
    }
  }
}

Automatizando Cliques do Mouse

{
  "method": "tools/call", 
  "params": {
    "name": "computer-use:mouse_click",
    "arguments": {
      "x": 500,
      "y": 300,
      "button": "left",
      "clicks": 2
    }
  }
}

Executando Macros

{
  "method": "tools/call",
  "params": {
    "name": "computer-use:run_macro",
    "arguments": {
      "commands": [
        {
          "action": "click",
          "x": 100,
          "y": 100
        },
        {
          "action": "type",
          "text": "Hello World"
        },
        {
          "action": "key",
          "key": "enter"
        }
      ]
    }
  }
}

🔍 Solução de Problemas

Problemas Comuns

Erros de Permissão

  • Garanta que o executável tenha permissão para capturar telas
  • Alguns aplicativos podem exigir execução como administrador

Problemas de Foco de Janela

  • Aplicativos protegidos por UAC podem não responder a comandos de foco
  • Tente usar IDs de janela em vez de títulos para maior confiabilidade

Problemas de Captura de Tela

  • Verifique o índice de exibição para configurações de múltiplos monitores
  • Confirme se a janela de destino existe e está visível

Registro de Logs

O aplicativo registra logs na saída do console. Use os seguintes níveis de log:

  • Information: Status geral da operação
  • Debug: Informações detalhadas de execução
  • Error: Condições de erro e falhas

🚀 Desempenho

Benchmarks

  • Captura de tela: <100ms para 1920x1080
  • Enumeração de janelas: <50ms para 100 janelas
  • Ações de mouse/teclado: <10ms por ação
  • Execução de macros: 100ms entre comandos (configurável)

Uso de Memória

  • Memória base: <50MB
  • Por captura de tela: <10MB temporário
  • Cache de janelas: <5MB

🔒 Segurança

Permissões

  • Nenhuma elevação necessária para operações básicas
  • Permissões de captura de tela podem ser solicitadas pelo Windows
  • A simulação de entrada funciona com a maioria dos aplicativos

Recursos de Segurança

  • Validação de coordenadas evita operações fora dos limites
  • Limitação de taxa evita inundação de entrada
  • Sequências de parada de emergência disponíveis

🤝 Contribuindo

Contribuições são bem-vindas! Por favor, siga estas diretrizes:

  1. Faça um fork do repositório
  2. Crie um branch de funcionalidade
  3. Escreva testes para novas funcionalidades
  4. Garanta que todos os testes passem
  5. Envie um pull request

Configuração de Desenvolvimento

# Clone your fork
git clone <your-fork-url>
cd MCPComputerUse

# Install dependencies
dotnet restore

# Run tests
dotnet test

# Start development
code .

📋 Roadmap

Próximos Recursos

  • Integração OCR - Reconhecimento de texto em capturas de tela
  • Correspondência de Imagens - Encontre elementos de UI por modelo
  • Gravação de Macros - Grave ações do usuário automaticamente
  • Sistema de Plugins - Arquitetura extensível
  • Automação de UI - Integração com a API de acessibilidade do Windows

Melhorias de Desempenho

  • Operações Assíncronas - Melhor responsividade
  • Cache - Redução de chamadas de API
  • Otimização - Captura de tela mais rápida

📄 Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes.

🙏 Agradecimentos

  • Microsoft pela plataforma .NET
  • Anthropic pela especificação MCP
  • A comunidade de código aberto por inspiração e bibliotecas

📞 Suporte

Para suporte e dúvidas:

  • Crie um issue no GitHub
  • Consulte o guia de solução de problemas
  • Revise issues e discussões existentes

Feito com ❤️ para a comunidade de automação do Windows