530 lines
9.7 KiB
Markdown
530 lines
9.7 KiB
Markdown
# Chrome MCP Server API 参考 📚
|
||
|
||
所有可用工具及其参数的完整参考。
|
||
|
||
## 📋 目录
|
||
|
||
- [浏览器管理](#浏览器管理)
|
||
- [截图和视觉](#截图和视觉)
|
||
- [网络监控](#网络监控)
|
||
- [内容分析](#内容分析)
|
||
- [交互操作](#交互操作)
|
||
- [数据管理](#数据管理)
|
||
- [响应格式](#响应格式)
|
||
|
||
## 📊 浏览器管理
|
||
|
||
### `get_windows_and_tabs`
|
||
|
||
列出当前打开的所有浏览器窗口和标签页。
|
||
|
||
**参数**:无
|
||
|
||
**响应**:
|
||
|
||
```json
|
||
{
|
||
"windowCount": 2,
|
||
"tabCount": 5,
|
||
"windows": [
|
||
{
|
||
"windowId": 123,
|
||
"tabs": [
|
||
{
|
||
"tabId": 456,
|
||
"url": "https://example.com",
|
||
"title": "示例页面",
|
||
"active": true
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### `chrome_navigate`
|
||
|
||
导航到指定 URL,可选择控制视口。
|
||
|
||
**参数**:
|
||
|
||
- `url` (字符串,必需):要导航到的 URL
|
||
- `newWindow` (布尔值,可选):创建新窗口(默认:false)
|
||
- `width` (数字,可选):视口宽度(像素,默认:1280)
|
||
- `height` (数字,可选):视口高度(像素,默认:720)
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"url": "https://example.com",
|
||
"newWindow": true,
|
||
"width": 1920,
|
||
"height": 1080
|
||
}
|
||
```
|
||
|
||
### `chrome_close_tabs`
|
||
|
||
关闭指定的标签页或窗口。
|
||
|
||
**参数**:
|
||
|
||
- `tabIds` (数组,可选):要关闭的标签页 ID 数组
|
||
- `windowIds` (数组,可选):要关闭的窗口 ID 数组
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"tabIds": [123, 456],
|
||
"windowIds": [789]
|
||
}
|
||
```
|
||
|
||
### `chrome_go_back_or_forward`
|
||
|
||
浏览器历史导航。
|
||
|
||
**参数**:
|
||
|
||
- `direction` (字符串,必需):"back" 或 "forward"
|
||
- `tabId` (数字,可选):特定标签页 ID(默认:活动标签页)
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"direction": "back",
|
||
"tabId": 123
|
||
}
|
||
```
|
||
|
||
## 📸 截图和视觉
|
||
|
||
### `chrome_screenshot`
|
||
|
||
使用各种选项进行高级截图。
|
||
|
||
**参数**:
|
||
|
||
- `name` (字符串,可选):截图文件名
|
||
- `selector` (字符串,可选):元素截图的 CSS 选择器
|
||
- `width` (数字,可选):宽度(像素,默认:800)
|
||
- `height` (数字,可选):高度(像素,默认:600)
|
||
- `storeBase64` (布尔值,可选):返回 base64 数据(默认:false)
|
||
- `fullPage` (布尔值,可选):捕获整个页面(默认:true)
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"selector": ".main-content",
|
||
"fullPage": true,
|
||
"storeBase64": true,
|
||
"width": 1920,
|
||
"height": 1080
|
||
}
|
||
```
|
||
|
||
**响应**:
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
|
||
"dimensions": {
|
||
"width": 1920,
|
||
"height": 1080
|
||
}
|
||
}
|
||
```
|
||
|
||
## 🌐 网络监控
|
||
|
||
### `chrome_network_capture_start`
|
||
|
||
使用 webRequest API 开始捕获网络请求。
|
||
|
||
**参数**:
|
||
|
||
- `url` (字符串,可选):要导航并捕获的 URL
|
||
- `maxCaptureTime` (数字,可选):最大捕获时间(毫秒,默认:30000)
|
||
- `inactivityTimeout` (数字,可选):无活动后停止时间(毫秒,默认:3000)
|
||
- `includeStatic` (布尔值,可选):包含静态资源(默认:false)
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"url": "https://api.example.com",
|
||
"maxCaptureTime": 60000,
|
||
"includeStatic": false
|
||
}
|
||
```
|
||
|
||
### `chrome_network_capture_stop`
|
||
|
||
停止网络捕获并返回收集的数据。
|
||
|
||
**参数**:无
|
||
|
||
**响应**:
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"capturedRequests": [
|
||
{
|
||
"url": "https://api.example.com/data",
|
||
"method": "GET",
|
||
"status": 200,
|
||
"requestHeaders": {...},
|
||
"responseHeaders": {...},
|
||
"responseTime": 150
|
||
}
|
||
],
|
||
"summary": {
|
||
"totalRequests": 15,
|
||
"captureTime": 5000
|
||
}
|
||
}
|
||
```
|
||
|
||
### `chrome_network_debugger_start`
|
||
|
||
使用 Chrome Debugger API 开始捕获(包含响应体)。
|
||
|
||
**参数**:
|
||
|
||
- `url` (字符串,可选):要导航并捕获的 URL
|
||
|
||
### `chrome_network_debugger_stop`
|
||
|
||
停止调试器捕获并返回包含响应体的数据。
|
||
|
||
### `chrome_network_request`
|
||
|
||
发送自定义 HTTP 请求。
|
||
|
||
**参数**:
|
||
|
||
- `url` (字符串,必需):请求 URL
|
||
- `method` (字符串,可选):HTTP 方法(默认:"GET")
|
||
- `headers` (对象,可选):请求头
|
||
- `body` (字符串,可选):请求体
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"url": "https://api.example.com/data",
|
||
"method": "POST",
|
||
"headers": {
|
||
"Content-Type": "application/json"
|
||
},
|
||
"body": "{\"key\": \"value\"}"
|
||
}
|
||
```
|
||
|
||
## 🔍 内容分析
|
||
|
||
### `search_tabs_content`
|
||
|
||
跨浏览器标签页的 AI 驱动语义搜索。
|
||
|
||
**参数**:
|
||
|
||
- `query` (字符串,必需):搜索查询
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"query": "机器学习教程"
|
||
}
|
||
```
|
||
|
||
**响应**:
|
||
|
||
```json
|
||
{
|
||
"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": "机器学习教程",
|
||
"semanticScore": 0.85,
|
||
"matchedSnippets": ["机器学习简介..."],
|
||
"chunkSource": "content"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### `chrome_get_web_content`
|
||
|
||
从网页提取 HTML 或文本内容。
|
||
|
||
**参数**:
|
||
|
||
- `format` (字符串,可选):"html" 或 "text"(默认:"text")
|
||
- `selector` (字符串,可选):特定元素的 CSS 选择器
|
||
- `tabId` (数字,可选):特定标签页 ID(默认:活动标签页)
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"format": "text",
|
||
"selector": ".article-content"
|
||
}
|
||
```
|
||
|
||
### `chrome_get_interactive_elements`
|
||
|
||
查找页面上可点击和交互的元素。
|
||
|
||
**参数**:
|
||
|
||
- `tabId` (数字,可选):特定标签页 ID(默认:活动标签页)
|
||
|
||
**响应**:
|
||
|
||
```json
|
||
{
|
||
"elements": [
|
||
{
|
||
"selector": "#submit-button",
|
||
"type": "button",
|
||
"text": "提交",
|
||
"visible": true,
|
||
"clickable": true
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
## 🎯 交互操作
|
||
|
||
### `chrome_click_element`
|
||
|
||
使用 CSS 选择器点击元素。
|
||
|
||
**参数**:
|
||
|
||
- `selector` (字符串,必需):目标元素的 CSS 选择器
|
||
- `tabId` (数字,可选):特定标签页 ID(默认:活动标签页)
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"selector": "#submit-button"
|
||
}
|
||
```
|
||
|
||
### `chrome_fill_or_select`
|
||
|
||
填充表单字段或选择选项。
|
||
|
||
**参数**:
|
||
|
||
- `selector` (字符串,必需):目标元素的 CSS 选择器
|
||
- `value` (字符串,必需):要填充或选择的值
|
||
- `tabId` (数字,可选):特定标签页 ID(默认:活动标签页)
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"selector": "#email-input",
|
||
"value": "user@example.com"
|
||
}
|
||
```
|
||
|
||
### `chrome_keyboard`
|
||
|
||
模拟键盘输入和快捷键。
|
||
|
||
**参数**:
|
||
|
||
- `keys` (字符串,必需):按键组合(如:"Ctrl+C"、"Enter")
|
||
- `selector` (字符串,可选):目标元素选择器
|
||
- `delay` (数字,可选):按键间延迟(毫秒,默认:0)
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"keys": "Ctrl+A",
|
||
"selector": "#text-input",
|
||
"delay": 100
|
||
}
|
||
```
|
||
|
||
## 📚 数据管理
|
||
|
||
### `chrome_history`
|
||
|
||
使用过滤器搜索浏览器历史记录。
|
||
|
||
**参数**:
|
||
|
||
- `text` (字符串,可选):在 URL/标题中搜索文本
|
||
- `startTime` (字符串,可选):开始日期(ISO 格式)
|
||
- `endTime` (字符串,可选):结束日期(ISO 格式)
|
||
- `maxResults` (数字,可选):最大结果数(默认:100)
|
||
- `excludeCurrentTabs` (布尔值,可选):排除当前标签页(默认:true)
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"text": "github",
|
||
"startTime": "2024-01-01",
|
||
"maxResults": 50
|
||
}
|
||
```
|
||
|
||
### `chrome_bookmark_search`
|
||
|
||
按关键词搜索书签。
|
||
|
||
**参数**:
|
||
|
||
- `query` (字符串,可选):搜索关键词
|
||
- `maxResults` (数字,可选):最大结果数(默认:100)
|
||
- `folderPath` (字符串,可选):在特定文件夹内搜索
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"query": "文档",
|
||
"maxResults": 20,
|
||
"folderPath": "工作/资源"
|
||
}
|
||
```
|
||
|
||
### `chrome_bookmark_add`
|
||
|
||
添加支持文件夹的新书签。
|
||
|
||
**参数**:
|
||
|
||
- `url` (字符串,可选):要收藏的 URL(默认:当前标签页)
|
||
- `title` (字符串,可选):书签标题(默认:页面标题)
|
||
- `parentId` (字符串,可选):父文件夹 ID 或路径
|
||
- `createFolder` (布尔值,可选):如果不存在则创建文件夹(默认:false)
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"url": "https://example.com",
|
||
"title": "示例网站",
|
||
"parentId": "工作/资源",
|
||
"createFolder": true
|
||
}
|
||
```
|
||
|
||
### `chrome_bookmark_delete`
|
||
|
||
按 ID 或 URL 删除书签。
|
||
|
||
**参数**:
|
||
|
||
- `bookmarkId` (字符串,可选):要删除的书签 ID
|
||
- `url` (字符串,可选):要查找并删除的 URL
|
||
|
||
**示例**:
|
||
|
||
```json
|
||
{
|
||
"url": "https://example.com"
|
||
}
|
||
```
|
||
|
||
## 📋 响应格式
|
||
|
||
所有工具都返回以下格式的响应:
|
||
|
||
```json
|
||
{
|
||
"content": [
|
||
{
|
||
"type": "text",
|
||
"text": "包含实际响应数据的 JSON 字符串"
|
||
}
|
||
],
|
||
"isError": false
|
||
}
|
||
```
|
||
|
||
对于错误:
|
||
|
||
```json
|
||
{
|
||
"content": [
|
||
{
|
||
"type": "text",
|
||
"text": "描述出错原因的错误消息"
|
||
}
|
||
],
|
||
"isError": true
|
||
}
|
||
```
|
||
|
||
## 🔧 使用示例
|
||
|
||
### 完整工作流示例
|
||
|
||
```javascript
|
||
// 1. 导航到页面
|
||
await callTool('chrome_navigate', {
|
||
url: 'https://example.com',
|
||
});
|
||
|
||
// 2. 截图
|
||
const screenshot = await callTool('chrome_screenshot', {
|
||
fullPage: true,
|
||
storeBase64: true,
|
||
});
|
||
|
||
// 3. 开始网络监控
|
||
await callTool('chrome_network_capture_start', {
|
||
maxCaptureTime: 30000,
|
||
});
|
||
|
||
// 4. 与页面交互
|
||
await callTool('chrome_click_element', {
|
||
selector: '#load-data-button',
|
||
});
|
||
|
||
// 5. 语义搜索内容
|
||
const searchResults = await callTool('search_tabs_content', {
|
||
query: '用户数据分析',
|
||
});
|
||
|
||
// 6. 停止网络捕获
|
||
const networkData = await callTool('chrome_network_capture_stop');
|
||
|
||
// 7. 保存书签
|
||
await callTool('chrome_bookmark_add', {
|
||
title: '数据分析页面',
|
||
parentId: '工作/分析',
|
||
});
|
||
```
|
||
|
||
此 API 提供全面的浏览器自动化功能,具有 AI 增强的内容分析和语义搜索特性。
|