Skip to main content
Glama

OmniMCP

CI Licencia: MIT Versión de Python Estilo de código: ruff

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.

Related MCP server: Playwright MCP Server

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.GIF de demostración de acción real de OmniMCP

  • 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).GIF de demostración sintética de OmniMCP

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OpenAdaptAI/OmniMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server