OmniMCP

by OpenAdaptAI
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Supports configuration via .env files for settings like debug mode, parser URL, and log levels

  • Integrates with GitHub for repository management, including cloning repositories and accessing project files

  • Provides testing infrastructure for validating OmniMCP functionality

OmniMCP

OmniMCP proporciona un contexto de interfaz de usuario completo y capacidades de interacción a los modelos de IA mediante el Protocolo de Contexto de Modelo (MCP) y Microsoft/OmniParser . Se centra en facilitar una comprensión profunda de las interfaces de usuario mediante el análisis visual, la planificación estructurada y la ejecución precisa de las interacciones.

Características principales

  • Percepción visual: comprende los elementos de la interfaz de usuario mediante OmniParser.
  • Planificación LLM: planifica las próximas acciones en función del objetivo, el historial y el estado visual.
  • Agente Ejecutor: Orquesta el ciclo percibir-planificar-actuar ( omnimcp/agent_executor.py ).
  • Ejecución de la acción: controla el mouse/teclado a través de pynput ( omnimcp/input.py ).
  • Interfaz CLI: punto de entrada simple ( cli.py ) para ejecutar tareas.
  • Implementación automática: implementación opcional del servidor OmniParser en AWS EC2 con apagado automático.
  • Depuración: genera registros visuales con marca de tiempo por paso.

Descripción general

cli.py usa AgentExecutor para ejecutar un bucle de percepción-planificación-acción. Captura la pantalla ( VisualState ), planifica usando un LLM ( core.plan_action_for_ui ) y ejecuta acciones ( InputController ).

Población

  • Acción real (Calculadora): python cli.py abre la Calculadora y calcula 5*9.
  • Interfaz de usuario sintética (Inicio de sesión): python demo_synthetic.py utiliza imágenes generadas (sin E/S real). (Nota: Refactorización pendiente para usar AgentExecutor).

Prerrequisitos

  • Python >=3.10, <3.13
  • uv instalado ( pip install uv )
  • Requisitos de ejecución de Linux: Requiere una sesión gráfica activa (X11/Wayland) para pynput . Puede requerir bibliotecas del sistema ( libx11-dev , etc.); consulte la documentación pynput .

(Las dependencias de escala de pantalla de macOS se manejan automáticamente durante la instalación).

Para funciones de implementación de AWS

Requiere credenciales de AWS en .env (consulte .env.example ). Advertencia: Crea recursos de AWS (EC2, Lambda, etc.) con costos. Use python -m omnimcp.omniparser.server stop para limpiar.

AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY ANTHROPIC_API_KEY=YOUR_ANTHROPIC_KEY # OMNIPARSER_URL=http://... # Optional: Skip auto-deploy

Instalación

