MCP Operator

by willer
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Enables search and browsing of products on Amazon through browser automation, with an example project named 'amazon-shopping' for searching items like dinner plates.

  • Integrates with OpenAI's Computer Use API to interpret and execute natural language instructions for browser automation, supporting a wide range of actions like clicking, typing, and scrolling.

Operador de navegador MCP

Un servidor de Protocolo de Control de Modelos (MCP) para la automatización del navegador que permite a los LLM controlar un navegador web, interactuar con páginas web y analizar contenido web a través de una interfaz JSON-RPC estandarizada.

Características

  • Administración del navegador : crear, navegar, operar y cerrar instancias del navegador
  • Gestión de trabajos : seguimiento del estado de las operaciones del navegador con identificadores de trabajos
  • Interacción web : ejecute instrucciones en lenguaje natural utilizando la API de uso informático de OpenAI
  • Herramientas del navegador : acceda a registros de la consola, actividad de red, capturas de pantalla y más
  • Auditoría : ejecutar auditorías de accesibilidad, rendimiento, SEO y otras páginas web.

Requisitos

  • Python 3.11+
  • Dramaturgo
  • Clave API de OpenAI (para la API de uso de computadoras)

Instalación

  1. Clonar este repositorio:
    git clone https://github.com/yourusername/operator-mcp.git cd operator-mcp
  2. Instalar dependencias:
    pip install -e .
  3. Instalar navegadores Playwright:
    playwright install chromium
  4. Establezca su clave API de OpenAI:
    export OPENAI_API_KEY=your-api-key

Uso

Inicie el servidor MCP:

./run-server

El servidor escucha solicitudes JSON-RPC en stdin y responde en stdout, siguiendo el protocolo MCP.

Scripts ejecutables

  • run-server : ejecuta el servidor MCP (punto de entrada principal)
    # Run the MCP server ./run-server # Run with specific log directory ./run-server --log-dir /path/to/logs # Run in debug mode ./run-server --debug
  • run-tests : ejecuta todas las pruebas (con opciones solo para unidades o integración)
    # Run all tests ./run-tests # Run only unit tests (faster) ./run-tests --unit-only # Run only integration tests ./run-tests --integration-only # Run with verbose output ./run-tests --verbose # Run a specific test ./run-tests --test TestBrowserOperatorMethods
  • run-test-harness : ejecuta el servidor con MCP Inspector para pruebas interactivas
    # Run with the MCP Inspector for interactive testing ./run-test-harness

Métodos básicos

Administración del navegador

  • Crear navegador : inicializa una nueva instancia del navegador
    { "jsonrpc": "2.0", "id": 1, "method": "mcp__browser-operator__create-browser", "params": { "project_name": "my-project" } }
  • Navegar por el navegador : dirige el navegador a una URL específica
    { "jsonrpc": "2.0", "id": 2, "method": "mcp__browser-operator__navigate-browser", "params": { "project_name": "my-project", "url": "https://example.com" } }
  • Operar navegador : ejecutar instrucciones en lenguaje natural para la interacción con el navegador
    { "jsonrpc": "2.0", "id": 3, "method": "mcp__browser-operator__operate-browser", "params": { "project_name": "my-project", "instruction": "Find the heading on this page and tell me what it says." } }
  • Cerrar navegador : finalizar una instancia del navegador
    { "jsonrpc": "2.0", "id": 4, "method": "mcp__browser-operator__close-browser", "params": { "project_name": "my-project" } }

Gestión de trabajos

  • Obtener estado del trabajo : recupera el estado y el resultado de una operación por ID de trabajo
    { "jsonrpc": "2.0", "id": 5, "method": "mcp__browser-operator__get-job-status", "params": { "job_id": "job-12345" } }
  • Lista de trabajos : ver trabajos recientes de operación del navegador
    { "jsonrpc": "2.0", "id": 6, "method": "mcp__browser-operator__list-jobs", "params": { "limit": 10 } }

Notas de usuario

  • Agregar nota : crea y almacena notas relacionadas con las operaciones del navegador
    { "jsonrpc": "2.0", "id": 7, "method": "mcp__browser-operator__add-note", "params": { "name": "My Note", "content": "Important information about this browser session" } }

