326 lines
8.8 KiB
Markdown
326 lines
8.8 KiB
Markdown
# Chrome MCP Bridge 安装指南
|
||
|
||
本文档详细说明了 Chrome MCP Bridge 的安装和注册流程。
|
||
|
||
## 安装流程概述
|
||
|
||
Chrome MCP Bridge 的安装和注册流程如下:
|
||
|
||
```
|
||
npm install -g chrome-mcp-bridge
|
||
└─ postinstall.js
|
||
├─ 复制可执行文件到 npm_prefix/bin ← 总是可写(用户或root权限)
|
||
├─ 尝试用户级别注册 ← 无需sudo,大多数情况下成功
|
||
└─ 如果失败 ➜ 提示用户运行 chrome-mcp-bridge register --system
|
||
└─ 使用sudo-prompt自动提权 → 写入系统级清单文件
|
||
```
|
||
|
||
上面的流程图展示了从全局安装开始,到最终完成注册的完整过程。
|
||
|
||
## 详细安装步骤
|
||
|
||
### 1. 全局安装
|
||
|
||
```bash
|
||
npm install -g chrome-mcp-bridge
|
||
```
|
||
|
||
安装完成后,系统会自动尝试在用户目录中注册 Native Messaging 主机。这不需要管理员权限,是推荐的安装方式。
|
||
|
||
### 2. 用户级别注册
|
||
|
||
用户级别注册会在以下位置创建清单文件:
|
||
|
||
```
|
||
清单文件位置
|
||
├─ 用户级别(无需管理员权限)
|
||
│ ├─ Windows: %APPDATA%\Google\Chrome\NativeMessagingHosts\
|
||
│ ├─ macOS: ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/
|
||
│ └─ Linux: ~/.config/google-chrome/NativeMessagingHosts/
|
||
│
|
||
└─ 系统级别(需要管理员权限)
|
||
├─ Windows: %ProgramFiles%\Google\Chrome\NativeMessagingHosts\
|
||
├─ macOS: /Library/Google/Chrome/NativeMessagingHosts/
|
||
└─ Linux: /etc/opt/chrome/native-messaging-hosts/
|
||
```
|
||
|
||
如果自动注册失败,或者您想手动注册,可以运行:
|
||
|
||
```bash
|
||
chrome-mcp-bridge register
|
||
```
|
||
|
||
### 3. 系统级别注册
|
||
|
||
如果用户级别注册失败(例如,由于权限问题),您可以尝试系统级别注册。系统级别注册需要管理员权限,但我们提供了两种便捷的方式来完成这一过程。
|
||
|
||
系统级别注册有两种方式:
|
||
|
||
#### 方式一:使用 `--system` 参数(推荐)
|
||
|
||
```bash
|
||
chrome-mcp-bridge register --system
|
||
```
|
||
|
||
这将使用 `sudo-prompt` 自动提升权限,无需手动输入 `sudo` 命令。
|
||
|
||
#### 方式二:直接使用管理员权限
|
||
|
||
**Windows**:
|
||
以管理员身份运行命令提示符或 PowerShell,然后执行:
|
||
|
||
```
|
||
chrome-mcp-bridge register
|
||
```
|
||
|
||
**macOS/Linux**:
|
||
使用 sudo 命令:
|
||
|
||
```
|
||
sudo chrome-mcp-bridge register
|
||
```
|
||
|
||
## 注册流程详解
|
||
|
||
### 注册流程图
|
||
|
||
```
|
||
注册流程
|
||
├─ 用户级别注册 (chrome-mcp-bridge register)
|
||
│ ├─ 获取用户级别清单路径
|
||
│ ├─ 创建用户目录
|
||
│ ├─ 生成清单内容
|
||
│ ├─ 写入清单文件
|
||
│ └─ Windows平台:创建用户级注册表项
|
||
│
|
||
└─ 系统级别注册 (chrome-mcp-bridge register --system)
|
||
├─ 检查是否有管理员权限
|
||
│ ├─ 有权限 → 直接创建系统目录和写入清单
|
||
│ └─ 无权限 → 使用sudo-prompt提权
|
||
│ ├─ 创建临时清单文件
|
||
│ └─ 复制到系统目录
|
||
└─ Windows平台:创建系统级注册表项
|
||
```
|
||
|
||
### 清单文件结构
|
||
|
||
```
|
||
manifest.json
|
||
├─ name: "com.chrome-mcp.native-host"
|
||
├─ description: "Node.js Host for Browser Bridge Extension"
|
||
├─ path: "/path/to/node" ← Node.js可执行文件路径
|
||
├─ type: "stdio" ← 通信类型
|
||
├─ allowed_origins: [ ← 允许连接的扩展
|
||
│ "chrome-extension://扩展ID/"
|
||
└─ args: [ ← 启动参数
|
||
"/path/to/chrome-mcp-bridge",
|
||
"native"
|
||
]
|
||
```
|
||
|
||
### 用户级别注册流程
|
||
|
||
1. 确定用户级别清单文件路径
|
||
2. 创建必要的目录
|
||
3. 生成清单内容,包括:
|
||
- 主机名称
|
||
- 描述
|
||
- Node.js 可执行文件路径
|
||
- 通信类型(stdio)
|
||
- 允许的扩展 ID
|
||
- 启动参数
|
||
4. 写入清单文件
|
||
5. 在 Windows 上,还会创建相应的注册表项
|
||
|
||
### 系统级别注册流程
|
||
|
||
1. 检测是否已有管理员权限
|
||
2. 如果已有管理员权限:
|
||
- 直接创建系统级目录
|
||
- 写入清单文件
|
||
- 设置适当的权限
|
||
- 在 Windows 上创建系统级注册表项
|
||
3. 如果没有管理员权限:
|
||
- 使用 `sudo-prompt` 提升权限
|
||
- 创建临时清单文件
|
||
- 复制到系统目录
|
||
- 在 Windows 上创建系统级注册表项
|
||
|
||
## 验证安装
|
||
|
||
### 验证流程图
|
||
|
||
```
|
||
验证安装
|
||
├─ 检查清单文件
|
||
│ ├─ 文件存在 → 检查内容是否正确
|
||
│ └─ 文件不存在 → 重新安装
|
||
│
|
||
├─ 检查Chrome扩展
|
||
│ ├─ 扩展已安装 → 检查扩展权限
|
||
│ └─ 扩展未安装 → 安装扩展
|
||
│
|
||
└─ 测试连接
|
||
├─ 连接成功 → 安装完成
|
||
└─ 连接失败 → 检查错误日志 → 参考故障排除
|
||
```
|
||
|
||
### 验证步骤
|
||
|
||
安装完成后,您可以通过以下方式验证安装是否成功:
|
||
|
||
1. 检查清单文件是否存在于相应目录
|
||
|
||
- 用户级别:检查用户目录下的清单文件
|
||
- 系统级别:检查系统目录下的清单文件
|
||
- 确认清单文件内容是否正确
|
||
|
||
2. 在 Chrome 中安装对应的扩展
|
||
|
||
- 确保扩展已正确安装
|
||
- 确保扩展有 `nativeMessaging` 权限
|
||
|
||
3. 尝试通过扩展连接到本地服务
|
||
- 使用扩展的测试功能尝试连接
|
||
- 检查 Chrome 的扩展日志是否有错误信息
|
||
|
||
## 故障排除
|
||
|
||
### 故障排除流程图
|
||
|
||
```
|
||
故障排除
|
||
├─ 权限问题
|
||
│ ├─ 检查用户权限
|
||
│ │ ├─ 有足够权限 → 检查目录权限
|
||
│ │ └─ 无足够权限 → 尝试系统级别安装
|
||
│ │
|
||
│ ├─ 执行权限问题 (macOS/Linux)
|
||
│ │ ├─ "Permission denied" 错误
|
||
│ │ ├─ "Native host has exited" 错误
|
||
│ │ └─ 运行 chrome-mcp-bridge fix-permissions
|
||
│ │
|
||
│ └─ 尝试 chrome-mcp-bridge register --system
|
||
│
|
||
├─ 路径问题
|
||
│ ├─ 检查Node.js安装 (node -v)
|
||
│ └─ 检查全局NPM路径 (npm root -g)
|
||
│
|
||
├─ 注册表问题 (Windows)
|
||
│ ├─ 检查注册表访问权限
|
||
│ └─ 尝试手动创建注册表项
|
||
│
|
||
└─ 其他问题
|
||
├─ 检查控制台错误信息
|
||
└─ 提交Issue到项目仓库
|
||
```
|
||
|
||
### 常见问题解决步骤
|
||
|
||
如果安装过程中遇到问题,请尝试以下步骤:
|
||
|
||
1. 确保 Node.js 已正确安装
|
||
|
||
- 运行 `node -v` 和 `npm -v` 检查版本
|
||
- 确保 Node.js 版本 >= 14.x
|
||
|
||
2. 检查是否有足够的权限创建文件和目录
|
||
|
||
- 用户级别安装需要对用户目录有写入权限
|
||
- 系统级别安装需要管理员/root权限
|
||
|
||
3. **修复执行权限问题**
|
||
|
||
**macOS/Linux 平台**:
|
||
|
||
**问题描述**:
|
||
|
||
- npm 安装通常会保留文件权限,但 pnpm 可能不会
|
||
- 可能遇到 "Permission denied" 或 "Native host has exited" 错误
|
||
- Chrome 扩展无法启动 native host 进程
|
||
|
||
**解决方案**:
|
||
|
||
a) **使用内置修复命令(推荐)**:
|
||
|
||
```bash
|
||
chrome-mcp-bridge fix-permissions
|
||
```
|
||
|
||
b) **手动设置权限**:
|
||
|
||
```bash
|
||
# 查找安装路径
|
||
npm list -g chrome-mcp-bridge
|
||
# 或者对于 pnpm
|
||
pnpm list -g chrome-mcp-bridge
|
||
|
||
# 设置执行权限(替换为实际路径)
|
||
chmod +x /path/to/node_modules/chrome-mcp-bridge/run_host.sh
|
||
chmod +x /path/to/node_modules/chrome-mcp-bridge/index.js
|
||
chmod +x /path/to/node_modules/chrome-mcp-bridge/cli.js
|
||
```
|
||
|
||
**Windows 平台**:
|
||
|
||
**问题描述**:
|
||
|
||
- Windows 上 `.bat` 文件通常不需要执行权限,但可能遇到其他问题
|
||
- 文件可能被标记为只读
|
||
- 可能遇到 "Access denied" 或文件无法执行的错误
|
||
|
||
**解决方案**:
|
||
|
||
a) **使用内置修复命令(推荐)**:
|
||
|
||
```cmd
|
||
chrome-mcp-bridge fix-permissions
|
||
```
|
||
|
||
b) **手动检查文件属性**:
|
||
|
||
```cmd
|
||
# 查找安装路径
|
||
npm list -g chrome-mcp-bridge
|
||
|
||
# 检查文件属性(在文件资源管理器中右键 -> 属性)
|
||
# 确保 run_host.bat 不是只读文件
|
||
```
|
||
|
||
c) **重新安装并强制权限**:
|
||
|
||
```bash
|
||
# 卸载
|
||
npm uninstall -g chrome-mcp-bridge
|
||
# 或 pnpm uninstall -g chrome-mcp-bridge
|
||
|
||
# 重新安装
|
||
npm install -g chrome-mcp-bridge
|
||
# 或 pnpm install -g chrome-mcp-bridge
|
||
|
||
# 如果仍有问题,运行权限修复
|
||
chrome-mcp-bridge fix-permissions
|
||
```
|
||
|
||
4. 在 Windows 上,确保注册表访问没有被限制
|
||
|
||
- 检查是否可以访问 `HKCU\Software\Google\Chrome\NativeMessagingHosts\`
|
||
- 对于系统级别,检查 `HKLM\Software\Google\Chrome\NativeMessagingHosts\`
|
||
|
||
5. 尝试使用系统级别安装
|
||
|
||
- 使用 `chrome-mcp-bridge register --system` 命令
|
||
- 或直接使用管理员权限运行
|
||
|
||
6. 检查控制台输出的错误信息
|
||
- 详细的错误信息通常会指出问题所在
|
||
- 可以添加 `--verbose` 参数获取更多日志信息
|
||
|
||
如果问题仍然存在,请提交 issue 到项目仓库,并附上以下信息:
|
||
|
||
- 操作系统版本
|
||
- Node.js 版本
|
||
- 安装命令
|
||
- 错误信息
|
||
- 尝试过的解决方法
|