Ui.Vision MCP

Connects MCP clients to the Ui.Vision RPA extension to write, run and debug browser and desktop macros

Official · Ui.Vision JavaScript Local · stdio Browser automationTesting

54 popularity score ★ 2.1k ↓ 251/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add ui-vision -- npx -y uivision-mcp-bridge
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "ui-vision": {
      "command": "npx",
      "args": [
        "-y",
        "uivision-mcp-bridge"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "ui-vision": {
      "command": "npx",
      "args": [
        "-y",
        "uivision-mcp-bridge"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "ui-vision": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "uivision-mcp-bridge"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.ui-vision]
command = "npx"
args = ["-y", "uivision-mcp-bridge"]
Gemini CLITerminal
gemini mcp add --scope user ui-vision npx -- -y uivision-mcp-bridge
Local (from source)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

FirstTerminal
git clone https://github.com/A9T9/RPA.git <ABSOLUTE_PATH_TO_CLONE>
cd <ABSOLUTE_PATH_TO_CLONE>/mcp && npm install
Claude CodeTerminal
claude mcp add ui-vision -- node '<ABSOLUTE_PATH_TO_CLONE>/mcp/uivision-mcp-bridge.js'
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "ui-vision": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/mcp/uivision-mcp-bridge.js"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "ui-vision": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/mcp/uivision-mcp-bridge.js"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "ui-vision": {
      "type": "stdio",
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/mcp/uivision-mcp-bridge.js"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.ui-vision]
command = "node"
args = ["<ABSOLUTE_PATH_TO_CLONE>/mcp/uivision-mcp-bridge.js"]
Gemini CLITerminal
gemini mcp add --scope user ui-vision node -- '<ABSOLUTE_PATH_TO_CLONE>/mcp/uivision-mcp-bridge.js'

Settings 2

UIVISION_MCP_PORT Optional: Local WebSocket port the extension connects to (default 50888; same as --port); must match Settings > AI in the extension.
UIVISION_MCP_TOKEN Optional: Fallback shared secret for connections that send no origin (same as --token); generated and saved in the home folder when not set.

What it does

Ui.Vision MCP is a small Node.js bridge from the makers of the Ui.Vision RPA browser extension. Your MCP client starts it over stdio, and the extension's side panel connects to it over a WebSocket on 127.0.0.1 (port 50888 by default). Each tool call is passed to the extension and carried out there, inside the browser profile you already use, with its logins and cookies.

The assistant inspects the page as an accessibility tree or a screenshot, writes a macro (preferably JavaScript on Ui.Vision's uiv.* API), runs it, then reads the log and screenshots and fixes it. Macros it builds are kept in an "AI Generated" folder so you can review and replay them without the assistant. Besides DOM locators, macros can find targets by OCR text or image matching, and with the separate Desktop Automation app (XModules) they can click and type outside the browser: desktop programs, remote desktops, PDFs or canvas content.

The published 1.7.20 bridge registers 24 tools plus get_page, an alias kept for browser_snapshot. That includes tools the README's list skips: run_status, get_macro, send_chat and get_chat (drive the extension's own built-in AI chat), and get_ai_settings and set_ai_settings (change the extension's AI provider, model and OCR engine). Calls time out after 3 minutes by default, 15 minutes for run_macro and 11 for run_selftest (uivision-mcp-bridge.js, 1.7.20). An installer (npx uivision-mcp-bridge --setup) writes the server entry into Claude Code, Claude Desktop, Codex, Cursor, Windsurf and VS Code configs it finds, backing each one up first.

What it needs

RuntimeNode.js 18+

Node.js 18 or newer for npx. The Ui.Vision RPA extension (10.0.21 or newer) in Chrome, Edge or Firefox, with Settings > AI > MCP bridge switched on and its side panel open while you work. Desktop automation, whole-screen screenshots and local file access also need the separately installed Ui.Vision Desktop Automation app (XModules, version 2 for Ui.Vision V10), which the vendor sells in paid editions; check its pricing page.

Limits

Does nothing until the extension's side panel is connected: otherwise tool calls return "extension not connected" (open_panel can reopen it if the browser is running). Trusted CDP input (uiv.browser.*) and background Browser Vision work in Chrome and Edge, not Firefox. Only macros in the "AI Generated" folder can be deleted, and user macros are saved as copies rather than overwritten. click_at and type_at are described as for exploring only, not for saved automation. Long runs also need the MCP client's own tool timeout raised (the docs give 900 s for Codex). Only one bridge can hold the port; extra client windows relay through it (bridge 1.7.5+).

Who it suits

Suits people who already use Ui.Vision, or who need an assistant to automate work in their own signed-in browser and keep the result as a macro they can rerun. It also fits screens that have no usable DOM, such as remote desktops, legacy Windows apps or canvas, where OCR and image matching help (desktop work needs the paid XModules). Its own README contrasts it with DOM-only servers such as Playwright MCP and Chrome DevTools MCP: for headless runs, CI test suites or a browser with no extension installed, one of those is the better pick. It needs a desktop with a browser open, so it does not suit servers or containers.

Tools 25

bridge_status
Shows which browsers are connected and which one is active; returns the pairing secret while unpaired.
run_status
Reports whether a macro is running, which macro is loaded, and the latest log lines (20 by default, up to 100).
select_browser
Picks which connected browser or profile the other tools act on.
open_panel
Reopens the Ui.Vision panel in a tab when it has been closed.
list_macros
Lists the macros stored in Ui.Vision.
open_macro
Loads a stored macro into the editor.
get_authoring_guide
Returns the uiv.* JavaScript API reference to read before writing macros.
get_macro
Returns the macro currently in the editor as Ui.Vision JSON.
send_chat
Sends a message to the extension's built-in AI chat, which runs it with its own tools.
get_chat
Reads the built-in chat transcript as text and whether a run is still going.
reload_extension
Reloads the extension from disk, for example after a new build.
run_selftest
Runs the desktop-automation self-tests and returns one line per test.
get_ai_settings
Shows the extension's active AI provider, model, OCR engine and which providers have credentials stored (yes/no only).
set_ai_settings
Changes the extension's AI provider, model, vision scope or OCR engine.
set_macro
Replaces the macro open in the editor with new content.
create_macro
Saves a new macro in the AI Generated folder.
delete_macro
Deletes a macro, but only from the AI Generated folder.
run_macro
Runs a stored macro, an inline script, or the open macro, and waits for the result.
browser_snapshot
Returns the play tab as an accessibility tree or in another structural form.
get_page
Older name for browser_snapshot, kept as an alias.
click_at
Clicks a point picked from the last screenshot, in the tab or on the desktop.
type_at
Clicks a point from the last screenshot and types text there.
screenshot
Captures the tab, or the whole screen with XModules, or zooms into a region of the last capture.
save_element_image
Crops part of the last screenshot into an image target that macros can match.
save_relative_image
Makes an anchor-plus-offset image target from the last screenshot.

Similar servers