Métodos adicionales

Herramientas de depuración del navegador

  • Obtener registros de la consola : mcp__browser-tools__getConsoleLogs
  • Obtener errores de consola : mcp__browser-tools__getConsoleErrors
  • Obtener registros de red : mcp__browser-tools__getNetworkLogs
  • Obtener errores de red : mcp__browser-tools__getNetworkErrors
  • Tomar captura de pantalla : mcp__browser-tools__takeScreenshot
  • Obtener elemento seleccionado : mcp__browser-tools__getSelectedElement
  • Borrar registros : mcp__browser-tools__wipeLogs

Herramientas de auditoría

  • Ejecutar auditoría de accesibilidad : mcp__browser-tools__runAccessibilityAudit
  • Ejecutar auditoría de rendimiento : mcp__browser-tools__runPerformanceAudit
  • Ejecutar auditoría SEO : mcp__browser-tools__runSEOAudit
  • Ejecutar auditoría de NextJS : mcp__browser-tools__runNextJSAudit
  • Ejecutar auditoría de mejores prácticas : mcp__browser-tools__runBestPracticesAudit
  • Ejecutar modo depurador : mcp__browser-tools__runDebuggerMode
  • Ejecutar modo auditoría : mcp__browser-tools__runAuditMode

Patrón de flujo de trabajo asincrónico

Las operaciones del navegador son asincrónicas y utilizan un enfoque basado en trabajos:

  1. Operación de inicio : llamar a un método del navegador que devuelve un job_id
  2. Encuesta de finalización : utilice get-job-status hasta que se complete el trabajo
  3. Resultados del proceso : cuando se completa el trabajo, acceda a los resultados desde el estado del trabajo

Este enfoque evita los tiempos de espera del cliente y al mismo tiempo permite completar operaciones complejas del navegador.

Estado persistente del navegador

El operador MCP mantiene un estado persistente cuando se crean navegadores con un nombre de proyecto:

  • El estado del navegador (cookies, almacenamiento local, almacenamiento de sesión) se conserva entre sesiones
  • Varios proyectos pueden mantener estados de navegador independientes
  • Útil para mantener sesiones de inicio de sesión, carritos de compra u otros estados personalizados.

Estructura del proyecto

  • src/mcp_operator/ : Paquete principal
    • __init__.py : Inicialización del paquete
    • __main__.py : Punto de entrada para el paquete
    • server.py : implementación del servidor MCP
    • browser.py : Implementación del operador del navegador
    • cua/ : Componentes de la API de uso informático
      • agent.py : Implementación del agente
      • computer.py : Interfaz de computadora
      • utils.py : Funciones de utilidad
  • run-server : Script para ejecutar el servidor MCP
  • run-tests : Script para ejecutar pruebas unitarias y de integración
  • run-test-harness : Script para ejecutar con MCP Inspector

Desarrollo

Uso del inspector MCP

Para depurar, utilice el Inspector MCP :

# Use the included run-test-harness script ./run-test-harness # Or directly: npx @modelcontextprotocol/inspector ./run-server

Esto proporciona una interfaz web para probar su servidor MCP.

Seguridad

  • Bloqueo de dominios para sitios potencialmente dañinos
  • Validación de URL antes de la navegación
  • Aislamiento de sesiones entre diferentes instancias del navegador
  • Registro basado en archivos (sin stdout para preservar el protocolo MCP)
-
security - not tested
F
license - not found
-
quality - not tested

Un servidor de automatización del navegador web que permite a los asistentes de IA controlar Chrome con gestión de estado persistente, lo que habilita tareas de navegación complejas a través de operaciones de navegador asincrónicas.

  1. Features
    1. Requirements
      1. Installation
        1. Usage
          1. Executable Scripts
          2. Core Methods
          3. Additional Methods
        2. Asynchronous Workflow Pattern
          1. Persistent Browser State
            1. Project Structure
              1. Development
                1. Using MCP Inspector
              2. Security
                ID: 0junur1axn