MCPComputerUse
Un servidor MCP nativo en C# para la automatización de Windows mediante integración directa con la API de Windows. Se ejecuta como un ejecutable autónomo sin necesidad de un runtime adicional.
Documentación
MCPComputerUse - Servidor MCP de Uso de Computadora en C#
Una implementación nativa en C# de un Servidor MCP de Uso de Computadora para Windows, que proporciona capacidades de automatización superiores mediante la integración directa con la API de Windows.
🚀 Características
- Captura de Pantalla: Soporte para múltiples monitores con direccionamiento flexible
- Gestión de Ventanas: Enumeración y control completo de ventanas
- Automatización del Ratón: Clic preciso, movimiento y desplazamiento
- Automatización del Teclado: Escritura de texto y combinaciones de teclas
- Sistema de Macros: Secuencias de automatización complejas
- Protocolo MCP: Cumplimiento total con la especificación MCP
- Alto Rendimiento: Integración nativa con la API de Windows
- Cero Dependencias: Ejecutable autocontenido
🛠️ Herramientas Disponibles
Herramientas de Captura de Pantalla
computer-use:take_screenshot- Tomar capturas de pantalla con direccionamiento flexible- Soporte para configuraciones de múltiples monitores
- Capturas específicas de ventanas
- Formatos de salida configurables
Gestión de Ventanas
computer-use:list_windows- Listar todas las ventanas visiblescomputer-use:get_active_window- Obtener información de la ventana activa actualcomputer-use:focus_window- Enfocar una ventana por ID o nombrecomputer-use:manage_window- Minimizar, maximizar y restaurar ventanas
Automatización de Entrada
computer-use:mouse_click- Hacer clic en coordenadas con opciones de botóncomputer-use:mouse_move- Mover el ratón a coordenadascomputer-use:type_text- Escribir texto con soporte Unicodecomputer-use:press_key- Presionar teclas con soporte de modificadorescomputer-use:scroll- Desplazarse en coordenadas específicas
Sistema de Macros
computer-use:run_macro- Ejecutar secuencias de automatización complejas- Soporte para todas las acciones de automatización
- Manejo de errores y reportes
- Temporización configurable
Información del Sistema
computer-use:get_server_capabilities- Obtener capacidades y estado del servidor
🏗️ Arquitectura
Componentes Principales
- MCPComputerUse.exe - Aplicación de consola principal con protocolo MCP
- WindowsAutomation.dll - Biblioteca nativa de automatización de la API de Windows
- MCPProtocol.dll - Implementación de la especificación MCP
Pila Tecnológica
- .NET 8.0 - Último framework LTS
- Windows Forms - Para soporte de captura de pantalla
- System.Drawing - Manipulación de imágenes
- Newtonsoft.Json - Serialización JSON
- APIs nativas de Windows - Integración directa mediante P/Invoke
📦 Instalación
Requisitos Previos
- Windows 10 o Windows 11
- No se requiere runtime adicional (autocontenido)
Descarga
- Descargar la última versión desde GitHub
- Extraer
MCPComputerUse.exea la ubicación deseada - No se requiere instalación - archivo ejecutable único
Integración con Claude Desktop
Agregar a la configuración de Claude Desktop:
{
"mcpServers": {
"computer-use": {
"command": "c:/path/to/MCPComputerUse.exe",
"args": []
}
}
}
🔧 Compilación desde el Código Fuente
Requisitos
- Visual Studio 2022 o VS Code con extensión de C#
- SDK de .NET 8.0
- Máquina de desarrollo con Windows 10/11
Pasos de Compilación
# 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
El ejecutable resultante estará en la carpeta ./publish.
📖 Ejemplos de Uso
Tomar Capturas de Pantalla
{
"method": "tools/call",
"params": {
"name": "computer-use:take_screenshot",
"arguments": {
"target": "screen",
"filename": "desktop_capture"
}
}
}
Automatizar Clics del Ratón
{
"method": "tools/call",
"params": {
"name": "computer-use:mouse_click",
"arguments": {
"x": 500,
"y": 300,
"button": "left",
"clicks": 2
}
}
}
Ejecutar 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"
}
]
}
}
}
🔍 Solución de Problemas
Problemas Comunes
Errores de Permisos
- Asegurarse de que el ejecutable tenga permiso para capturar pantallas
- Algunas aplicaciones pueden requerir ejecución como administrador
Problemas de Enfoque de Ventanas
- Las aplicaciones protegidas por UAC pueden no responder a comandos de enfoque
- Intentar usar IDs de ventana en lugar de títulos para mayor confiabilidad
Problemas de Captura de Pantalla
- Verificar el índice de pantalla en configuraciones de múltiples monitores
- Confirmar que la ventana objetivo existe y es visible
Registro de Actividad
La aplicación registra en la salida de consola. Usar los siguientes niveles de registro:
- Información: Estado general de operación
- Depuración: Información detallada de ejecución
- Error: Condiciones de error y fallos
🚀 Rendimiento
Puntos de Referencia
- Captura de pantalla: <100ms para 1920x1080
- Enumeración de ventanas: <50ms para 100 ventanas
- Acciones de ratón/teclado: <10ms por acción
- Ejecución de macros: 100ms entre comandos (configurable)
Uso de Memoria
- Memoria base: <50MB
- Por captura de pantalla: <10MB temporal
- Caché de ventanas: <5MB
🔒 Seguridad
Permisos
- No se requiere elevación para operaciones básicas
- Windows puede solicitar permisos de captura de pantalla
- La simulación de entrada funciona con la mayoría de las aplicaciones
Características de Seguridad
- La validación de coordenadas previene operaciones fuera de límites
- La limitación de velocidad previene inundación de entrada
- Secuencias de detención de emergencia disponibles
🤝 Contribuciones
¡Las contribuciones son bienvenidas! Por favor, seguir estas pautas:
- Hacer un fork del repositorio
- Crear una rama de características
- Escribir pruebas para la nueva funcionalidad
- Asegurarse de que todas las pruebas pasen
- Enviar una solicitud de extracción
Configuración de Desarrollo
# Clone your fork
git clone <your-fork-url>
cd MCPComputerUse
# Install dependencies
dotnet restore
# Run tests
dotnet test
# Start development
code .
📋 Hoja de Ruta
Próximas Características
- Integración OCR - Reconocimiento de texto desde capturas de pantalla
- Coincidencia de Imágenes - Encontrar elementos de interfaz por plantilla
- Grabación de Macros - Grabar acciones de usuario automáticamente
- Sistema de Plugins - Arquitectura extensible
- Automatización de Interfaz - Integración con la API de accesibilidad de Windows
Mejoras de Rendimiento
- Operaciones Asíncronas - Mejor capacidad de respuesta
- Caché - Reducción de llamadas a la API
- Optimización - Captura de pantalla más rápida
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
🙏 Agradecimientos
- Microsoft por la plataforma .NET
- Anthropic por la especificación MCP
- La comunidad de código abierto por la inspiración y las bibliotecas
📞 Soporte
Para soporte y preguntas:
- Crear un issue en GitHub
- Consultar la guía de solución de problemas
- Revisar issues y discusiones existentes
Construido con ❤️ para la comunidad de automatización de Windows