Playwright for the Windows desktop, from Bun — drive native GUIs via UI Automation + MCP.
registry version 1.9.1
npm
npx -y bun-uianpm
npx -y bun-uia@1.9.1
Pick your client — the config below is generated for this server (local stdio). Copy respects the “Pin version” switch above.
claude_desktop_config.json
{
"mcpServers": {
"bun-uia": {
"command": "npx",
"args": [
"-y",
"bun-uia"
]
}
}
}{
"mcpServers": {
"bun-uia": {
"command": "npx",
"args": [
"-y",
"bun-uia@1.9.1"
]
}
}
}Format verified against the official Claude Desktop docs ↗.
terminal
claude mcp add bun-uia -- npx -y bun-uia
claude mcp add bun-uia -- npx -y bun-uia@1.9.1
Format verified against the official Claude Code docs ↗.
.cursor/mcp.json
{
"mcpServers": {
"bun-uia": {
"command": "npx",
"args": [
"-y",
"bun-uia"
]
}
}
}{
"mcpServers": {
"bun-uia": {
"command": "npx",
"args": [
"-y",
"bun-uia@1.9.1"
]
}
}
}Format verified against the official Cursor docs ↗.
.vscode/mcp.json
{
"servers": {
"bun-uia": {
"command": "npx",
"args": [
"-y",
"bun-uia"
]
}
}
}{
"servers": {
"bun-uia": {
"command": "npx",
"args": [
"-y",
"bun-uia@1.9.1"
]
}
}
}Format verified against the official VS Code docs ↗.
mcp_config.json
{
"mcpServers": {
"bun-uia": {
"command": "npx",
"args": [
"-y",
"bun-uia"
]
}
}
}{
"mcpServers": {
"bun-uia": {
"command": "npx",
"args": [
"-y",
"bun-uia@1.9.1"
]
}
}
}Format verified against the official Windsurf docs ↗.
Defined in the server's official registry manifest. Required secrets are shown as <YOUR_…> placeholders in the configs above.
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.⭐ 20 stars · 最近更新于 30 天前
bun win32 Zero dependency Win32 FFI bindings for Bun on Windows. Each system DLL is a standalone @bun win32/ package with full type definitions. Install Requires Bun = 1.1.0 and Windows 10+. Usage After the first call resolves the symbol via dlopen / dlsym , the native function pointer is cached dir…
Summary from the project README — github.com/ObscuritySRL/bun-win32
Distributed as npm, listed under Browser Automation. Review our MCP security guide before granting access to real data.
bun win32 Zero dependency Win32 FFI bindings for Bun on Windows. Each system DLL is a standalone @bun win32/ package with full type definitions. Install Requires Bun = 1.1.0 and Windows 10+. Usage After the first call resolves the symbol via dlopen / dlsym , the native function pointer is cached dir
Run the install command shown above, then paste the config for your client (Claude Desktop, Claude Code, Cursor, VS Code or Windsurf) into its MCP settings and restart the client.
The MCP server itself is free to install. The source is public on https://github.com/ObscuritySRL/bun-win32. Any third-party service it calls may require its own API key and account.
Any MCP-compatible client can use it, including Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and custom agents.
Publish this server? Link back with a badge on your README or site — copy either snippet.
Markdown
[](https://mcpnav.net/server/bun-uia/)
HTML
<a href="https://mcpnav.net/server/bun-uia/"><img src="https://mcpnav.net/badge/bun-uia.svg" alt="Listed on MCPNav" height="20"></a>