Skip to content

Quick Start

This guide walks through five basic operations to verify your setup and demonstrate core capabilities. The same MCP tool calls work from Claude Code, Hermes Agent, Pi Agent, omp, and standard mcp clients; examples use the shared JSON-RPC tool names.

Create a new browser window and navigate to a URL:

firefox_create_window({ url: "https://example.com" })

Returns a tabId you will use for subsequent commands.

{ "tabId": 42, "windowId": 1 }

Navigate an existing tab to a different URL:

firefox_navigate({ tabId: 42, url: "https://httpbin.org/html" })

Capture the current viewport. Screenshots use dynamic readiness detection to wait for network idle and visual stability before capture.

firefox_screenshot({ tabId: 42 })

Returns a base64-encoded JPEG (60% quality, 50% scale by default):

{
"tabId": 42,
"dataUrl": "data:image/jpeg;base64,...",
"readiness": {
"waitMs": 247,
"timedOut": false
}
}

Retrieve a structured JSON summary of the page — headings, links, buttons, forms — without a screenshot:

firefox_get_page_state({ tabId: 42 })
{
"title": "Herman Melville - Moby-Dick",
"url": "https://httpbin.org/html",
"headings": [{ "level": 1, "text": "Herman Melville - Moby-Dick" }],
"links": [],
"buttons": [],
"forms": []
}

This is faster and cheaper than a screenshot when you only need structural information.

Clean up when you are done:

firefox_close_tab({ tabId: 42 })

Claude Code may start with lazy discovery, so call firefox_activate before the first category-specific tool. Hermes Agent, Pi Agent, omp, and standard mcp clients that discover tools only once should register Claudezilla with --all-tools. After registration, the browser commands below are identical across Claude Code, Hermes Agent, Pi Agent, omp, and standard mcp clients.