git clone [https://github.com/OpenAdaptAI/OmniMCP.git](https://github.com/OpenAdaptAI/OmniMCP.git) cd OmniMCP ./install.sh # Creates .venv, installs deps incl. test extras cp .env.example .env # Edit .env with your keys # Activate: source .venv/bin/activate (Linux/macOS) or relevant Windows command

Inicio rápido

Asegúrese de que el entorno esté activado y que .env esté configurado.

# Run default goal (Calculator task) python cli.py # Run custom goal python cli.py --goal "Your goal here" # See options python cli.py --help

Las salidas de depuración se guardan en runs/<timestamp>/ .

Nota sobre el servidor MCP: existe un servidor MCP experimental (clase OmniMCP en omnimcp/mcp_server.py AgentExecutor pero está separado del flujo de trabajo principal cli.py .

Arquitectura

  1. CLI ( cli.py ): punto de entrada, configuración, inicia el ejecutor.
  2. Agente Ejecutor ( omnimcp/agent_executor.py ): orquesta el bucle y administra el estado y los artefactos.
  3. Visual State Manager ( omnimcp/visual_state.py ): Percepción (captura de pantalla, analizador de llamadas).
  4. OmniParser Client & Deploy ( omnimcp/omniparser/ ): administra la comunicación/implementación del servidor OmniParser.
  5. LLM Planner ( omnimcp/core.py ) - Genera un plan de acción.
  6. Controlador de entrada ( omnimcp/input.py ): ejecuta acciones (mouse/teclado).
  7. (Opcional) Servidor MCP ( omnimcp/mcp_server.py ): interfaz MCP experimental.

Desarrollo

Configuración y comprobaciones del entorno

# Setup (if not done): ./install.sh # Activate env: source .venv/bin/activate (or similar) # Format/Lint: uv run ruff format . && uv run ruff check . --fix # Run tests: uv run pytest tests/

Soporte de depuración

Al ejecutar python cli.py se guardan las ejecuciones con marca de tiempo en runs/ , incluidos:

  • step_N_state_raw.png
  • step_N_state_parsed.png (con cuadros de elementos)
  • step_N_action_highlight.png (con resaltado de acción)
  • final_state.png

Los registros detallados se encuentran en logs/run_YYYY-MM-DD_HH-mm-ss.log (se recomienda LOG_LEVEL=DEBUG en .env ).

# --- Initialization & Auto-Deploy --- 2025-MM-DD HH:MM:SS | INFO | omnimcp.omniparser.client:... - No server_url provided, attempting discovery/deployment... 2025-MM-DD HH:MM:SS | INFO | omnimcp.omniparser.server:... - Creating new EC2 instance... 2025-MM-DD HH:MM:SS | SUCCESS | omnimcp.omniparser.server:... - Instance i-... is running. Public IP: ... 2025-MM-DD HH:MM:SS | INFO | omnimcp.omniparser.server:... - Setting up auto-shutdown infrastructure... 2025-MM-DD HH:MM:SS | SUCCESS | omnimcp.omniparser.server:... - Auto-shutdown infrastructure setup completed... ... (SSH connection, Docker setup) ... 2025-MM-DD HH:MM:SS | SUCCESS | omnimcp.omniparser.client:... - Auto-deployment successful. Server URL: http://... ... (Agent Executor Init) ... # --- Agent Execution Loop Example Step --- 2025-MM-DD HH:MM:SS | INFO | omnimcp.agent_executor:run:... - --- Step N/10 --- 2025-MM-DD HH:MM:SS | DEBUG | omnimcp.agent_executor:run:... - Perceiving current screen state... 2025-MM-DD HH:MM:SS | INFO | omnimcp.visual_state:update:... - VisualState update complete. Found X elements. Took Y.YYs. 2025-MM-DD HH:MM:SS | INFO | omnimcp.agent_executor:run:... - Perceived state with X elements. ... (Save artifacts) ... 2025-MM-DD HH:MM:SS | DEBUG | omnimcp.agent_executor:run:... - Planning next action... ... (LLM Call) ... 2025-MM-DD HH:MM:SS | INFO | omnimcp.agent_executor:run:... - LLM Plan: Action=..., TargetID=..., GoalComplete=False 2025-MM-DD HH:MM:SS | DEBUG | omnimcp.agent_executor:run:... - Added to history: Step N: Planned action ... 2025-MM-DD HH:MM:SS | INFO | omnimcp.agent_executor:run:... - Executing action: ... 2025-MM-DD HH:MM:SS | SUCCESS | omnimcp.agent_executor:run:... - Action executed successfully. 2025-MM-DD HH:MM:SS | DEBUG | omnimcp.agent_executor:run:... - Step N duration: Z.ZZs ... (Loop continues or finishes) ...

(Nota: Los detalles como tiempos, conteos, direcciones IP, ID de instancias y planes específicos variarán)

Hoja de ruta y limitaciones

Limitaciones clave y áreas de trabajo futuras:

  • Rendimiento: reduzca la latencia de OmniParser (explore modelos locales, almacenamiento en caché, etc.) y optimice la gestión del estado (evite el reanálisis completo).
  • Robustez: Mejorar la confiabilidad de la planificación de LLM (indicaciones, técnicas como ReAct), agregar verificación de acciones/recuperación de errores, mejorar la focalización de elementos.
  • API/Arquitectura de destino: evolucionar hacia una API declarativa de nivel superior (por ejemplo, estilo @omni.publish ) y potencialmente integrar la lógica de bucle con el servidor MCP experimental (clase OmniMCP ).
  • Consistencia: refactorice demo_synthetic.py para utilizar AgentExecutor .
  • Características: Ampliar el espacio de acción (arrastrar y soltar, pasar el cursor).
  • Pruebas: agregar pruebas E2E, ampliar la validación multiplataforma, definir métricas de evaluación.
  • Investigación: Explorar el ajuste fino, los gráficos de procesos (RAG) y la integración del marco.

Estado del proyecto

AgentExecutor bucle principal mediante cli.py funciona para tareas básicas. El rendimiento y la robustez requieren mejoras significativas. La integración con MCP es experimental.

Contribuyendo

  1. Repositorio de bifurcaciones
  2. Crear rama de características
  3. Implementar cambios y agregar pruebas
  4. Asegúrese de que las comprobaciones pasen ( uv run ruff format . , uv run ruff check . --fix , uv run pytest tests/ )
  5. Enviar solicitud de extracción

Licencia

Licencia MIT

Contacto

-
security - not tested
F
license - not found
-
quality - not tested

Un servidor que proporciona un rico contexto de UI y capacidades de interacción para los modelos de IA, lo que permite una comprensión profunda de las interfaces de usuario a través del análisis visual y una interacción precisa mediante el Protocolo de Contexto de Modelo.

  1. Core Features
    1. Overview
      1. Demos
    2. Prerequisites
      1. For AWS Deployment Features
    3. Installation
      1. Quick Start
        1. Architecture
          1. Development
            1. Environment Setup & Checks
            2. Debug Support
          2. Roadmap & Limitations
            1. Project Status
              1. Contributing
                1. License
                  1. Contact
                    ID: gf61tqx1fu