Skip to main content
Glama
qontinui
by qontinui

qontinui-mcp

Легковесный MCP-сервер для Qontinui Runner — обеспечивает визуальную автоматизацию на базе ИИ.

Установка

pip install qontinui-mcp

Related MCP server: RPA MCP Server

Быстрый старт

  1. Запустите Qontinui Runner (десктопное приложение)

  2. Настройте ваш ИИ-клиент (Claude Desktop, Claude Code, Cursor и т.д.)

Добавьте в конфигурацию MCP:

{
  "mcpServers": {
    "qontinui": {
      "command": "qontinui-mcp",
      "args": []
    }
  }
}
  1. Запускайте рабочие процессы через ИИ

Теперь ИИ может:

  • Загружать файлы конфигурации рабочих процессов

  • Запускать визуальные сценарии автоматизации

  • Отслеживать статус выполнения

  • Управлять выбором монитора

Конфигурация

Переменные окружения:

Переменная

Описание

По умолчанию

QONTINUI_RUNNER_HOST

Адрес хоста Runner

Автоопределение (с поддержкой WSL)

QONTINUI_RUNNER_PORT

HTTP-порт Runner

9876

QONTINUI_RESULTS_DIR

Директория для результатов автоматизации

.automation-results

QONTINUI_DEV_LOGS_DIR

Директория для логов разработки

.dev-logs

Функциональность

Область A: Потоковая передача событий SSE

Потоковая передача событий в реальном времени через Server-Sent Events (SSE) для мониторинга выполнения рабочих процессов.

Эндпоинт: /sse/events

Использование клиентом:

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)

Типы событий:

  • qontinui/execution_started - Начало рабочего процесса

  • qontinui/execution_progress - Завершение шага

  • qontinui/execution_completed - Завершение рабочего процесса

  • qontinui/test_started - Начало теста

  • qontinui/test_completed - Завершение теста

  • qontinui/image_recognition - Совпадение найдено/не найдено

  • qontinui/error - Возникла ошибка

  • qontinui/warning - Некритическая проблема

Область B: Промпты MCP

Параметризованные шаблоны промптов для типичных задач автоматизации. Промпты агрегируют контекст от Runner для предоставления структурированных рабочих процессов отладки, анализа и верификации.

Промпт

Описание

Аргументы

debug_test_failure

Анализ сбоя теста со структурированным подходом к отладке

test_id (обязательно), include_screenshots

analyze_screenshot

Визуальный анализ скриншота для верификации UI

screenshot_id (обязательно), focus_area

fix_playwright_failure

Структурированный рабочий процесс для исправления сбоя теста Playwright

spec_name (обязательно), error_message

verify_workflow_state

Проверка соответствия текущего состояния GUI ожидаемому состоянию процесса

state_name (обязательно), workflow_name

create_verification_test

Генерация теста верификации для поведения UI

behavior_description (обязательно), test_type

analyze_automation_run

Обзор результатов запуска автоматизации и выявление проблем

run_id, focus_on_failures

debug_image_recognition

Отладка проблем сопоставления шаблонов и распознавания изображений

template_name, last_n_attempts

summarize_task_progress

Сводка статуса задачи с прогрессом выполнения

task_run_id

analyze_verification_failure

Анализ причин сбоя критерия верификации

task_id (обязательно), criterion_id

create_verification_plan

Генерация плана верификации для функции

feature_description (обязательно), strategy

Область C: Кэширование инструментов

Кэширование инструментов на основе версий для оптимизации запросов списка инструментов MCP.

Эндпоинт: /tool-version

Ответ:

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

MCP-сервер кэширует инструменты и аннулирует кэш, когда:

  • Изменяется версия инструментов Runner (загружена конфигурация, добавлены/удалены тесты)

  • Кэш старше 5 минут (резервный вариант)

Область E: Система разрешений

Детализированный контроль разрешений для вызовов инструментов, вдохновленный системой разрешений OpenCode.

Уровни разрешений:

Уровень

Описание

Пример инструментов

READ_ONLY

Безопасные операции, только чтение данных

get_executor_status, list_monitors, read_runner_logs

EXECUTE

Операции запуска рабочих процессов или тестов

run_workflow, execute_test, execute_python

MODIFY

Операции изменения данных

create_test, update_test, load_config

DANGEROUS

Операции, которые могут нарушить выполнение

stop_execution, restart_runner

Конфигурация:

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"

Область F: Ресурсы MCP

Доступ к данным только для чтения через схему URI для доступа к данным Runner.

Схема URI: qontinui://{type}/{id}

Типы ресурсов:

Шаблон URI

Описание

MIME-тип

qontinui://config/current

Текущая загруженная конфигурация рабочего процесса

application/json

qontinui://logs/{type}

Лог-файлы JSONL (общие, действия, распознавание изображений, playwright)

application/jsonl

qontinui://screenshots/{id}

Метаданные скриншотов и пути к файлам

image/png

qontinui://tests/{id}

Определения тестов верификации

application/json

qontinui://dom/{id}

HTML-контент захвата DOM

text/html

qontinui://task-runs/{id}

Детали запуска задачи

application/json

Область G: Выполнение Python в строке

