In-depth architectural comparison of the BrowserTap MCP and Oswright MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
BrowserTap MCP
Developer Tools · Local stdio
Quality: 47/100 (Fair) | Auth: No auth required
Oswright
Developer Tools · Local stdio
Quality: 53/100 (Good) | Auth: No auth required
Verdict Summary: Choose BrowserTap MCP if you need specialized Developer Tools tools running via a local process. Choose Oswright if your workspace requires Developer Tools integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
B
Choose BrowserTap MCP when:
You need dedicated capabilities in the Developer Tools domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
report `package_version`, `bridge_version`, `extension_version`, `protocol_version`, connection state, ports, tabs, and the required recovery action. A missing bridge listener is started automatically when spawning is enabled; `restart_bridge_required=true` means a bridge that is still running must…
get_automation_profile
inspect whether the current MCP process uses `lab` or `safe`.
set_automation_profile
switch the current MCP process between `lab|safe`; the override is not persisted and does not reload the extension.
list_tabs
list connected tabs. Each carries a `browser` field. No parameters.
list_all_tabs
*(no tab needed)* list every open tab, including `chrome-extension://` pages that `list_tabs` hides. Those never become sessions, so they have no session id; drive them with `cdp_command(tab_id=...)`.
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
BrowserTap MCP is categorized under Developer Tools and uses a local stdio subprocess. In contrast, Oswright belongs to Developer Tools using local stdio subprocess. Select BrowserTap MCP when you need capabilities focused on developer tools and Oswright when you require tools for developer tools.
set the *target* tab for later calls. A `url_pattern` must match exactly one tab; if several match, select one with its full `session_id`. It does **not** raise the tab or focus the browser: `activate` defaults to `false`, so retargeting never disturbs what you are looking at. Pass `activate=true`,…
activate_tab
bring a tab to the foreground and focus its window. This is the explicit way to raise a tab, and the only one that does not involve approving physical input. Check `on_screen` in the reply: BTAP first asks Windows to restore a minimised browser, but `on_screen=false` means visibility still could no…
open_url
navigate the current tab. Global behavior remains `dismiss`; lab automatically accepts beforeunload on configured shell/IDE hosts. If the extension's `navigate` route is unavailable on a heavy SPA, BTAP falls back to `Page.navigate`. A CDP result with `isDownload=true` returns `{type:"download",sta…
download_file
download an HTTP(S) URL through Chrome's native download manager, using that browser profile's cookies and authenticated session. It waits by default and returns `status="completed"` plus a verified absolute `path`; interrupted downloads return `failed`, while a timeout or `wait=false` returns `in_…
open_new_tab
open a background tab by default with a unique `operation_id` and wait a bounded time for exact session/generation registration; pass `active=true` only when foreground work is genuinely required. Returns `{operation_id,tab_id,session_id,generation,ready,owned,opener,owner_id,load_status}`. The ext…
close_tabs
*(no tab needed)* accept native numeric tab ids or full `client:tabId` session ids, including `chrome-extension://` tabs. The default `only_if_agent_owned=true` requires the `owner_id` returned by `open_new_tab` and verifies the current lifecycle generation before closing, so pre-existing user tabs…
scan_page
read the page as simplified HTML or text. Returns `links` mapping each `#rN` ref in the content to its absolute URL, and `offscreen` + `hint` when content was left outside the viewport.
+43 more tools listed on main page
Oswright Tools (43)
screenshot
- Take a screenshot of the screen or a region. Returns the image as native MCP image content. Optionally saves to a file path.
get_screen_info
- Get screen dimensions and monitor count.
find_text_on_screen
- Find all occurrences of text on screen using OCR. Returns matches with coordinates and confidence.
read_screen_text
- Read ALL visible text on the screen using OCR. Returns every detected text element with position.
find_image_on_screen
- Find all occurrences of a template image on screen using OpenCV template matching.
mouse_click
- Click the mouse at coordinates or current position. Returns screenshot.
mouse_double_click
- Double-click at coordinates or current position. Returns screenshot.
mouse_move
- Move the mouse cursor to screen coordinates.
mouse_scroll
- Scroll the mouse wheel. Returns screenshot.
mouse_drag
- Drag from one point to another. Returns screenshot.
get_mouse_position
- Get the current mouse cursor position.
type_text
- Type text character by character. Returns screenshot.