PluginBench
MCP Server
Active

io.github.ObscuritySRL/bun-uia MCP Server

io.github.ObscuritySRL/bun-uia

What is the io.github.ObscuritySRL/bun-uia MCP server?

Playwright for the Windows desktop, from Bun — drive native GUIs via UI Automation + MCP.

How to install io.github.ObscuritySRL/bun-uia

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • BUN_UIA_PROFILE

    Capability profile: 'readonly' (inspect/read only), 'safe' (read + input + window — default), or 'full' (also os + fs tools).

  • BUN_UIA_OS

    Set to '1' to allow OS-level tools (launch_app, run_program, open_path) AND filesystem tools (read_file, write_file, list_dir) regardless of profile.

  • BUN_UIA_ALLOW

    Comma-separated tool names or categories to additionally allow on top of the profile.

  • BUN_UIA_DENY

    Comma-separated tool names or categories to deny, overriding the profile and BUN_UIA_ALLOW.

  • BUN_UIA_CURSOR

    Set to 'never' to forbid the real-cursor fallback entirely (strictly cursor-free). By default clicks/drags are cursor-free but fall back to the real hardware cursor when no cursor-free path exists.

  • BUN_UIA_FS_ROOT

    Sandbox root directory that read_file/write_file/list_dir are confined to when fs tools are enabled.

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "bun-uia": {
      "command": "bunx",
      "args": [
        "-y",
        "bun-uia"
      ],
      "env": {
        "BUN_UIA_PROFILE": "<YOUR_BUN_UIA_PROFILE>",
        "BUN_UIA_OS": "<YOUR_BUN_UIA_OS>",
        "BUN_UIA_ALLOW": "<YOUR_BUN_UIA_ALLOW>",
        "BUN_UIA_DENY": "<YOUR_BUN_UIA_DENY>",
        "BUN_UIA_CURSOR": "<YOUR_BUN_UIA_CURSOR>",
        "BUN_UIA_FS_ROOT": "<YOUR_BUN_UIA_FS_ROOT>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "bun-uia": {
      "command": "bunx",
      "args": [
        "-y",
        "bun-uia"
      ],
      "env": {
        "BUN_UIA_PROFILE": "<YOUR_BUN_UIA_PROFILE>",
        "BUN_UIA_OS": "<YOUR_BUN_UIA_OS>",
        "BUN_UIA_ALLOW": "<YOUR_BUN_UIA_ALLOW>",
        "BUN_UIA_DENY": "<YOUR_BUN_UIA_DENY>",
        "BUN_UIA_CURSOR": "<YOUR_BUN_UIA_CURSOR>",
        "BUN_UIA_FS_ROOT": "<YOUR_BUN_UIA_FS_ROOT>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "bun-uia": {
      "command": "bunx",
      "args": [
        "-y",
        "bun-uia"
      ],
      "env": {
        "BUN_UIA_PROFILE": "<YOUR_BUN_UIA_PROFILE>",
        "BUN_UIA_OS": "<YOUR_BUN_UIA_OS>",
        "BUN_UIA_ALLOW": "<YOUR_BUN_UIA_ALLOW>",
        "BUN_UIA_DENY": "<YOUR_BUN_UIA_DENY>",
        "BUN_UIA_CURSOR": "<YOUR_BUN_UIA_CURSOR>",
        "BUN_UIA_FS_ROOT": "<YOUR_BUN_UIA_FS_ROOT>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "bun-uia": {
      "type": "stdio",
      "command": "bunx",
      "args": [
        "-y",
        "bun-uia"
      ],
      "env": {
        "BUN_UIA_PROFILE": "<YOUR_BUN_UIA_PROFILE>",
        "BUN_UIA_OS": "<YOUR_BUN_UIA_OS>",
        "BUN_UIA_ALLOW": "<YOUR_BUN_UIA_ALLOW>",
        "BUN_UIA_DENY": "<YOUR_BUN_UIA_DENY>",
        "BUN_UIA_CURSOR": "<YOUR_BUN_UIA_CURSOR>",
        "BUN_UIA_FS_ROOT": "<YOUR_BUN_UIA_FS_ROOT>"
      }
    }
  }
}
Claude Code
claude mcp add bun-uia --env BUN_UIA_PROFILE=<YOUR_BUN_UIA_PROFILE> --env BUN_UIA_OS=<YOUR_BUN_UIA_OS> --env BUN_UIA_ALLOW=<YOUR_BUN_UIA_ALLOW> --env BUN_UIA_DENY=<YOUR_BUN_UIA_DENY> --env BUN_UIA_CURSOR=<YOUR_BUN_UIA_CURSOR> --env BUN_UIA_FS_ROOT=<YOUR_BUN_UIA_FS_ROOT> -- bunx -y bun-uia

Related MCP servers

See and drive a whole Windows machine from Bun — apps, input, screen, OCR, registry, OS — via MCP.

1
TypeScript
MIT
View repository →