Real signed-browser automation for AI agents, over a local stdio MCP server.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Uindow drives a real, signed Chromium/Electron browser with genuine OS-level input - actual cursor movement, real keystrokes, and native file dialogs rather than synthetic page events. It runs entirely on your own machine and your own network, and every line of code it executes sits in plain sight in this repository.
Automate it three ways:
In order to use the app, create an account for free at uindow.com and follow the on-screen instructions.
We build signed binaries for macOS, Windows, and Linux directly from the dist
source, and host them on the GitHub Releases
page (current and older versions) and on the Uindow install page.
npxOne command to fetch the CLI and launch the app:
Other lifecycle commands:
Clone the repository and launch the app directly from source.
Uindow exposes a local Model Context Protocol server, so any MCP-compatible client can drive web-automation agents directly. The server communicates over stdio securely and is launched on demand by the AI assistant.
Requirements: Node.js 18+ with npx on your PATH.
Uindow provides a 1-click connector for the most popular AI assistants.
Go to Uindow > AI assistants > Connect
| AI assistant | Instant connect | Root key | Config location |
|---|---|---|---|
| Claude Code (CLI + Desktop Code) | β yes | mcpServers | ~/.claude.json |
| Claude Desktop (Chat / Cowork) | β yes | mcpServers | claude_desktop_config.json |
| Cursor | β yes | mcpServers | ~/.cursor/mcp.json |
| VS Code (Copilot) | β yes | servers | mcp.json (MCP: Open User Configuration) |
| Windsurf | β yes | mcpServers | ~/.codeium/windsurf/mcp_config.json |
| Zed | β yes | context_servers | settings.json |
| Codex | β yes | TOML [mcp_servers.*] | ~/.codex/config.toml |
| Gemini CLI | β yes | mcpServers | ~/.gemini/settings.json |
| Cline | β yes | mcpServers | cline_mcp_settings.json |
| Goose | β yes | YAML extensions | ~/.config/goose/config.yaml |
Go to Settings > Tools > AI Assistant > Model Context Protocol (MCP) and click Add, then paste the JSON. In the same dialog, set the scope to Global rather than project-scoped so the server is available in every project you open, then click Apply to start it.
Most remaining AI assistants accept the same object under mcpServers. Look for the config file
in your home directory (~/.<client>/...) rather than the one in your project root - the
home-directory copy is the global one:
Point the AI assistant at the command npx with arguments -y @uindow/cli@latest mcp.
If your AI assistant requires an explicit transport field, use "type": "stdio".
Run the launch command by hand first - it's the fastest way to separate "Uindow is broken" from "the AI assistant can't start it":
A stdio server prints nothing and blocks. A silent, hung terminal means it started correctly; press Ctrl-C and go back to your AI assistant. Any stack trace you see here is the real error your AI assistant was swallowing.
Then confirm the scope took: open the AI assistant from a different directory than the one you configured it in, and check that Uindow's tools are still listed. If they vanish, the entry landed in a project-local config.
Server works in one project but not another.
claude mcp list from the other directory will come up
empty; re-add with --scope user. In Gemini CLI, re-add with -s user. In Cursor and VS
Code, move the entry from .cursor/mcp.json or .vscode/mcp.json to ~/.cursor/mcp.json
or the user-profile mcp.json.spawn npx ENOENT / server never starts in a GUI app.
PATH, which bites anyone using nvm, asdf, or Volta. Run which npx (where npx
on Windows) and put the absolute path in command.Config saved, nothing happened.
Tools missing after adding the server.
servers for VS Code, context_servers for Zed, mcp_servers in TOML for Codex,
mcpServers everywhere else. A wrong key is ignored silently in most AI assistants.Duplicate or shadowed entries.
uindow entry will silently win over the new global one.
Delete the stale entry rather than editing both.Server connects but tools aren't used.
"alwaysLoad": true on the server entry to
load its tools at session start.Where to look next.
claude mcp list and /mcp (Claude Code), Output panel > MCP
Logs (Cursor), Output > MCP (VS Code), ~/Library/Logs/Claude/mcp*.log or
%APPDATA%\Claude\logs\mcp*.log (Claude Desktop).You can run Uindow from any CI/CD pipeline or command-line interface.
Alternatively, you can use node dist/bin.js --help instead of npx @uindow/cli --help
for a faster response.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/uindow)<a href="https://allmcps.com/mcp/uindow"><img src="https://allmcps.com/api/badge/uindow?style=directory" alt="Uindow on AllMCPs" /></a>