Skip to main content
Glama
qontinui
by qontinui

qontinui-mcp

Servidor MCP ligero para Qontinui Runner: habilita la automatización visual impulsada por IA.

Instalación

pip install qontinui-mcp

Related MCP server: RPA MCP Server

Inicio rápido

  1. Inicie el Qontinui Runner (aplicación de escritorio)

  2. Configure su cliente de IA (Claude Desktop, Claude Code, Cursor, etc.)

Añada a su configuración de MCP:

{
  "mcpServers": {
    "qontinui": {
      "command": "qontinui-mcp",
      "args": []
    }
  }
}
  1. Ejecute flujos de trabajo mediante IA

La IA ahora puede:

  • Cargar archivos de configuración de flujo de trabajo

  • Ejecutar flujos de trabajo de automatización visual

  • Monitorear el estado de ejecución

  • Controlar qué monitor utilizar

Configuración

Variables de entorno:

Variable

Descripción

Predeterminado

QONTINUI_RUNNER_HOST

Dirección del host del Runner

Detección automática (compatible con WSL)

QONTINUI_RUNNER_PORT

Puerto HTTP del Runner

9876

QONTINUI_RESULTS_DIR

Directorio para resultados de automatización

.automation-results

QONTINUI_DEV_LOGS_DIR

Directorio para registros de desarrollo

.dev-logs

Características

Área A: Transmisión de eventos SSE

Transmisión de eventos en tiempo real mediante Server-Sent Events (SSE) para monitorear la ejecución del flujo de trabajo.

Endpoint: /sse/events

Uso del cliente:

from qontinui_mcp.client import QontinuiClient

client = QontinuiClient()

def handle_event(event: dict):
    print(f"Event: {event['event_type']} - {event}")

await client.subscribe_events(callback=handle_event, timeout=60)

Tipos de eventos:

  • qontinui/execution_started - Comienza el flujo de trabajo

  • qontinui/execution_progress - Finalización de paso

  • qontinui/execution_completed - Finaliza el flujo de trabajo

  • qontinui/test_started - Comienza la prueba

  • qontinui/test_completed - Finaliza la prueba

  • qontinui/image_recognition - Coincidencia encontrada/fallida

  • qontinui/error - Ocurre un error

  • qontinui/warning - Problema no fatal

Área B: Prompts de MCP

Plantillas de prompts parametrizadas para tareas comunes de automatización. Los prompts agregan contexto del runner para proporcionar flujos de trabajo estructurados de depuración, análisis y verificación.

Prompt

Descripción

Argumentos

debug_test_failure

Analizar un fallo de prueba con un enfoque de depuración estructurado

test_id (requerido), include_screenshots

analyze_screenshot

Análisis visual de una captura de pantalla para verificación de IU

screenshot_id (requerido), focus_area

fix_playwright_failure

Flujo de trabajo estructurado para corregir una prueba de Playwright fallida

spec_name (requerido), error_message

verify_workflow_state

Verificar que el estado actual de la GUI coincida con el estado esperado del flujo de trabajo

state_name (requerido), workflow_name

create_verification_test

Generar una prueba de verificación para un comportamiento de la IU

behavior_description (requerido), test_type

analyze_automation_run

Revisar los resultados de la ejecución de automatización e identificar problemas

run_id, focus_on_failures

debug_image_recognition

Depurar problemas de coincidencia de plantillas y reconocimiento de imágenes

template_name, last_n_attempts

summarize_task_progress

Resumen del estado de la tarea con progreso de ejecución

task_run_id

analyze_verification_failure

Analizar por qué falló un criterio de verificación

task_id (requerido), criterion_id

create_verification_plan

Generar un plan de verificación para una característica

feature_description (requerido), strategy

Área C: Caché de herramientas

Caché de herramientas basada en versiones para optimizar las solicitudes de lista de herramientas de MCP.

Endpoint: /tool-version

Respuesta:

{
  "version": "abc123...",
  "tool_count": 35,
  "test_count": 12
}

El servidor MCP almacena en caché las herramientas e invalida la caché cuando:

  • La versión de la herramienta del runner cambia (configuración cargada, pruebas añadidas/eliminadas)

  • La caché tiene más de 5 minutos (fallback)

Área E: Sistema de permisos

Control de permisos detallado para llamadas a herramientas inspirado en el sistema de permisos de OpenCode.

Niveles de permiso:

Nivel

Descripción

Herramientas de ejemplo

READ_ONLY

Operaciones seguras que solo leen datos

get_executor_status, list_monitors, read_runner_logs

EXECUTE