Выполнение произвольного кода Python с опциональной изоляцией зависимостей через uvx.

Инструмент: execute_python

Параметры:

  • code (обязательно): Код Python для выполнения

  • dependencies: Список пакетов pip для установки

  • timeout_seconds: Тайм-аут выполнения (по умолчанию: 30)

  • working_directory: Рабочая директория для выполнения

Пример:

# 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"],
)

Область H: Создание агентов

Иерархическая декомпозиция задач путем создания под-агентов с узкоспециализированными задачами.

Инструмент: spawn_sub_agent

Параметры:

  • task (обязательно): Описание задачи для под-агента

  • tools: Список имен инструментов, к которым ограничен доступ под-агента

  • max_iterations: Максимальное количество итераций (по умолчанию: 10)

  • context: Дополнительный контекст для предоставления

Пример:

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."
)

Доступные инструменты

Основные инструменты

Инструмент

Разрешение

Описание

get_executor_status

READ_ONLY

Получить статус Runner

list_monitors

READ_ONLY

Список доступных мониторов

load_config

MODIFY

Загрузить файл конфигурации рабочего процесса

ensure_config_loaded

MODIFY

Загрузить конфигурацию, если она еще не загружена

get_loaded_config

READ_ONLY

Получить информацию о загруженной конфигурации

run_workflow

EXECUTE

Запустить рабочий процесс по имени

stop_execution

DANGEROUS

Остановить текущее выполнение

Инструменты управления задачами

Инструмент

Разрешение

Описание

get_task_runs

READ_ONLY

Получить все запуски задач

get_task_run

READ_ONLY

Получить детали конкретного запуска задачи

get_task_run_events

READ_ONLY

Получить события для запуска задачи

get_task_run_screenshots

READ_ONLY

Получить скриншоты для запуска задачи

get_task_run_playwright_results

READ_ONLY

Получить результаты Playwright для запуска задачи

migrate_task_run_logs

EXECUTE

Мигрировать логи JSONL в SQLite

Инструменты запуска автоматизации

Инструмент

Разрешение

Описание

get_automation_runs

READ_ONLY

Получить недавние запуски автоматизации

get_automation_run

READ_ONLY

Получить детали конкретного запуска автоматизации

Инструменты управления тестами

Инструмент

Разрешение

Описание

list_tests

READ_ONLY

Список всех тестов верификации

get_test

READ_ONLY

Получить тест по ID

execute_test

EXECUTE

Выполнить тест верификации

list_test_results

READ_ONLY

Список результатов тестов

get_test_history

READ_ONLY

Получить сводку истории тестов

create_test

MODIFY

Создать новый тест верификации

update_test

MODIFY

Обновить существующий тест

delete_test

MODIFY

Удалить тест верификации

Типы тестов:

  • playwright_cdp - Утверждения DOM браузера с использованием Playwright

  • qontinui_vision - Визуальная верификация с использованием распознавания изображений

  • python_script - Пользовательская логика верификации на Python

  • repository_test - Запуск pytest, Jest или других тестовых фреймворков

Инструменты логирования

Инструмент

Разрешение

Описание

list_screenshots

READ_ONLY

Список доступных скриншотов

read_runner_logs

READ_ONLY

Чтение лог-файлов JSONL Runner

Типы логов:

  • general - Общие события исполнителя

  • actions - События действий/дерева рабочего процесса

  • image-recognition - Результаты распознавания изображений с деталями совпадений

  • playwright - Результаты выполнения тестов Playwright

Инструменты захвата DOM

Инструмент

Разрешение

Описание

list_dom_captures

READ_ONLY

Список захватов DOM

get_dom_capture

READ_ONLY

Получить метаданные захвата DOM

get_dom_capture_html

READ_ONLY

Получить HTML-контент захвата DOM

Инструменты AWAS (AI Web Action Standard)

Инструменты для взаимодействия с веб-сайтами, поддерживающими стандарт AWAS.

Инструмент

Разрешение

Описание

awas_discover

EXECUTE

Обнаружить манифест AWAS для веб-сайта

awas_check_support

READ_ONLY

Проверить, поддерживает ли веб-сайт AWAS

awas_list_actions

READ_ONLY

Список доступных действий AWAS

awas_execute

EXECUTE

Выполнить действие AWAS

Продвинутые инструменты

Инструмент

Разрешение

Описание

execute_python

EXECUTE

Выполнить встроенный код Python

spawn_sub_agent

EXECUTE

Создать под-агента с конкретной задачей

Пример использования

Базовое выполнение рабочего процесса

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

Верификация на основе тестов

# 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"

Анализ автоматизации

# 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"

Разработка

# 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/

Архитектура

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

MCP-сервер — это тонкая обертка, которая:

  1. Предоставляет возможности Runner через протокол MCP

  2. Обеспечивает контроль разрешений для вызовов инструментов

  3. Кэширует определения инструментов для производительности

  4. Агрегирует контекст для структурированных промптов

  5. Передает события через SSE для мониторинга в реальном времени

Лицензия

Лицензировано в соответствии с GNU Affero General Public License v3.0 или более поздней версии (AGPL-3.0-or-later). См. LICENSE для получения полных условий.

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