qutebrowser mcp
MCP(模型上下文协议)服务器 qutebrowser 浏览器自动化。
从Claude Code或任何兼容MCP的客户端控制qutebrowser。
注: 仅限Linux。使用Unix域套接字和XDG路径。
特性
- CDP首次设计 -大多数工具通过Chrome DevTools协议在特定选项卡上运行,而不会改变焦点
- 选项卡管理 -列出、打开、关闭、聚焦和移动选项卡
- 导航 -转到URL、后退/前进、重新加载——所有这些都可以指向特定的选项卡
- 截图 -无需切换即可捕获任何选项卡
- JavaScript执行 -在任何选项卡中运行JS并获取返回值
- 经过身份验证的提取 -通过浏览器登录的会话(Cookie或Bearer令牌)发出HTTP请求
- 书签和历史记录 -访问书签、快速标记和浏览历史记录
CDP设置(推荐)
大多数工具使用Chrome DevTools协议在选项卡上操作,而不改变焦点。通过环境变量启用远程调试:
QTWEBENGINE_REMOTE_DEBUGGING=9222 qutebrowser如果没有CDP,工具将回退到IPC,IPC在当前聚焦的选项卡上运行,并可能导致选项卡切换。
安装
npm install
npm run build用法
使用克劳德代码
添加到您的 ~/.claude.json:
{
"mcpServers": {
"qutebrowser": {
"command": "node",
"args": ["/path/to/qutebrowser-mcp/dist/index.js"]
}
}
}直接运行
npm start可用工具
启用CDP的工具
这些接受可选 tab 参数(URL或标题子字符串),用于通过CDP定位特定选项卡 不改变焦点.没有 tab,他们在焦点选项卡上回到IPC。
| 工具 | 说明 |
|---|---|
list_tabs | 列出所有带有索引、URL、标题、活动状态(会话文件+CDP增强)的选项卡 |
close_tab | 按URL/标题匹配(CDP)或索引(IPC)关闭选项卡 |
navigate | 将选项卡导航到URL |
go_back | 返回历史记录 |
go_forward | 在历史中向前导航 |
reload_page | 重新加载页面 |
screenshot | 将页面捕获为PNG格式 |
execute_js | 运行JavaScript并返回结果(CDP)或即发即弃(IPC) |
IPC专用工具
这些使用qutebrowser的Unix域套接字来实现CDP无法提供的功能。
| 工具 | 说明 |
|---|---|
open_tab | 打开一个新的背景选项卡 |
focus_tab | 按索引将焦点切换到选项卡(有意更改焦点) |
move_tab | 将当前选项卡移动到新位置 |
get_bookmarks | 列出书签 |
get_quickmarks | 列出快速标记 |
search_history | 搜索浏览历史记录 |
CDP专用工具
这些总是需要CDP和 tab 参数。
| 工具 | 说明 |
|---|---|
browser_fetch | fetch() 在页面上下文中,继承cookie/session |
browser_fetch_auth | 从网络流量中捕获身份验证标头,发出服务器端请求 |
browser_fetch 对比 browser_fetch_auth
browser_fetch跑fetch()在选项卡的页面上下文中。最适合 基于cookie的身份验证 (同源请求)。browser_fetch_auth从标签的网络流量中拦截Bearer令牌,然后将请求发送到服务器端。最适合 基于令牌的身份验证 (例如Outlook,它使用JavaScript注入的MSAuth令牌)。
运作原理
服务器通过两个通道与qutebrowser通信:
- 客户数据平台 (Chrome DevTools协议WebSocket)-主通道。JS评估、导航、截图、标签关闭、重新加载和网络拦截的双向通信。在特定选项卡上操作而不改变焦点。
- IPC (Unix域套接字)-辅助通道。即发即弃命令用于qutebrowser-特定功能(选项卡打开、聚焦、移动、书签、会话保存)。
状态从以下内容读取:
- 会话文件 (
~/.local/share/qutebrowser/sessions/_autosave.yml)-选项卡索引、活动状态、固定状态 - CDP目标 -新标签标题和URL
- SQLite数据库 (
~/.local/share/qutebrowser/history.sqlite)-浏览历史记录 - 配置文件 (
~/.config/qutebrowser/)-书签和快速标记
需求
- Linux (IPC使用Unix域套接字)
- Node.js 18+
- 在启用IPC的情况下运行qutebrowser(默认)
- 推荐: qutebrowser开始于
QTWEBENGINE_REMOTE_DEBUGGING=9222CDP支持
尊重XDG环境变量(XDG_DATA_HOME, XDG_CONFIG_HOME, XDG_RUNTIME_DIR)使用标准回退,因此它应该适用于大多数Linux发行版。
许可证
麻省理工学院
