Repository navigation
v0.2.2: every browser flag on the MCP server, throttling that holds, readable tool errors
Latest0.2.2: every browser flag on the MCP server, throttling that actually holds, and errors an agent can read
jevnav mcptakes the same browser flags as every other command:--browser(chromium, firefox, webkit),--locale,--timezone,--user-agent,--dialog-policy. The server already supported them internally; the parser never exposed them.- A persistent profile (
--user-data-dir) now gets--locale,--timezoneand--user-agent. They were silently dropped on all three engines (measured). --cdprefuses what it cannot honour (another engine, a profile, locale/timezone/user agent) at startup with exit 2, instead of ignoring it. Behaviour change:--cdptogether with--user-data-dirused to ignore the profile silently and now stops with an error; drop one of the two.- Throttling:
emulate(cpu_throttle=…, network_conditions=…)set the rate over CDP and detached right away, and detaching resets it, so throttling never took effect (measured: 22 ms → 140 ms → back to 22 ms). One CDP session per tab now stays attached;cpu_throttle=1andnetwork_conditions="No throttling"switch it off;latency_ms/download_kbps/upload_kbpswork on their own;offlinekeeps working on a throttled tab. The MCPemulatetool now exposes all of it (it never did). - CDP-only tools (
perf_metrics,heap_snapshot, throttling) say they need--browser chromiumon a Firefox/WebKit server, before applying anything. - MCP SDK 2.x sends only "Error executing tool X" for an ordinary exception. Tool errors now reach the client with their type and reason (a path outside
--file-root,--no-eval, a non-http URL, …); unexpected failures keep their traceback in the server log. new_page,select_pageandclose_pagelaunch the browser when they are the session's first call, instead of claiming "not an injected page".close_pageon the tab being driven, when it was the last one, left the session on the closed tab (page_statethen failed). It now moves to the last remaining tab; closing the only tab and out-of-range indexes are clear errors.- An unknown
network_conditionsname is always refused (it used to be dropped silently when explicit values came with it). - Chromium launch flags are no longer passed to Firefox/WebKit (WebKit's Linux MiniBrowser exits on an unknown option).
- Docs: the README is restructured for first-time readers (full MCP reference in
docs/mcp.md, evidence indocs/evidence.md, game mode indocs/games.md), and stale claims were fixed. - Tests: 267 (was 240), covering real Firefox/WebKit profiles, an MCP server over stdio on Firefox, measured CPU/network throttling, offline on a throttled tab and error text over MCP. The MCP tests also pass on the SDK floor (mcp 1.28.1).
Reviewed by an independent reviewer over two passes.