A side-by-side look at the Ui Annotator MCP and Vibe Test — Browser Testing Agent MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Ui Annotator MCP for browser automation work as a local process; choose Vibe Test — Browser Testing Agent for browser automation as a local process. You can also run both side by side in one mcpServers block.
UI_ANNOTATOR_PORT.annotate, get_elements, highlight_element.configure, scan_codebase, get_context.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Browser Automation | Browser Automation |
| Quality signal | 60/100 · Good | 59/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | UI_ANNOTATOR_PORT | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 21 | 17 |
| Directory activity | 2 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 5 | 14 |
| Full listing | View Ui Annotator MCP | View Vibe Test — Browser Testing Agent |
annotateOpen a web page with hover annotations. Returns a proxy URL that adds interactive element labels to any page. User opens this URL in any browser to see annotations on hover.get_elementsGet all UI elements detected on the currently annotated page. Returns element names, CSS selectors, positions, and sizes. Use this to understand what the user is referring to when they describe a UI element.highlight_elementBriefly flash-highlight a specific element on the page so the user can see which element you are referring to. Useful for confirming "do you mean this element?"rescan_elementsForce the annotated page to rescan all UI elements. Use this after the page content has changed (e.g. after navigation, DOM updates, or user interaction).inspect_modeToggle inspect mode on the annotated page. When ON, the user can click any element to copy its name. When OFF, the page behaves normally. Use this to help the user copy element names for communicating design changes.configureStructured setup result and idempotent project filesscan_codebaseRoutes, forms, coverage map, generated scenarios, `route_changes` since last scanget_contextActual source code with real field names and selectorsloginPost-login screenshot, token state, API calls observedscan_page_elementsElement list with selectors plus page screenshotexplore_pageInteraction results, API calls, errors, screenshotexecute_scenarioStep-by-step logs plus screenshotsget_coverageCoverage entries, gaps, available scenariossuggest_testsPrioritized, ready-to-run scenarios with stepstake_screenshotScreenshot of any URLgenerate_reportReport path plus summaryrun_full_testFull results plus `snapshot_diff` vs last runPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"mcpware-ui-annotator-mcp": {
"command": "npx",
"args": [
"-y",
"@mcpware/ui-annotator"
],
"env": {
"UI_ANNOTATOR_PORT": "YOUR_UI_ANNOTATOR_PORT_HERE"
}
}
}
}
{
"mcpServers": {
"vibe-test-browser-testing-agent": {
"command": "npx",
"args": [
"-y",
"vibe-testing@latest"
]
}
}
}