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íveiscomputer-use:get_active_window- Obtenha informações da janela ativa no momentocomputer-use:focus_window- Foque uma janela por ID ou nomecomputer-use:manage_window- Minimize, maximize e restaure janelas
Automação de Entrada
computer-use:mouse_click- Clique em coordenadas com opções de botãocomputer-use:mouse_move- Mova o mouse para coordenadascomputer-use:type_text- Digite texto com suporte a Unicodecomputer-use:press_key- Pressione teclas com suporte a modificadorescomputer-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
- Baixe a versão mais recente do GitHub
- Extraia
MCPComputerUse.exepara o local desejado - 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:
- Faça um fork do repositório
- Crie um branch de funcionalidade
- Escreva testes para novas funcionalidades
- Garanta que todos os testes passem
- 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