feat(claude-in-chrome): support `url` param on `tabs_create_mcp`

Resolved 💬 1 comment Opened May 18, 2026 by JulianWell Closed Jun 16, 2026

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 tabs permission)
  • 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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