BrowserPilot
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BrowserPilotOpen google.com and search for MCP servers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BrowserPilot
English
AI-powered Chrome browser control through MCP. Let any AI assistant read, navigate, and interact with your browser via natural language.
Architecture
AI Assistant ←(Streamable HTTP)→ MCP Server ←(WebSocket)→ Chrome Extension ←(CDP)→ BrowserMCP Server: Persistent Node.js HTTP service (Streamable HTTP transport)
Chrome Extension: Connects via WebSocket, controls browser using Chrome DevTools Protocol
Supported AI Tools: MiMoCode, Claude Desktop, Cursor, Codex, WorkBuddy, OpenCode, and any MCP-compatible assistant
Quick Start
1. Install & Build
git clone https://github.com/cxcboss/BrowserPilot.git
cd BrowserPilot
pnpm install
pnpm build2. Start the MCP Server
node packages/server/dist/index.jsYou'll see:
[BrowserPilot] HTTP server listening on http://127.0.0.1:9876/mcp
[BrowserPilot] WebSocket server listening on ws://127.0.0.1:98773. Load the Chrome Extension
Open
chrome://extensions/Enable Developer mode
Click Load unpacked
Select
BrowserPilot/packages/extension/distClick the BrowserPilot icon → click 重新连接 (Reconnect)
4. Configure Your AI Assistant
MiMoCode (~/.config/mimocode/mimocode.json):
{
"mcp": {
"browserpilot": {
"type": "remote",
"url": "http://127.0.0.1:9876/mcp"
}
}
}Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"browserpilot": {
"url": "http://127.0.0.1:9876/mcp"
}
}
}Cursor (~/.cursor/mcp.json):
{
"mcpServers": {
"browserpilot": {
"url": "http://127.0.0.1:9876/mcp"
}
}
}Codex (~/.codex/config.json):
{
"mcpServers": {
"browserpilot": {
"url": "http://127.0.0.1:9876/mcp"
}
}
}OpenCode (~/.opencode/config.json):
{
"mcp": {
"browserpilot": {
"type": "remote",
"url": "http://127.0.0.1:9876/mcp"
}
}
}WorkBuddy (~/.workbuddy/mcp.json):
{
"mcpServers": {
"browserpilot": {
"url": "http://127.0.0.1:9876/mcp",
"type": "http"
}
}
}5. Start Using
Ask your AI assistant to control your browser:
"Open github.com and search for BrowserPilot"
"Take a screenshot of the current page"
"Click the login button"
"What's the title of this page?"
Available Tools (22 tools)
Navigation
Tool | Description |
| Navigate to a URL |
| Go back in history |
| Go forward in history |
| Reload the page |
Interaction
Tool | Description |
| Click an element by CSS selector |
| Type text into an input field |
| Fill a form field directly |
| Scroll the page |
| Hover over an element |
| Select a dropdown option |
Extraction
Tool | Description |
| Get text content from page or element |
| Get HTML content |
| Take a screenshot |
| Get current URL |
| Get page title |
Tabs
Tool | Description |
| List all open tabs |
| Switch to a tab |
| Open a new tab |
| Close a tab |
Script
Tool | Description |
| Execute JavaScript in the page |
Network
Tool | Description |
| Get cookies for the current domain |
Configuration
Port | Purpose | Default |
HTTP | MCP Streamable HTTP endpoint | 9876 |
WebSocket | Chrome Extension connection | 9877 |
Change via environment variables:
BROWSERPILOT_HTTP_PORT=8080 BROWSERPILOT_WS_PORT=8081 node packages/server/dist/index.jsAuto-start on macOS
# Create LaunchAgent
cat > ~/Library/LaunchAgents/com.browserpilot.server.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.browserpilot.server</string>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/bin/node</string>
<string>/path/to/BrowserPilot/packages/server/dist/index.js</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
EOF
# Load it
launchctl load ~/Library/LaunchAgents/com.browserpilot.server.plistTroubleshooting
Extension shows "未连接" (Not Connected)
Make sure MCP Server is running:
curl http://127.0.0.1:9876/healthIf not running:
node packages/server/dist/index.jsClick the BrowserPilot icon → 重新连接
AI tool can't find browser tools
Restart your AI tool after adding the MCP config
Verify the config file is valid JSON
Check the server is running on port 9876
Extension disconnects after a while
This is normal for Manifest V3 Service Workers
The extension has built-in auto-reconnect (every 3 seconds)
Click 重新连接 if needed
Security
All servers bind to
127.0.0.1— no remote accessAll communication stays on your local machine
The extension uses the
debuggerpermission to control your real browser
Development
pnpm install
pnpm build # Build all packages
pnpm build:server # Build MCP server only
pnpm build:extension # Build Chrome extension onlyLicense
MIT
Related MCP server: Cloudflare Playwright MCP
中文
通过 MCP 实现 AI 驱动的 Chrome 浏览器控制。让任何 AI 助手通过自然语言读取、导航和操作你的浏览器。
架构
AI 助手 ←(Streamable HTTP)→ MCP Server ←(WebSocket)→ Chrome Extension ←(CDP)→ 浏览器MCP Server:持久化 Node.js HTTP 服务(Streamable HTTP 传输)
Chrome Extension:通过 WebSocket 连接,使用 Chrome DevTools Protocol 控制浏览器
支持的 AI 工具:MiMoCode、Claude Desktop、Cursor、Codex、WorkBuddy、OpenCode 及所有兼容 MCP 的助手
快速开始
1. 安装并构建
git clone https://github.com/cxcboss/BrowserPilot.git
cd BrowserPilot
pnpm install
pnpm build2. 启动 MCP Server
node packages/server/dist/index.js看到以下输出表示启动成功:
[BrowserPilot] HTTP server listening on http://127.0.0.1:9876/mcp
[BrowserPilot] WebSocket server listening on ws://127.0.0.1:98773. 加载 Chrome 扩展
打开
chrome://extensions/开启 开发者模式
点击 加载已解压的扩展程序
选择
BrowserPilot/packages/extension/dist目录点击 BrowserPilot 图标 → 点击 重新连接
4. 配置 AI 工具
MiMoCode(~/.config/mimocode/mimocode.json):
{
"mcp": {
"browserpilot": {
"type": "remote",
"url": "http://127.0.0.1:9876/mcp"
}
}
}Claude Desktop(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"browserpilot": {
"url": "http://127.0.0.1:9876/mcp"
}
}
}Cursor(~/.cursor/mcp.json):
{
"mcpServers": {
"browserpilot": {
"url": "http://127.0.0.1:9876/mcp"
}
}
}Codex(~/.codex/config.json):
{
"mcpServers": {
"browserpilot": {
"url": "http://127.0.0.1:9876/mcp"
}
}
}OpenCode(~/.opencode/config.json):
{
"mcp": {
"browserpilot": {
"type": "remote",
"url": "http://127.0.0.1:9876/mcp"
}
}
}WorkBuddy(~/.workbuddy/mcp.json):
{
"mcpServers": {
"browserpilot": {
"url": "http://127.0.0.1:9876/mcp",
"type": "http"
}
}
}5. 开始使用
对你的 AI 助手说:
"打开 github.com 搜索 BrowserPilot"
"截图当前页面"
"点击登录按钮"
"这个页面的标题是什么?"
可用工具(22 个)
导航
工具 | 说明 |
| 导航到指定 URL |
| 浏览器后退 |
| 浏览器前进 |
| 刷新当前页面 |
交互
工具 | 说明 |
| 点击 CSS 选择器指定的元素 |
| 在输入框中输入文字 |
| 直接填充表单字段 |
| 滚动页面 |
| 鼠标悬停在元素上 |
| 选择下拉框选项 |
提取
工具 | 说明 |
| 获取页面或元素的文本内容 |
| 获取 HTML 内容 |
| 截图 |
| 获取当前 URL |
| 获取页面标题 |
标签页
工具 | 说明 |
| 列出所有打开的标签页 |
| 切换到指定标签页 |
| 打开新标签页 |
| 关闭标签页 |
脚本
工具 | 说明 |
| 在页面中执行 JavaScript |
网络
工具 | 说明 |
| 获取当前域名的 cookies |
配置
端口 | 用途 | 默认值 |
HTTP | MCP Streamable HTTP 端点 | 9876 |
WebSocket | Chrome 扩展连接 | 9877 |
通过环境变量修改:
BROWSERPILOT_HTTP_PORT=8080 BROWSERPILOT_WS_PORT=8081 node packages/server/dist/index.jsmacOS 开机自启
# 创建 LaunchAgent
cat > ~/Library/LaunchAgents/com.browserpilot.server.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.browserpilot.server</string>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/bin/node</string>
<string>/path/to/BrowserPilot/packages/server/dist/index.js</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
EOF
# 加载
launchctl load ~/Library/LaunchAgents/com.browserpilot.server.plist常见问题
扩展显示"未连接"
确保 MCP Server 已运行:
curl http://127.0.0.1:9876/health未运行则启动:
node packages/server/dist/index.js点击 BrowserPilot 图标 → 重新连接
AI 工具找不到浏览器工具
添加 MCP 配置后重启 AI 工具
检查配置文件是否为有效 JSON
确认服务运行在 9876 端口
扩展偶尔断开
这是 Manifest V3 Service Worker 的正常行为
扩展内置自动重连(每 3 秒)
需要时点击「重新连接」
安全
所有服务绑定
127.0.0.1— 不暴露到网络所有通信仅在本地进行
扩展使用
debugger权限控制你的真实浏览器
开发
pnpm install
pnpm build # 构建所有包
pnpm build:server # 仅构建 MCP Server
pnpm build:extension # 仅构建 Chrome 扩展许可证
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cxcboss/BrowserPilot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server