浏览器自动化助手

一款基于Gemini AI和Playwright MCP的Chrome扩展,提供智能聊天界面实现浏览器自动化任务。

  • by Shashank-29
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Shashank-29/mcp_client

使用说明

MCP副驾驶Chrome扩展程序

一个Chrome扩展程序,模仿VS Code GitHub Copilot聊天代理,与Playwright MCP集成 双子座AI该扩展提供了一个智能聊天机器人界面,可以使用Playwright自动执行浏览器任务,该界面由谷歌的Gemini AI提供支持,用于自然语言理解。

特性

  • 🤖 Gemini AI代理:使用谷歌Gemini AI的智能自然语言处理
  • 💬 聊天界面:出现在任何网页上的GitHub Copilot风格聊天UI
  • 🎭 剧作家MCP集成:与Playwright MCP服务器完全集成,实现浏览器自动化
  • 🔗 CDP支持:通过Chrome DevTools协议(CDP)连接到现有的Chrome配置文件
  • 🧠 智能刀具选择:Gemini AI自动选择合适的剧作家工具
  • 📸 电脑屏幕截图工具:截取网页截图
  • 🔍 页面分析:分析页面结构和可访问性
  • 🎯 元素交互:单击元素、填写表单并与页面交互
  • 🚀 导航:导航到URL并控制浏览器行为
  • 🔗 多步骤任务:链式多工具需要复杂的自动化
  • ⌨️ 键盘快捷键:切换聊天 Cmd+Shift+K (Mac)或 Ctrl+Shift+K (Windows/Linux)
  • 🎯 现有Chrome配置文件:将您当前的Chrome浏览器与扩展程序和登录会话一起使用

建筑

该扩展使用Gemini AI的桥接服务器架构:

  1. Chrome 扩展:提供UI和用户交互
  2. MCP网桥服务器:Node.js服务器,将扩展与Gemini AI和Playwright MCP连接起来
  3. Gemini AI代理:解释用户意图并协调工具调用
  4. 剧作家MCP服务器:处理实际的浏览器自动化
User Message (Natural Language)
    ↓
Chrome Extension (Chat UI)
    ↓ HTTP (localhost:8765)
MCP Bridge Server
    ↓
Gemini AI Agent
    ├→ Analyzes intent
    ├→ Selects tools
    └→ Formats response
    ↓
Playwright MCP Server (via stdio)
    ↓ Playwright
Browser Automation
    ↓
Results → Gemini AI → Formatted Response → User

先决条件

  • 已安装Node.js 18+
  • npm或纱线
  • Chrome浏览器
  • Playwright MCP服务器(通过npx自动安装)
  • Gemini API密钥 (从 谷歌人工智能工作室)

安装

1.克隆和安装依赖项

cd mcp_client
npm install

2.启动MCP网桥服务器

npm run server

服务器将于启动 http://localhost:8765 并自动连接到Playwright MCP服务器。

3.加载Chrome扩展程序

  1. 打开Chrome浏览器并导航到 chrome://extensions/
  2. 启用“开发人员模式”(在右上角切换)
  3. 点击“加载解包”
  4. 选择 mcp_client 目录
  5. 现在应该加载扩展并准备使用

4.配置Gemini API密钥

  1. 从获取Gemini API密钥 谷歌人工智能工作室
  2. 单击Chrome工具栏中的扩展程序图标
  3. 在“Gemini AI Agent”部分粘贴您的API密钥
  4. 点击“保存API密钥”
  5. 状态应显示“已配置API密钥”

5.验证安装

  1. 点击“连接到MCP服务器”-它应该显示“已连接”状态
  2. 导航到任何网页
  3. 按 Cmd+Shift+K (Mac)或 Ctrl+Shift+K (Windows/Linux)打开聊天界面
  4. 开始与AI代理聊天!

用法

