Quick Start
This guide walks through five basic operations to verify your setup and demonstrate core capabilities. All examples show MCP tool calls as they appear in Claude Code. ## 1. Open a Page Create a new browser window and navigate to a URL: ```js firefox_create_window({ url: "https://example.com" }) ``` Returns a `tabId` you will use for subsequent commands. ```json { "tabId": 42, "windowId": 1 } ``` ## 2. Navigate Navigate an existing tab to a different URL: ```js firefox_navigate({ tabId: 42, url: "https://httpbin.org/html" }) ``` ## 3. Take a Screenshot Capture the current viewport. Screenshots use dynamic readiness detection to wait for network idle and visual stability before capture. ```js firefox_screenshot({ tabId: 42 }) ``` Returns a base64-encoded JPEG (60% quality, 50% scale by default): ```json { "tabId": 42, "dataUrl": "data:image/jpeg;base64,...", "readiness": { "waitMs": 247, "timedOut": false } } ``` ## 4. Get Page State Retrieve a structured JSON summary of the page -- headings, links, buttons, forms -- without a screenshot: ```js firefox_get_page_state({ tabId: 42 }) ``` ```json { "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. ## 5. Close the Tab Clean up when you are done: ```js firefox_close_tab({ tabId: 42 }) ``` ## Next Steps - Browse the [MCP Tools](/tools/browser-control/) reference for the full command list - Read the [Screenshots guide](/guides/screenshots/) for capture options and timing - Learn about [Multi-Agent coordination](/guides/multi-agent/) if running multiple Claude sessionsThis guide walks through five basic operations to verify your setup and demonstrate core capabilities. All examples show MCP tool calls as they appear in Claude Code.
1. Open a Page
Section titled “1. Open a Page”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 }2. Navigate
Section titled “2. Navigate”Navigate an existing tab to a different URL:
firefox_navigate({ tabId: 42, url: "https://httpbin.org/html" })3. Take a Screenshot
Section titled “3. Take a Screenshot”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 }}4. Get Page State
Section titled “4. Get Page State”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.
5. Close the Tab
Section titled “5. Close the Tab”Clean up when you are done:
firefox_close_tab({ tabId: 42 })Next Steps
Section titled “Next Steps”- Browse the MCP Tools reference for the full command list
- Read the Screenshots guide for capture options and timing
- Learn about Multi-Agent coordination if running multiple Claude sessions