Operaciones que ejecutan flujos de trabajo o pruebas

run_workflow, execute_test, execute_python

MODIFY

Operaciones que cambian datos

create_test, update_test, load_config

DANGEROUS

Operaciones que pueden interrumpir la ejecución

stop_execution, restart_runner

Configuración:

from qontinui_mcp.permissions import get_permission_service, PermissionLevel

service = get_permission_service()

# Auto-approve only read operations (default)
service.configure(auto_approve_levels={PermissionLevel.READ_ONLY})

# Auto-approve all operations (trusted context)
service.auto_approve_all()

# Custom permission handler
service.on_request = lambda req: input(f"Allow {req.tool_name}? (y/n)") == "y"

Área F: Recursos MCP

Acceso a datos de solo lectura mediante esquema URI para acceder a datos del runner.

Esquema URI: qontinui://{type}/{id}

Tipos de recursos:

Patrón URI

Descripción

Tipo MIME

qontinui://config/current

Configuración de flujo de trabajo cargada actualmente

application/json

qontinui://logs/{type}

Archivos de registro JSONL (general, acciones, reconocimiento de imágenes, playwright)

application/jsonl

qontinui://screenshots/{id}

Metadatos de captura de pantalla y rutas de archivo

image/png

qontinui://tests/{id}

Definiciones de pruebas de verificación

application/json

qontinui://dom/{id}

Contenido HTML de captura DOM

text/html

qontinui://task-runs/{id}

Detalles de ejecución de tareas

application/json

Área G: Ejecución de Python en línea

Ejecute código Python arbitrario con aislamiento de dependencias opcional mediante uvx.

Herramienta: execute_python

Parámetros:

  • code (requerido): Código Python a ejecutar

  • dependencies: Lista de paquetes pip a instalar

  • timeout_seconds: Tiempo de espera de ejecución (predeterminado: 30)

  • working_directory: Directorio de trabajo para la ejecución

Ejemplo:

# Simple calculation
result = await client.execute_python(
    code="return {'sum': 1 + 2, 'product': 3 * 4}"
)
# result.data["return_value"] == {"sum": 3, "product": 12}

# With dependencies
result = await client.execute_python(
    code="""
    import requests
    resp = requests.get('https://api.example.com/data')
    return resp.json()
    """,
    dependencies=["requests"],
)

Área H: Generación de agentes

Descomposición jerárquica de tareas mediante la generación de subagentes con tareas enfocadas.

Herramienta: spawn_sub_agent

Parámetros:

  • task (requerido): Descripción de la tarea para el subagente

  • tools: Lista de nombres de herramientas a las que restringir el subagente

  • max_iterations: Máximo de turnos/iteraciones (predeterminado: 10)

  • context: Contexto adicional a proporcionar

Ejemplo:

result = await client.spawn_sub_agent(
    task="Verify that the login form works correctly",
    tools=["run_workflow", "capture_screenshot", "execute_test"],
    max_iterations=5,
    context="The login page is at /login with username and password fields."
)

Herramientas disponibles

Herramientas principales

Herramienta

Permiso

Descripción

get_executor_status

READ_ONLY

Obtener estado del runner

list_monitors

READ_ONLY

Listar monitores disponibles

load_config

MODIFY

Cargar un archivo de configuración de flujo de trabajo

ensure_config_loaded

MODIFY

Cargar configuración si aún no está cargada

get_loaded_config

READ_ONLY

Obtener información de la configuración cargada

run_workflow

EXECUTE

Ejecutar un flujo de trabajo por nombre

stop_execution

DANGEROUS

Detener la ejecución actual

Herramientas de gestión de tareas

Herramienta

Permiso

Descripción

get_task_runs

READ_ONLY

Obtener todas las ejecuciones de tareas

get_task_run

READ_ONLY

Obtener detalles específicos de ejecución de tarea

get_task_run_events

READ_ONLY

Obtener eventos para una ejecución de tarea

get_task_run_screenshots

READ_ONLY

Obtener capturas de pantalla para una ejecución de tarea

get_task_run_playwright_results

READ_ONLY

Obtener resultados de Playwright para una ejecución de tarea

migrate_task_run_logs

EXECUTE

Migrar registros JSONL a SQLite

Herramientas de ejecución de automatización

Herramienta

Permiso

Descripción

get_automation_runs

READ_ONLY

Obtener ejecuciones de automatización recientes

get_automation_run

READ_ONLY

Obtener detalles específicos de ejecución de automatización

Herramientas de gestión de pruebas

Herramienta

Permiso

Descripción

list_tests