打开聊天界面

  • 键盘快捷键:新闻 Cmd+Shift+K (Mac)或 Ctrl+Shift+K (Windows/Linux)在任何网页上
  • 扩展弹出窗口:单击扩展图标,然后“切换聊天UI”
  • 自动注射:聊天UI会自动出现在网页上

示例命令(自然语言)

Gemini AI代理能够理解自然语言,因此您可以通过多种方式提问:

  • 截图:

    • “截取此页面的屏幕截图”
    • “捕获当前页面”
    • “此屏幕截图”
  • 分析页面:

    • “分析此页面”
    • “此页面上有哪些元素?”
    • “告诉我此页面的结构”
  • 导航:

    • “导航到https://example.com"
    • 首选https://github.com"
    • “打开google.com”
  • 复杂的任务:

    • 导航到GitHub,截图并分析页面
    • “填写登录表格test@example.com密码123“
    • “单击提交按钮,等待页面加载”

可用的编剧工具

该扩展提供了对所有Playwright MCP工具的访问:

  • playwright_navigate -导航到URL
  • playwright_screenshot -截图
  • playwright_click -点击元素
  • playwright_fill -填写输入字段
  • playwright_accessibility_snapshot -获取页面结构
  • playwright_evaluate -执行JavaScript
  • playwright_wait_for -等待元素或条件

发展

项目结构

mcp_client/
├── src/
│   ├── background.js          # Chrome extension background service worker
│   ├── content.js             # Content script that injects chat UI
│   ├── chat-ui.js             # Chat UI component
│   ├── popup.html             # Extension popup HTML
│   ├── popup.js               # Extension popup script
│   ├── styles.css             # Chat UI styles
│   └── mcp-bridge-server.js   # MCP bridge server
├── manifest.json              # Chrome extension manifest
├── package.json               # Node.js dependencies
└── README.md                  # This file

运行网桥服务器

npm run server

服务器运行在 http://localhost:8765 并处理Chrome扩展程序和Playwright MCP服务器之间的通信。

