Skip to main content

An MCP server for exploring and interacting with UI elements

Project description

UI Explorer MCP Server

An MCP server that provides tools for exploring and interacting with UI elements on your screen.

Features

  • Explore UI hierarchies: Scan and analyze all UI elements on your screen
  • Screenshot UI with highlights: Visualize UI elements with boundaries and hierarchy
  • Control mouse clicks: Click on UI elements based on coordinates
  • Explore specific regions: Focus on parts of the screen like top-left, center, etc.
  • 🎬 Macro Recording: Record and playback UI workflows independently or through MCP

🚀 Quick Start: Standalone Macro Recording

New! You can now record UI workflows without running the MCP server:

# Record a workflow
python record_macro.py --name "Login Workflow"

# Play it back
python play_macro.py --file "macros/Login Workflow.json"

Windows users can use the batch files:

record_macro.bat "My Workflow"
play_macro.bat "macros/My Workflow.json"

👉 See QUICK_START.md for a 2-minute tutorial 👉 See MACRO_TOOLS.md for complete documentation

What Gets Recorded?

  • ✅ Mouse clicks with exact coordinates
  • ✅ Keyboard input with smart text buffering
  • ✅ UI context for reliable playback
  • ✅ Screenshots for verification
  • ✅ Timing information for natural replay

Recording Controls

  • F9: Start/Stop recording
  • F10: Pause/Resume
  • ESC: Emergency stop

Installation Options

Option 1: Using pip (recommended)

Install the package globally or in a virtual environment:

pip install mcp-ui-explorer

Option 2: Using git clone

  1. Clone the repository:
git clone https://github.com/modularflow/mcp-ui-explorer
cd mcp-ui-explorer
  1. Install the package:

    • Using pip in development mode:
    pip install -e .
    
    • OR using uv (recommended for development):
    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    uv pip install -e .
    

MCP Server Configuration

After installing the package, you need to configure your MCP client to use the UI Explorer server.

For Roo in Cursor

Add this JSON to your MCP Server config at: C:\Users\<user_name>\AppData\Roaming\Cursor\User\globalStorage\rooveterinaryinc.roo-cline\settings\mcp_settings.json

{
  "mcpServers": {
    "ui-explorer": {
      "command": "uvx",
      "args": [
        "mcp-ui-explorer"
      ]
    }
  }
}

For Claude Desktop App

Add the server configuration to: C:\Users\<user_name>\AppData\Roaming\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "ui-explorer": {
      "command": "uvx",
      "args": [
        "mcp-ui-explorer"
      ]
    }
  }
}

For Direct Use with uvx

If you've installed the package (either globally or in a virtual environment), you can directly use uvx to run the server without additional configuration:

uvx mcp-ui-explorer

MCP Tools

The UI Explorer provides several MCP tools for UI automation and exploration. These tools are available when using the MCP server interface.

Usage Guide

1. Explore UI Structure

Use the explore_ui tool to get a complete hierarchy of UI elements:

Parameters:

  • region: Screen region to analyze ("screen", "top", "bottom", "left", "right", "center", etc.)
  • depth: Maximum hierarchy depth to analyze (default: 5)
  • min_size: Minimum element size to include (default: 5px)
  • focus_window: Only analyze the foreground window (default: False)
  • visible_only: Only include elements visible on screen (default: True)
  • control_type: Type of control to search for (default: "Button")
  • text: Filter elements by text content (optional)

2. Take a Screenshot with UI Elements Highlighted

Use the screenshot_ui tool to visualize the UI elements:

Parameters:

  • region: Screen region to analyze
  • highlight_levels: Use different colors for hierarchy levels (default: True)
  • output_prefix: Prefix for output files (default: "ui_hierarchy")

3. Click at Screen Coordinates

Use the click_ui_element tool to click at specific coordinates:

Parameters:

  • x: X coordinate to click (required)
  • y: Y coordinate to click (required)
  • wait_time: Seconds to wait before clicking (default: 2.0)

4. Keyboard Input and Shortcuts

The tool also provides options for keyboard input and shortcuts. See the UI Explorer guide in the MCP interface for details.

Example Workflow

  1. First, explore the UI to understand what's on the screen:

    explore_ui(region="screen", control_type="Button")
    
  2. Take a screenshot to visualize the elements:

    screenshot_ui(region="screen")
    
  3. Note the coordinates of elements you want to click, then click at those coordinates:

    click_ui_element(x=500, y=300)
    
  4. Type text or use keyboard shortcuts as needed:

    keyboard_input(text="Hello world", press_enter=true)
    

Requirements

  • Windows operating system
  • Python 3.10+
  • MCP 1.6.0+
  • PyAutoGUI
  • PyWinAuto
  • Pillow
  • Pydantic 2.0+

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_ui_explorer-0.1.20.tar.gz (66.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_ui_explorer-0.1.20-py3-none-any.whl (67.7 kB view details)

Uploaded Python 3

File details

Details for the file mcp_ui_explorer-0.1.20.tar.gz.

File metadata

  • Download URL: mcp_ui_explorer-0.1.20.tar.gz
  • Upload date:
  • Size: 66.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.15

File hashes

Hashes for mcp_ui_explorer-0.1.20.tar.gz
Algorithm Hash digest
SHA256 371feb46b66543c6575374315705caa2342d8fb1aeac9b761e2ebe7f336abddd
MD5 efc8feefca8f17dc21b0b0705c20778e
BLAKE2b-256 e5a2c187ec32ba4e1a209229a3f66bdebdd5537b1d701a3e8ded31bb6fe8b03a

See more details on using hashes here.

File details

Details for the file mcp_ui_explorer-0.1.20-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_ui_explorer-0.1.20-py3-none-any.whl
Algorithm Hash digest
SHA256 57a2417688459e01e300af5f41d9a2fefc63d82c5b1b4d38b3ad9882cee314a4
MD5 6d87cd06d37d977d6aeed3db10e80a95
BLAKE2b-256 ea3b8dcdc10daeec8686bb6fdbe0cdfc009ed83168b6c88f0e776f3c2e3483e6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page