feat(claude-in-chrome): support `url` param on `tabs_create_mcp`
Problem
mcp__claude-in-chrome__tabs_create_mcp always creates an empty chrome://newtab page. To land on a specific URL, you need a second mcp__claude-in-chrome__navigate call, which blocks until document.readyState === 'complete'. On dev servers (e.g. Next.js cold-start) that's 3–5 s of dead time per session before any automation can start.
Proposed change
Add an optional url parameter to tabs_create_mcp that passes through to chrome.tabs.create({ url }). Chrome's underlying API returns the tab object immediately after the tab is created (before the page loads), so the new tab call would return in <100 ms instead of waiting on full page load.
Today
mcp__claude-in-chrome__tabs_create_mcp({}) // ~50 ms
mcp__claude-in-chrome__navigate({ tabId, url }) // 3–5 s on a cold dev server
// Total: 3–5 s before agent can act
Proposed
mcp__claude-in-chrome__tabs_create_mcp({ url: "https://localhost:3000/..." }) // ~100 ms
// Total: <200 ms; agent can immediately poll/inspect via javascript_tool
Why this matters for agentic workflows
Tool-use agents pay this cost on every fresh session. For interactive testing (writing E2E specs, debugging UI flows, demoing a workflow), the 4–5 s feels like the harness is broken even when it isn't — it's all navigate blocking on load.
A complementary improvement would be a wait_until: 'commit' | 'load' option on navigate itself (Playwright/WebDriver have this), but the create-with-url path is the simpler win because Chrome's API already returns early.
Compatibility
- Backward compatible (param is optional)
- No new permissions needed (extension already has
tabspermission) - One-line wiring in the extension's tab-creation handler
Context
- Affected tool:
mcp__claude-in-chrome__tabs_create_mcp - Chrome API reference:
chrome.tabs.create - Discovered while building a chrome-test markdown spec for an onboarding flow — observed ~5 s/run was the create+navigate sequence, dwarfing the actual interaction time.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