Complete reference for all available tools and their parameters.
- Browser Management
- Screenshots & Visual
- Network Monitoring
- Content Analysis
- Interaction
- Data Management
- Response Format
List all currently open browser windows and tabs.
Parameters: None
Response:
{
"windowCount": 2,
"tabCount": 5,
"windows": [
{
"windowId": 123,
"tabs": [
{
"tabId": 456,
"url": "https://example.com",
"title": "Example Page",
"active": true
}
]
}
]
}Navigate to a URL with optional viewport control.
Parameters:
url(string, optional): URL to navigate to (omit whenrefresh=true)newWindow(boolean, optional): Create new window (default: false)tabId(number, optional): Target an existing tab by ID (navigate/refresh that tab)background(boolean, optional): Do not activate the tab or focus the window (default: false)width(number, optional): Viewport width in pixels (default: 1280)height(number, optional): Viewport height in pixels (default: 720)
Example:
{
"url": "https://example.com",
"newWindow": true,
"width": 1920,
"height": 1080
}Close specific tabs or windows.
Parameters:
tabIds(array, optional): Array of tab IDs to closewindowIds(array, optional): Array of window IDs to close
Example:
{
"tabIds": [123, 456],
"windowIds": [789]
}Switch to a specific browser tab.
Parameters:
tabId(number, required): The ID of the tab to switch to.windowId(number, optional): The ID of the window where the tab is located.
Example:
{
"tabId": 456,
"windowId": 123
}Navigate browser history.
Parameters:
direction(string, required): "back" or "forward"tabId(number, optional): Specific tab ID (default: active tab)
Example:
{
"direction": "back",
"tabId": 123
}Take advanced screenshots with various options.
Parameters:
name(string, optional): Screenshot filenameselector(string, optional): CSS selector for element screenshottabId(number, optional): Target tab to capture (default: active tab)background(boolean, optional): Attempt capture without bringing tab/window to foreground (viewport-only uses CDP)width(number, optional): Width in pixels (default: 800)height(number, optional): Height in pixels (default: 600)storeBase64(boolean, optional): Return base64 data (default: false)fullPage(boolean, optional): Capture full page (default: true)
Example:
{
"selector": ".main-content",
"fullPage": true,
"storeBase64": true,
"width": 1920,
"height": 1080
}Response:
{
"success": true,
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"dimensions": {
"width": 1920,
"height": 1080
}
}Start capturing network requests using webRequest API.
Parameters:
url(string, optional): URL to navigate to and capturemaxCaptureTime(number, optional): Maximum capture time in ms (default: 30000)inactivityTimeout(number, optional): Stop after inactivity in ms (default: 3000)includeStatic(boolean, optional): Include static resources (default: false)
Example:
{
"url": "https://api.example.com",
"maxCaptureTime": 60000,
"includeStatic": false
}Stop network capture and return collected data.
Parameters: None
Response:
{
"success": true,
"capturedRequests": [
{
"url": "https://api.example.com/data",
"method": "GET",
"status": 200,
"requestHeaders": {...},
"responseHeaders": {...},
"responseTime": 150
}
],
"summary": {
"totalRequests": 15,
"captureTime": 5000
}
}Start capturing with Chrome Debugger API (includes response bodies).
Parameters:
url(string, optional): URL to navigate to and capture
Stop debugger capture and return data with response bodies.
Send custom HTTP requests.
Parameters:
url(string, required): Request URLmethod(string, optional): HTTP method (default: "GET")headers(object, optional): Request headersbody(string, optional): Request body
Example:
{
"url": "https://api.example.com/data",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"body": "{\"key\": \"value\"}"
}Build an accessibility-like tree of the current page (visible viewport by default) with stable ref_* identifiers and viewport info. Useful for semantic element discovery or agent planning.
Parameters:
filter(string, optional):interactiveto only include interactive elements; default includes structural and labeled nodes.tabId(number, optional): Target an existing tab by ID (default: active tab).
Example:
{
"filter": "interactive"
}Response contains pageContent (text tree), viewport, and a refMapCount summary. Use chrome_get_interactive_elements or your own logic to act on returned refs.
AI-powered semantic search across browser tabs.
Parameters:
query(string, required): Search query
Example:
{
"query": "machine learning tutorials"
}Response:
{
"success": true,
"totalTabsSearched": 10,
"matchedTabsCount": 3,
"vectorSearchEnabled": true,
"indexStats": {
"totalDocuments": 150,
"totalTabs": 10,
"semanticEngineReady": true
},
"matchedTabs": [
{
"tabId": 123,
"url": "https://example.com/ml-tutorial",
"title": "Machine Learning Tutorial",
"semanticScore": 0.85,
"matchedSnippets": ["Introduction to machine learning..."],
"chunkSource": "content"
}
]
}Extract HTML or text content from web pages.
Parameters:
format(string, optional): "html" or "text" (default: "text")selector(string, optional): CSS selector for specific elementstabId(number, optional): Specific tab ID (default: active tab)background(boolean, optional): Do not activate tab/focus window while fetching (default: false)
Example:
{
"format": "text",
"selector": ".article-content"
}Replaced by chrome_read_page as the primary discovery tool. The read_page implementation will automatically fallback to the interactive-elements logic when the accessibility tree is unavailable or too sparse. This tool is no longer listed via ListTools and is kept only for backward compatibility.
Unified advanced interaction tool that prioritizes high-level DOM actions with CDP fallback. Supports hover, click, drag, scroll, typing, key chords, fill, wait and screenshot. If a recent screenshot was taken via chrome_screenshot, coordinates are auto-scaled from screenshot space to viewport space.
Parameters:
action(string, required):left_click|right_click|double_click|triple_click|left_click_drag|scroll|type|key|fill|hover|wait|screenshottabId(number, optional): Target an existing tab by ID (default: active tab)background(boolean, optional): Avoid focusing/activating tab/window for certain operations (best-effort)ref(string, optional): element ref fromchrome_read_page(preferred). Used for click/scroll/type/key and as drag end when providedcoordinates(object, optional):{ "x": 100, "y": 200 }for click/scroll or drag endstartRef(string, optional): element ref for drag startstartCoordinates(object, optional): forleft_click_dragwhen nostartRefscrollDirection(string, optional):up|down|left|rightscrollAmount(number, optional): ticks 1–10 (default 3)text(string, optional): fortype(raw text) orkey(space-separated chords/keys like"cmd+a Enter")duration(number, optional): seconds forwait(max 30)selector(string, optional): forfillwhen norefvalue(string, optional): forfillvalue
Examples:
{ "action": "left_click", "coordinates": { "x": 420, "y": 260 } }{ "action": "key", "text": "cmd+a Backspace" }{ "action": "fill", "ref": "ref_7", "value": "user@example.com" }
```json
{ "action": "hover", "ref": "ref_12", "duration": 0.6 }
```json
{ "action": "left_click_drag", "startRef": "ref_10", "ref": "ref_15" }
Click elements using a ref, selector, or coordinates.
Parameters:
ref(string, optional): Element ref fromchrome_read_page(preferred when available)selector(string, optional): CSS selector for target elementcoordinates(object, optional):{ "x": 120, "y": 240 }viewport coordinates
At least one of ref, selector, or coordinates must be provided.
Example:
{
"ref": "ref_42"
}Fill form fields or select options.
Parameters:
ref(string, optional): Element ref fromchrome_read_pageselector(string, optional): CSS selector for target elementvalue(string, required): Value to fill or select
Provide ref or selector to identify the element.
Example:
{
"ref": "ref_7",
"value": "user@example.com"
}Simulate keyboard input and shortcuts.
Parameters:
keys(string, required): Key combination (e.g., "Ctrl+C", "Enter")selector(string, optional): Target element selectordelay(number, optional): Delay between keystrokes in ms (default: 0)
Example:
{
"keys": "Ctrl+A",
"selector": "#text-input",
"delay": 100
}Search browser history with filters.
Parameters:
text(string, optional): Search text in URL/titlestartTime(string, optional): Start date (ISO format)endTime(string, optional): End date (ISO format)maxResults(number, optional): Maximum results (default: 100)excludeCurrentTabs(boolean, optional): Exclude current tabs (default: true)
Example:
{
"text": "github",
"startTime": "2024-01-01",
"maxResults": 50
}Search bookmarks by keywords.
Parameters:
query(string, optional): Search keywordsmaxResults(number, optional): Maximum results (default: 100)folderPath(string, optional): Search within specific folder
Example:
{
"query": "documentation",
"maxResults": 20,
"folderPath": "Work/Resources"
}Add new bookmarks with folder support.
Parameters:
url(string, optional): URL to bookmark (default: current tab)title(string, optional): Bookmark title (default: page title)parentId(string, optional): Parent folder ID or pathcreateFolder(boolean, optional): Create folder if not exists (default: false)
Example:
{
"url": "https://example.com",
"title": "Example Site",
"parentId": "Work/Resources",
"createFolder": true
}Delete bookmarks by ID or URL.
Parameters:
bookmarkId(string, optional): Bookmark ID to deleteurl(string, optional): URL to find and delete
Example:
{
"url": "https://example.com"
}All tools return responses in the following format:
{
"content": [
{
"type": "text",
"text": "JSON string containing the actual response data"
}
],
"isError": false
}For errors:
{
"content": [
{
"type": "text",
"text": "Error message describing what went wrong"
}
],
"isError": true
}// 1. Navigate to a page
await callTool('chrome_navigate', {
url: 'https://example.com',
});
// 2. Take a screenshot
const screenshot = await callTool('chrome_screenshot', {
fullPage: true,
storeBase64: true,
});
// 3. Start network monitoring
await callTool('chrome_network_capture_start', {
maxCaptureTime: 30000,
});
// 4. Interact with the page
await callTool('chrome_click_element', {
selector: '#load-data-button',
});
// 5. Search content semantically
const searchResults = await callTool('search_tabs_content', {
query: 'user data analysis',
});
// 6. Stop network capture
const networkData = await callTool('chrome_network_capture_stop');
// 7. Save bookmark
await callTool('chrome_bookmark_add', {
title: 'Data Analysis Page',
parentId: 'Work/Analytics',
});This API provides comprehensive browser automation capabilities with AI-enhanced content analysis and semantic search features.