开发扩展

  1. 对中的扩展文件进行更改 src/
  2. 在Chrome中重新加载扩展程序(chrome://extensions/ → 单击重新加载)
  3. 在任何网页上进行测试

调试

  • 扩展日志:打开 chrome://extensions/ → 单击“检查视图:服务工作者”查看后台脚本日志
  • 内容脚本日志:在任何网页上打开DevTools以查看内容脚本日志
  • 网桥服务器日志:检查你跑的终点站 npm run server

它是如何工作的(比如GitHub Copilot)

此扩展模仿了GitHub Copilot如何将MCP与AI结合使用:

  1. 用户输入:用户在聊天界面中键入自然语言命令
  2. Gemini人工智能处理:Gemini AI解释用户的意图和上下文
  3. 工具选择:Gemini AI会自动选择合适的Playwright MCP工具
  4. 工具执行:通过MCP网桥服务器调用工具
  5. 剧作家自动化:Playwright MCP服务器执行浏览器自动化
  6. AI响应:Gemini AI将结果格式化为自然、有益的响应
  7. 多步骤任务:Gemini可以链接多个工具以实现复杂的自动化

使用Gemini AI的MCP协议流

User Message (Natural Language)
    ↓
Chat UI
    ↓
Background Script (Message Handler)
    ↓
HTTP Request to Bridge Server
    ↓
MCP Bridge Server
    ↓
Gemini AI Agent
    ├→ Understands intent
    ├→ Selects Playwright tools
    └→ Calls tools via MCP Client
    ↓
Playwright MCP Server (stdio)
    ↓
Playwright Browser Automation
    ↓
Tool Results
    ↓
Gemini AI (Formats response)
    ↓
Response (back through the chain)
    ↓
Chat UI (Displays to user)

配置

更改网桥服务器端口

编辑 src/background.js:

const MCP_BRIDGE_URL = 'http://localhost:8765'; // Change port here

并更新 src/mcp-bridge-server.js:

const PORT = 8765; // Change port here

定制剧作家MCP服务器

编辑 src/mcp-bridge-server.js 要更改MCP服务器命令,请执行以下操作:

mcpTransport = new StdioClientTransport({
  command: 'npx',
  args: ['-y', '@playwright/mcp@latest'], // Customize here
});

故障排除

端口8765已在使用中

如果你看到 EADDRINUSE: address already in use :::8765:

# Option 1: Kill the existing server
npm run kill-server

# Option 2: Manual kill
lsof -ti:8765 | xargs kill -9

# Option 3: Restart the server
npm run restart

扩展显示“断开连接”状态

  1. 确保网桥服务器正在运行: npm run server
  2. 检查服务器是否可在以下位置访问 http://localhost:8765/health
  3. 检查浏览器控制台是否有错误
  4. 验证服务器日志中的MCP连接

聊天界面未出现

  1. 在中重新加载扩展 chrome://extensions/
  2. 检查内容脚本是否已启用
  3. 打开浏览器DevTools并检查JavaScript错误
  4. 尝试刷新网页
  5. 按 Cmd+Shift+K (Mac)或 Ctrl+Shift+K (Windows/Linux)

Gemini API关键问题

  1. 在扩展弹出窗口中验证您的API密钥是否正确
  2. 检查API密钥是否可以访问Gemini API
  3. 检查网桥服务器日志中的API错误
  4. 验证您的互联网连接
  5. 检查API费率限制(免费等级:60次请求/分钟)

MCP工具不工作

  1. 验证网桥服务器是否已连接到Playwright MCP(检查服务器日志中的“✅ 已连接”)
  2. 检查网桥服务器日志是否有错误
  3. 确保Playwright MCP服务器可以通过以下方式安装 npx
  4. 检查Node.js和npm是否安装正确
  5. 尝试重新启动服务器: npm run restart

CORS错误

网桥服务器包含CORS标头,但如果您遇到CORS问题:

  1. 检查网桥服务器是否正在运行
  2. 验证扩展和服务器中的端口是否匹配
  3. 检查浏览器控制台是否有特定的CORS错误消息

CDP支持(使用现有的Chrome配置文件)

该扩展程序现在支持通过Chrome DevTools协议(CDP)连接到现有的Chrome实例。这使您能够:

  • ✅ 使用您现有的Chrome个人资料
  • ✅ 访问所有Chrome扩展程序
  • ✅ 使用已登录的会话
  • ✅ 共享Cookie和存储
  • ✅ 在当前Chrome窗口中操作

快速设置

  1. 使用远程调试启动Chrome:

    # macOS
    /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
    
    # Linux
    google-chrome --remote-debugging-port=9222
    
    # Windows
    "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
    
  2. 启动网桥服务器:

    npm run server
    
  3. 该扩展程序将自动检测并连接到您的Chrome浏览器

有关详细的设置说明,请参阅 CHROME_CDP_SETUP.md

有关实施细节,请参阅 CDP_实施例.md 和 CDP_范围_摘要.md

局限性

  • 没有CDP: 浏览器自动化在单独的Playwright实例中运行(不是当前的Chrome选项卡)
  • 对于CDP: 使用您现有的Chrome配置文件(推荐)-请参阅上面的CDP支持
  • 与原生Playwright协议相比,使用CDP时,某些Playwright功能的保真度可能较低
  • 要求网桥服务器在本地运行

未来改进

  • [x] 对现有Chrome配置文件的CDP支持(✅ 已完成)
  • []通过远程调试自动启动Chrome
  • []支持多个Chrome实例
  • []增强的连接监控
  • []支持多个MCP服务器
  • []会话间的持续聊天历史记录
  • []自定义工具定义
  • []更好的错误处理和重试逻辑
  • []支持流式响应
  • []与其他MCP服务器(不仅仅是Playwright)集成

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交拉取请求。

致谢