通过模型上下文协议(Model Context Protocol)用AI控制您的真实浏览器
这是一个MCP(模型上下文协议)服务器,它允许AI助手通过浏览器扩展程序控制您的实际浏览器(如Chrome、Firefox或Opera)。与无头自动化工具不同,这个工具使用您真实的浏览器配置文件,包括所有已登录的会话、cookie和扩展程序。
适用于: 需要与您已经登录的网站进行交互的AI代理,或者需要避免被检测为机器人的场景。
| 蓝图 MCP | Playwright/Puppeteer |
|---|---|
| ✅ 实际浏览器(非无头模式) | ❌ 无头模式或新浏览器实例 |
| ✅ 保持登录到所有站点 | ❌ 每个会话都需要重新认证 |
| ✅ 避免被检测为机器人(使用真实指纹) | ⚠️ 经常被检测为自动化的浏览器 |
| ✅ 支持现有的浏览器扩展程序 | ❌ 不支持扩展程序 |
| ✅ 零配置 - 开箱即用 | ⚠️ 需要安装浏览器 |
| ✅ 支持Chrome、Firefox、Edge、Opera | ✅ 支持Chrome、Firefox、Safari |
npm install -g @railsblueprint/blueprint-mcp
选择您的浏览器:
Chrome / Edge / Opera
chrome://extensions/(Chrome)、edge://extensions/(Edge)或opera://extensions/(Opera)中加载未打包的扩展程序Firefox
about:debugging#/runtime/this-firefox中加载Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"browser": {
"command": "npx",
"args": ["@railsblueprint/blueprint-mcp@latest"]
}
}
}
Claude Code(AI驱动的CLI):
claude mcp add browser npx @railsblueprint/blueprint-mcp@latest
VS Code / Cursor(.vscode/settings.json):
{
"mcp.servers": {
"browser": {
"command": "npx",
"args": ["@railsblueprint/blueprint-mcp@latest"]
}
}
}
示例对话:
您:"去GitHub查看我的通知"
AI:*导航到github.com,点击通知,阅读内容*
您:"用我的信息填写这个表单"
AI:*读取表单字段,填写并提交*
您:"截取这个页面的屏幕截图"
AI:*捕获屏幕截图并显示给您*
┌─────────────────────────┐
│ AI 助手 │
│ (Claude,GPT等) │
└───────────┬─────────────┘
│
│ MCP 协议
↓
┌─────────────────────────┐
│ MCP 客户端 │
│ (Claude Desktop等) │
└───────────┬─────────────┘
│
│ 标准输入输出/JSON-RPC
↓
┌─────────────────────────┐
│ blueprint-mcp │
│ (此包) │
└───────────┬─────────────┘
│
│ WebSocket(本地5555端口或云中继)
↓
┌─────────────────────────┐
│ 浏览器扩展程序 │
└───────────┬─────────────┘
│
│ 浏览器扩展程序API
↓
┌─────────────────────────┐
│ 您的浏览器 │
│ (真实配置文件) │
└─────────────────────────┘
MCP服务器提供以下工具给AI助手:
enable - 激活浏览器自动化(必需的第一步)disable - 停用浏览器自动化status - 检查连接状态auth - 登录到PRO账户(用于云中继功能)browser_tabs - 列出、创建、附加或关闭浏览器标签browser_navigate - 导航到一个URLbrowser_navigate_back - 返回历史记录browser_snapshot - 获取可访问的页面内容(推荐用于阅读页面)browser_take_screenshot - 捕获视觉屏幕截图browser_console_messages - 获取浏览器控制台日志browser_network_requests - 强大的网络监控和重放工具,具有多种操作:
urlPattern(子字符串),method(GET/POST),status(200/404),resourceType(xhr/fetch/script)limit(默认:20),offset(默认:0)action='list', urlPattern='api/users', method='GET', limit=10$.data.items[0])action='details', requestId='12345.67', jsonPath='$.data.users[0]'browser_extract_content - 将页面内容提取为markdownbrowser_interact - 顺序执行多个动作(点击、输入、悬停、等待等)browser_click - 点击元素browser_type - 向输入框输入文本browser_hover - 悬停在元素上browser_select_option - 选择下拉选项browser_fill_form - 一次性填写多个表单字段browser_press_key - 按键盘键browser_drag - 拖拽元素browser_evaluate - 在页面上下文中执行JavaScriptbrowser_handle_dialog - 处理警告/确认/提示对话框browser_file_upload - 通过文件输入上传文件browser_window - 调整、最小化、最大化浏览器窗口browser_pdf_save - 将当前页面保存为PDFbrowser_performance_metrics - 获取性能指标browser_verify_text_visible - 验证文本是否可见(用于测试)browser_verify_element_visible - 验证元素是否存在(用于测试)browser_list_extensions - 列出已安装的浏览器扩展程序browser_reload_extensions - 重新加载未打包的扩展程序(开发期间有用)# 克隆仓库
git clone https://github.com/railsblueprint/blueprint-mcp.git
cd blueprint-mcp
# 安装服务器依赖
cd server
npm install
cd ..
# 安装Chrome扩展程序依赖
cd extensions/chrome
npm install
cd ../..
终端1:以调试模式启动MCP服务器
cd server
node cli.js --debug
终端2:构建Chrome扩展程序
cd extensions/chrome
npm run build
# 或者启用监视模式:
npm run dev
注意:Firefox扩展程序不需要构建步骤 - 它使用纯JavaScript,并可以直接从extensions/firefox/加载
在浏览器中加载扩展程序:
对于基于Chromium的浏览器(Chrome、Edge、Opera):
chrome://extensions/(Chrome)、edge://extensions/(Edge)或opera://extensions/(Opera)extensions/chrome/dist文件夹对于Firefox:
about:debugging#/runtime/this-firefoxextensions/firefox文件夹中的任意文件blueprint-mcp/
├── server/ # MCP 服务器
│ ├── cli.js # 服务器入口点
│ ├── src/
│ │ ├── statefulBackend.js # 连接状态管理
│ │ ├── unifiedBackend.js # MCP 工具实现
│ │ ├── extensionServer.js # 扩展程序WebSocket服务器
│ │ ├── mcpConnection.js # 代理/中继连接处理
│ │ ├── transport.js # 传输抽象层
│ │ ├── oauth.js # OAuth2客户端(用于PRO功能)
│ │ └── fileLogger.js # 调试日志
│ └── tests/ # 服务器测试套件
├── extensions/ # 浏览器扩展程序
│ ├── chrome/ # Chrome扩展程序(TypeScript + Vite)
│ │ └── src/
│ │ ├── background.ts # 扩展程序服务工作者
│ │ ├── content-script.ts # 页面内容注入
│ │ └── utils/ # 工具函数
│ ├── firefox/ # Firefox扩展程序(纯JavaScript)
│ │ └── src/
│ │ ├── background.js # 服务工作者
│ │ └── content-script.js # 页面注入
│ ├── shared/ # 扩展程序之间的共享代码
│ └── build-*.js # 每个浏览器的构建脚本
├── docs/ # 文档
│ ├── testing/ # 测试文档
│ ├── architecture/ # 架构文档
│ └── stores/ # 浏览器存储资产
└── releases/ # 发布的扩展程序
├── chrome/
├── firefox/
├── edge/
└── opera/
# 运行测试
npm test
# 运行带覆盖率的测试
npm run test:coverage
文档:
服务器开箱即用,具有合理的默认设置。对于高级配置:
在项目根目录创建一个.env文件:
# 认证服务器(PRO功能)
AUTH_BASE_URL=https://blueprint-mcp.railsblueprint.com
# 本地WebSocket端口(免费版)
MCP_PORT=5555
# 调试模式
DEBUG=false
blueprint-mcp --debug # 启用详细日志
blueprint-mcp --port 8080 # 使用自定义WebSocket端口(默认:5555)
blueprint-mcp --debug --port 8080 # 结合选项
注意:如果您更改了端口,请确保更新浏览器扩展程序设置以匹配。
另一个实例正在运行。您可以:
lsof -ti:5555 | xargs kill -9
blueprint-mcp --port 8080
enablebrowser_tabs附加到一个标签我们欢迎贡献!请参阅CONTRIBUTING.md了解指南。
此工具赋予AI助手对您的浏览器的控制权。请审查:
发现安全问题?请发送邮件至security@railsblueprint.com,而不是公开报告。
该项目最初受到微软Playwright MCP实现的启发,但完全重写为基于浏览器扩展程序的自动化,而不是Playwright。架构、实现和方法从根本上是不同的。
关键差异:
我们感谢Playwright团队为通过MCP实现浏览器自动化所做的开创性工作。
Apache 许可证 2.0 - 详见LICENSE
版权所有 (c) 2025 Rails Blueprint
由Rails Blueprint倾心打造