Most test-authoring assistants can write steps but cannot see the result, so a broken selector comes back as a guess. Here the same connection that adds commands also runs the test and returns per-step results and annotated page HTML, which is what makes 'run it and fix the failures' a real instruction. The dependency is absolute, though: with Selenix closed or its MCP switch off, every call fails at the bridge.
A bridge between an MCP client and a running Selenix desktop install. The MCP server translates tool calls into HTTP requests to a bridge inside the app, so a model can read the current test, add or fix commands, run it, and look at the browser while it does.
- Reading what exists — `get_test_list`, `get_current_test`, `get_test_by_name`, `get_project_info` and `get_active_suite`
- Seeing the page as the test sees it — `get_screenshot` captures the browser window, `get_page_html` returns the HTML with interactive elements annotated, `get_search_html` searches that HTML by regex
- Command reference on demand — `get_command_list` enumerates every Selenix command and `get_command_info` returns the documentation for one, so the model does not have to guess syntax
- Writing tests — `add_commands` inserts at a position, `clear_and_replace_commands` rewrites a test, `fix_commands` applies targeted updates, removals or insertions
- `run_test` executes a test and waits for the result, up to 2 minutes
- Reading the outcome — `get_step_results` returns pass and fail per step, `get_logs` pages through recent logs 20 at a time, `get_workspace_context` summarises the workspace
The Selenix desktop app installed and running, with System Settings > MCP Server set to Yes — that switch starts the local bridge the MCP server talks to. Also Node.js 18 or later. Install the npm package `@selenix/mcp-server` (version 1.0.7) globally, or point the client at the copy bundled inside the Selenix install. The bridge listens only on `127.0.0.1` and authenticates with a bearer token regenerated each time Selenix starts; connection details live in `~/.selenix/bridge.json` and are re-read on every call, so restarting Selenix does not mean restarting the client.
Build from source — clone the repository and build it, then point your client at the binary
