MCP server for UI Bridge - enables AI to inspect and interact with UI elements
Project description
UI Bridge MCP
MCP (Model Context Protocol) server for UI Bridge - enables AI to inspect and interact with UI elements.
Overview
This MCP server provides tools for:
- Inspecting UI elements - Get element positions, bounds, visibility, and state
- Interacting with elements - Click, type, focus, hover
- Two modes of operation:
- Control mode: Interact with the qontinui-runner's own Tauri webview
- External mode: Interact with external browser tabs via Chrome extension
Installation
# Using pip
pip install ui-bridge-mcp
# Using poetry
poetry add ui-bridge-mcp
Prerequisites
The MCP server requires the qontinui-runner to be running on port 9876.
For external browser tab access, you also need the Chrome extension connected.
Configuration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"ui-bridge": {
"command": "ui-bridge-mcp"
}
}
}
Claude Code
Add to your MCP settings:
{
"mcpServers": {
"ui-bridge": {
"command": "ui-bridge-mcp"
}
}
}
Environment Variables
| Variable | Default | Description |
|---|---|---|
QONTINUI_RUNNER_HOST |
localhost (or WSL host) |
Runner hostname |
QONTINUI_RUNNER_PORT |
9876 |
Runner port |
Available Tools
Health Check
| Tool | Description |
|---|---|
ui_health |
Check if qontinui-runner is accessible |
Control Mode (Runner's Own UI)
| Tool | Description |
|---|---|
ui_snapshot |
Get complete UI state with all elements |
ui_discover |
Force element discovery/registration |
ui_get_element |
Get detailed info for a specific element |
ui_click |
Click an element by ID |
ui_type |
Type text into an input element |
ui_focus |
Focus an element |
External Mode (Browser Tabs)
| Tool | Description |
|---|---|
extension_status |
Check Chrome extension connection |
extension_list_tabs |
List available browser tabs |
extension_select_tab |
Select a tab for subsequent operations |
extension_get_elements |
Get all elements from selected tab |
extension_click |
Click element by CSS selector |
extension_type |
Type into element by CSS selector |
extension_screenshot |
Capture screenshot of current tab |
Usage Examples
Inspect Runner UI
AI: Let me check what's on the runner's Settings page.
1. First, get a snapshot of the UI:
ui_snapshot
2. Click the Settings button:
ui_click element_id="sidebar-nav-item-settings"
3. Get another snapshot to see the new page:
ui_snapshot
Inspect External Website
AI: Let me check the login form on localhost:3001.
1. Check extension is connected:
extension_status
2. List browser tabs:
extension_list_tabs
3. Select the tab with localhost:3001:
extension_select_tab tab_id=123456
4. Get page elements:
extension_get_elements
5. Type into the email field:
extension_type selector="input[name='email']" text="test@example.com"
Element IDs
Elements in the runner's UI have data-ui-id attributes that follow patterns like:
sidebar-nav-item-{name}- Sidebar navigation itemsbutton-{action}- Action buttonsinput-{field}- Input fieldsdialog-{name}- Dialog components
Use ui_snapshot to discover all available element IDs.
Architecture
Claude/AI
↓ MCP Protocol
ui-bridge-mcp (this server)
↓ HTTP
qontinui-runner (port 9876)
├── /ui-bridge/control/* → Runner's Tauri webview
└── /extension/* → Chrome extension → External browser tabs
Development
# Install dependencies
poetry install
# Run linting
poetry run ruff check .
poetry run mypy src
# Format code
poetry run black src
poetry run isort src
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ui_bridge_mcp-0.1.0.tar.gz.
File metadata
- Download URL: ui_bridge_mcp-0.1.0.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.10 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
878e4980216fdc5ba0674637766bf12c4f8644a0eaf31d817370c86a41c25b90
|
|
| MD5 |
2db888d2b7111e903f215cf603d8d802
|
|
| BLAKE2b-256 |
658a8f303d4c883a5fafbb0c10ef0cac7d61c4d4203fdb84a3dcf7e0775e900e
|
File details
Details for the file ui_bridge_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ui_bridge_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.10 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
709bc89428b115d7ad7f5c0b67eaf2791f1ac91fc813fb084e7a292cc3aa2ce1
|
|
| MD5 |
c86100bd7bf4d4df88293194aff91362
|
|
| BLAKE2b-256 |
a1405bcb5b2ef49b0bc92ed24d70afeb2e7afaa27c7c956bcda53a8e779e3ff8
|