Skip to content

[Bug] MCP Server v0.0.82 - Multiple tool implementation failures (window management, PDF, DOM) #929

Description

Description

After comprehensive testing of all 62 BrowserOS MCP tools (v0.0.82), I identified 6 tools with server-side implementation bugs that are not yet tracked as issues. These tools fail consistently with reproducible errors.

Affected Tools & Errors

1. create_window / create_hidden_window

Error: MCP error -32602: Structured content does not match the tool's output schema: data/window must NOT have additional properties

Root Cause: Server returns window data with extra fields not defined in the tool's output schema. The schema has additionalProperties: false but the server response includes fields like incognito, alwaysOnTop, or other Chrome window properties not declared in the schema.

Reproduction:

Call create_window() → Schema validation fails
Call create_hidden_window() → Same schema error

2. move_page / activate_window

Error: Internal error in move_page: CDP error: Browser window not found

Root Cause: The CDP window management implementation appears incomplete. The server cannot resolve window IDs returned by list_windows (which also has schema issues). Window handle mapping between CDP and MCP layer is broken.

Reproduction:

1. Call list_windows() → Returns windows with IDs
2. Call move_page(page=21, windowId=0) → "Browser window not found"
3. Call activate_window(windowId=0) → Same error

3. save_pdf

Error: MCP error -32001: Request timed out

Root Cause: PDF generation via CDP Page.printToPDF hangs indefinitely. Likely missing timeout handling or the CDP command isn't completing for certain page types.

Reproduction:

1. Navigate to any page (e.g., https://the-internet.herokuapp.com/javascript_alerts)
2. Call save_pdf(page=10, path="/tmp/test.pdf")
3. Request times out after 60s

4. get_dom

Error: Internal error in get_dom: CDP error: Could not find node with given id

Root Cause: DOM node resolution fails when using CSS selectors. The server's DOM.querySelector or DOM.querySelectorAll CDP calls aren't properly handling the node ID lifecycle.

Reproduction:

1. Navigate to any page
2. Call get_dom(page=10, selector="h1")
3. Returns "Could not find node with given id"

Environment

  • BrowserOS Version: 146.0.7821.31 (macOS)
  • MCP Server Version: v0.0.82
  • MCP URL: http://127.0.0.1:9002/mcp
  • Client: opencode v1.14.33
  • OS: macOS (darwin)

Testing Methodology

All 62 tools were tested systematically:

  • ✅ 57 tools working correctly
  • ❌ 6 tools failing with server-side errors
  • ⚠️ drag tool works with coordinates (drag_at) but not element-to-element

Impact

These bugs block common automation workflows:

  • Multi-window browser automation
  • PDF export/save functionality
  • DOM inspection/extraction with selectors
  • Window management for complex tab workflows

Related

Suggested Fixes

  1. Schema errors: Update output schemas to match actual server responses, or strip extra fields before returning
  2. Window CDP errors: Fix window ID mapping between CDP Browser.getWindowForTarget and MCP layer
  3. PDF timeout: Add proper timeout handling and error recovery for Page.printToPDF
  4. DOM errors: Fix DOM.querySelector implementation to properly resolve node IDs

Happy to provide additional test cases or help verify fixes.

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions