返回市场
铬导航员

铬导航员

作者:D3OXY2 星标更新:2025-08-15

项目介绍

Chrome MCP Server

这是一个模型上下文协议(MCP)服务器,它使像Claude这样的AI助手能够通过Chrome扩展程序和WebSocket通信来控制Chrome浏览器。非常适合跨平台自动化,特别是WSL/Windows环境。

🚀 功能

  • 浏览器自动化:导航、点击、滚动、填写表单、截图
  • 跨平台:跨越WSL/Windows网络边界工作
  • 双通道通信:本地消息(本地)+ WebSocket(网络)
  • Claude集成:与Claude Code和Claude Desktop直接集成
  • 实时控制:通过MCP工具进行实时浏览器交互
  • Chrome扩展程序:易于安装的浏览器扩展程序,带有弹出窗口控件

🏗️ 架构

┌─────────────┐    WebSocket     ┌─────────────┐    MCP/stdio    ┌─────────────┐
│   Windows   │ ←─────────────→  │     WSL     │ ←─────────────→ │ Claude Code │
│   Chrome    │   ws://IP:9222   │   Server    │                 │             │
│ + Extension │                  │             │                 │             │
└─────────────┘                  └─────────────┘                 └─────────────┘

📦 安装

预备条件

  • Node.js >= 18.0.0
  • Chrome/Chromium 浏览器
  • TypeScript(用于开发)

快速设置

  1. 克隆仓库

    git clone https://github.com/deoxy/chrome-pilot.git
    cd chrome-pilot
    
  2. 安装依赖

    cd server
    npm install
    npm run build
    
  3. 启动WebSocket服务器

    node dist/index.js --websocket
    
  4. 加载Chrome扩展程序

    • 打开 chrome://extensions/
    • 启用“开发者模式”
    • 点击“加载已解压的扩展程序”
    • 选择 extension 文件夹
  5. 配置扩展程序

    • 点击扩展图标
    • 输入WebSocket URL: ws://YOUR_IP:9222/ws
    • 点击“保存配置”和“重新连接”

🔧 配置

对于Claude Code (WSL)

添加到 ~/.claude/settings.json:

{
  "mcpServers": {
    "chrome-pilot": {
      "command": "node",
      "args": ["/path/to/chrome-pilot/server/dist/index.js", "--websocket"],
      "env": {}
    }
  }
}

对于Claude Desktop

添加到Claude Desktop设置中:

{
  "mcpServers": {
    "chrome-pilot": {
      "command": "node",
      "args": ["/path/to/chrome-pilot/server/dist/index.js"]
    }
  }
}

🛠️ 可用工具

工具描述参数
navigate导航到一个URLurl, tabId?
get_tabs获取所有打开的浏览器标签页-
get_current_tab获取当前活动的标签页-
close_tab关闭浏览器标签页tabId
click点击元素selector, tabId?
type在输入框中输入文本selector, text, tabId?
scroll滚动页面direction, amount?, tabId?
screenshot截图tabId?
get_content提取页面内容selector?, tabId?
get_interactive_elements查找可点击的元素tabId?
wait_for_element等待元素出现selector, timeout?, tabId?

🌐 网络设置 (WSL/Windows)

1. 查找WSL IP

ip route | grep default

2. 配置Windows防火墙

# 以管理员身份运行
New-NetFirewallRule -DisplayName "Chrome MCP Server" -Direction Inbound -Port 9222 -Protocol TCP -Action Allow

3. 扩展程序设置

  1. 通过 \\wsl$\Ubuntu\path\to\chrome-pilot\extension 访问扩展程序
  2. 在Windows Chrome中加载
  3. 在弹出窗口中配置WebSocket URL
  4. 测试连接

🧪 测试

测试WebSocket服务器

curl http://localhost:9222/info
curl -X POST http://localhost:9222/command \
  -H "Content-Type: application/json" \
  -d '{"action": "get_tabs", "params": {}}'

使用Claude测试

你能导航到google.com并截图吗?

📁 项目结构

chrome-pilot/
├── server/                 # MCP Server (TypeScript)
│   ├── src/
│   │   ├── index.ts        # 主服务器入口
│   │   ├── websocket-server.ts    # WebSocket服务器
│   │   ├── native-host.ts  # 本地消息
│   │   └── tools/          # 浏览器自动化工具
│   ├── package.json
│   └── tsconfig.json
├── extension/              # Chrome扩展程序
│   ├── manifest.json       # 扩展程序配置
│   ├── background-websocket.js   # 服务工作者
│   ├── content.js          # 内容脚本
│   ├── popup.html          # 扩展程序弹出窗口
│   └── popup.js
├── native-host/            # 本地消息设置
│   ├── install.sh          # 安装脚本
│   └── com.chrome_mcp.host.json.template
└── docs/                   # 文档

🔍 故障排除

扩展程序无法连接

  • 核实扩展程序弹出窗口中的WebSocket URL
  • 检查WSL IP地址是否更改
  • 确保服务器在正确的端口上运行
  • 检查Windows防火墙设置

MCP工具无法工作

  • 重启Chrome扩展程序
  • 核实弹出窗口中的“已连接”状态
  • 检查服务器日志中的错误
  • 确保扩展程序具有必要的权限

性能问题

  • 使用以太网连接获得最佳性能
  • 监控WSL和Windows之间的网络延迟
  • 考虑使用固定IP运行

🤝 贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 如适用,添加测试
  5. 提交拉取请求

📝 许可证

MIT许可证 - 详情见LICENSE文件。

🙏 致谢

  • 使用Anthropic提供的MCP SDK构建
  • 使用Chrome扩展程序API进行浏览器自动化
  • 使用WebSocket通信实现跨平台支持

📞 支持