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 visibles
  • computer-use:get_active_window - Obtener información de la ventana activa actual
  • computer-use:focus_window - Enfocar una ventana por ID o nombre
  • computer-use:manage_window - Minimizar, maximizar y restaurar ventanas

Automatización de Entrada

  • computer-use:mouse_click - Hacer clic en coordenadas con opciones de botón
  • computer-use:mouse_move - Mover el ratón a coordenadas
  • computer-use:type_text - Escribir texto con soporte Unicode
  • computer-use:press_key - Presionar teclas con soporte de modificadores
  • computer-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

  1. Descargar la última versión desde GitHub
  2. Extraer MCPComputerUse.exe a la ubicación deseada
  3. 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:

  1. Hacer un fork del repositorio
  2. Crear una rama de características
  3. Escribir pruebas para la nueva funcionalidad
  4. Asegurarse de que todas las pruebas pasen
  5. 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