READ_ONLY

Listar todas las pruebas de verificación

get_test

READ_ONLY

Obtener prueba por ID

execute_test

EXECUTE

Ejecutar una prueba de verificación

list_test_results

READ_ONLY

Listar resultados de pruebas

get_test_history

READ_ONLY

Obtener resumen del historial de pruebas

create_test

MODIFY

Crear una nueva prueba de verificación

update_test

MODIFY

Actualizar una prueba existente

delete_test

MODIFY

Eliminar una prueba de verificación

Tipos de prueba:

  • playwright_cdp - Aserciones de DOM del navegador usando Playwright

  • qontinui_vision - Verificación visual usando reconocimiento de imágenes

  • python_script - Lógica de verificación personalizada en Python

  • repository_test - Ejecutar pytest, Jest u otros marcos de prueba

Herramientas de registro

Herramienta

Permiso

Descripción

list_screenshots

READ_ONLY

Listar capturas de pantalla disponibles

read_runner_logs

READ_ONLY

Leer archivos de registro JSONL del runner

Tipos de registro:

  • general - Eventos generales del ejecutor

  • actions - Eventos de acción/árbol de flujo de trabajo

  • image-recognition - Resultados de reconocimiento de imágenes con detalles de coincidencia

  • playwright - Resultados de ejecución de pruebas de Playwright

Herramientas de captura DOM

Herramienta

Permiso

Descripción

list_dom_captures

READ_ONLY

Listar capturas DOM

get_dom_capture

READ_ONLY

Obtener metadatos de captura DOM

get_dom_capture_html

READ_ONLY

Obtener contenido HTML de captura DOM

Herramientas AWAS (AI Web Action Standard)

Herramientas para interactuar con sitios web que admiten el estándar AWAS.

Herramienta

Permiso

Descripción

awas_discover

EXECUTE

Descubrir manifiesto AWAS para un sitio web

awas_check_support

READ_ONLY

Comprobar si un sitio web admite AWAS

awas_list_actions

READ_ONLY

Listar acciones AWAS disponibles

awas_execute

EXECUTE

Ejecutar una acción AWAS

Herramientas avanzadas

Herramienta

Permiso

Descripción

execute_python

EXECUTE

Ejecutar código Python en línea

spawn_sub_agent

EXECUTE

Generar un subagente con una tarea específica

Ejemplo de uso

Ejecución básica de flujo de trabajo

# In an AI conversation:
"Load the config at /path/to/workflow.json and run the 'login_test' workflow on the left monitor"

Verificación basada en pruebas

# Create a verification test
"Create a Playwright test that verifies the login button is visible and enabled"

# Execute the test
"Run the login_button_visible test and show me the results"

# Debug failures
"Use the debug_test_failure prompt for test abc123 with screenshots"

Análisis de automatización

# Analyze a failed automation run
"Analyze the most recent automation run and identify why it failed"

# Debug image recognition
"Debug the template matching for the 'submit_button' template"

Desarrollo

# Clone
git clone https://github.com/qontinui/qontinui-mcp
cd qontinui-mcp

# Install dependencies
poetry install

# Run server locally
poetry run qontinui-mcp

# Run type checking
poetry run mypy src/

# Run linting
poetry run ruff check src/

Arquitectura

qontinui-mcp (MCP Server)
    |
    v
QontinuiClient (HTTP Client)
    |
    v
qontinui-runner (Desktop App, port 9876)
    |
    v
Python Subprocess (Qontinui Execution)

El servidor MCP es un envoltorio ligero que:

  1. Expone las capacidades del runner mediante el protocolo MCP

  2. Proporciona control de permisos para llamadas a herramientas

  3. Almacena en caché las definiciones de herramientas para mejorar el rendimiento

  4. Agrega contexto para prompts estructurados

  5. Transmite eventos mediante SSE para monitoreo en tiempo real

Licencia

Licenciado bajo la Licencia Pública General Affero de GNU v3.0 o posterior (AGPL-3.0-or-later). Consulte LICENSE para conocer los términos completos.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to create and manage visual automation configurations, workflows, and UI states through the Qontinui API. It supports project management, workflow execution, and configuration handling for automated web interactions.
    AGPL 3.0
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides comprehensive desktop automation capabilities including AI-powered vision, OCR, and mouse/keyboard control via a Spring Boot REST API. It enables users to execute multi-step workflows, manage files, and automate browser interactions.
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI to inspect and interact with UI elements, supporting control mode for the runner's own UI and SDK mode for external applications.
    AGPL 3.0

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/qontinui/qontinui-mcp'

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