Skip to main content
Glama
qontinui
by qontinui

qontinui-mcp

Qontinui Runner를 위한 경량 MCP 서버 - AI 기반 시각적 자동화를 지원합니다.

설치

pip install qontinui-mcp

Related MCP server: RPA MCP Server

빠른 시작

  1. Qontinui Runner 시작 (데스크톱 애플리케이션)

  2. AI 클라이언트 구성 (Claude Desktop, Claude Code, Cursor 등)

MCP 구성에 추가:

{
  "mcpServers": {
    "qontinui": {
      "command": "qontinui-mcp",
      "args": []
    }
  }
}
  1. AI를 통한 워크플로우 실행

이제 AI가 다음을 수행할 수 있습니다:

  • 워크플로우 구성 파일 로드

  • 시각적 자동화 워크플로우 실행

  • 실행 상태 모니터링

  • 사용할 모니터 제어

구성

환경 변수:

변수

설명

기본값

QONTINUI_RUNNER_HOST

러너 호스트 주소

자동 감지 (WSL 인식)

QONTINUI_RUNNER_PORT

러너 HTTP 포트

9876

QONTINUI_RESULTS_DIR

자동화 결과 디렉토리

.automation-results

QONTINUI_DEV_LOGS_DIR

개발 로그 디렉토리

.dev-logs

기능

영역 A: SSE 이벤트 스트리밍

워크플로우 실행 모니터링을 위한 서버 전송 이벤트(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 프롬프트

일반적인 자동화 작업을 위한 매개변수화된 프롬프트 템플릿. 프롬프트는 러너로부터 컨텍스트를 집계하여 구조화된 디버깅, 분석 및 검증 워크플로우를 제공합니다.

프롬프트

설명

인수

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 서버는 다음과 같은 경우 도구를 캐시하고 캐시를 무효화합니다:

  • 러너의 도구 버전이 변경됨 (구성 로드, 테스트 추가/제거)

  • 캐시가 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 스킴을 통한 읽기 전용 데이터 액세스.

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}

DOM 캡처 HTML 콘텐츠

text/html

qontinui://task-runs/{id}

작업 실행 세부 정보

application/json

영역 G: 인라인 Python 실행

uvx를 통한 선택적 종속성 격리로 임의의 Python 코드 실행.

도구: 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

러너 상태 가져오기

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 - Playwright를 사용한 브라우저 DOM 어설션

  • qontinui_vision - 이미지 인식을 사용한 시각적 검증

  • python_script - 사용자 지정 Python 검증 로직

  • repository_test - pytest, Jest 또는 기타 테스트 프레임워크 실행

로그 도구

도구

권한

설명

list_screenshots

READ_ONLY

사용 가능한 스크린샷 목록

read_runner_logs

READ_ONLY

러너 JSONL 로그 파일 읽기

로그 유형:

  • 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

DOM 캡처 HTML 콘텐츠 가져오기

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