浏览器自动化访问配置无效

我是编程新手,想让iflow cli 直接访问chrome 控制台日志,为此我配置了两个 MCP servers,一个chrome-devtools-mcp,一个chrome mcp server, 如下 图所示。但是这两个 MCP 都无法正常运行,一个连接不上,一个连接上了,却找不到日志。请问到底如何才是正确的MCP 配置 ,实现让ifow cli 直接访问chrome 日志的目的呢?

“mcpServers”: {

"chrome-devtools": {

“command”: “npx”,

“args”: [

“-y”,

@iflow-mcp/chrome-devtools-mcp”

  \]

},

“streamable-mcp-server”: {

“type”: “streamable-http”,

“url”: “http://127.0.0.1:12306/mcp

settings.json把chrome-devtools替换成
“chrome-devtools”: {
“command”: “npx”,
“args”: [
“-y”,
“chrome-devtools-mcp@latest”
]
}

请先使用chrome官方的mcp,不要使用论坛的mcp试试

有其他问题再反馈

感谢指导:folded_hands:。这次 chrome-devtools 工具倒是连接上了,但是它访问的却不是我想要的实例,而是自己又打开了一个新的实例。这是何故呢?

只能控制自己打开的chrom窗口中的页面,每个页面就是一个实例,你自己的chrom浏览器开的网页和这个工具没有关系

可以使用远程调试访问现有实例,但需要改一下你的chrome快捷方式
# Chrome 控制台日志抓取工具

这个工具允许 iflow CLI 通过 Chrome DevTools Protocol (CDP) 实时抓取现有 Chrome 浏览器的控制台日志。

## 功能特性

- :white_check_mark: 实时抓取 Chrome 控制台日志(console.log/error/warn/info/debug)

- :white_check_mark: 显示日志时间戳、类型、来源文件和行号

- :white_check_mark: 支持所有日志级别

- :white_check_mark: 跨平台支持(Windows/macOS/Linux)

-–

## 零基础部署指南

### 第一部分:编写脚本

#### 1. 创建日志抓取脚本

在项目目录下创建文件 `chrome-log-catcher.js`,内容如下:

```javascript

const CDP = require(‘chrome-remote-interface’);

const DEBUG_PORT = 9222;

let client = null;

async function captureConsoleLogs() {

try {

client = await CDP({ port: DEBUG_PORT });

const { Console, Runtime } = client;

await Promise.all(\[Console.enable(), Runtime.enable()\]);



console.log('✅ 已连接到 Chrome,开始抓取控制台日志...');

console.log('📝 按 Ctrl+C 停止抓取\\n');



Console.messageAdded(({ message }) => {

  const logType = message.level || 'log';

  const logContent = message.parameters 

    ? message.parameters.map(p => p.value || p.description).join(' ')

    : message.text || '';

  const logSource = message.url || message.source || 'unknown';

  const lineNumber = message.line || '?';

  

  const formattedLog = \`\[${new Date().toLocaleString('zh-CN')}\] \[${logType.toUpperCase()}\] \[${logSource}:${lineNumber}\] ${logContent}\`;

  console.log(formattedLog);

});



client.on('disconnect', () => {

  console.error('❌ 与 Chrome 的连接已断开');

  process.exit(1);

});

} catch (err) {

console.error('❌ 连接 Chrome 失败:', err.message);

process.exit(1);

}

}

captureConsoleLogs();

process.on(‘SIGINT’, () => {

if (client) {

client.close();

}

console.log(‘\n​:white_check_mark: 已停止抓取 Chrome 日志’);

process.exit(0);

});

```

#### 2. 创建一键启动脚本(可选)

在项目目录下创建批处理文件 `start-chrome-debug.bat`,内容如下:

```batch

@echo off

echo ========================================

echo Starting Chrome Remote Debugging

echo ========================================

echo.

echo [Step 1] Checking Chrome path…

set “CHROME_PATH=”

if exist “C:\Program Files\Google\Chrome\Application\chrome.exe” set “CHROME_PATH=C:\Program Files\Google\Chrome\Application\chrome.exe”

if exist “C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” set “CHROME_PATH=C:\Program Files (x86)\Google\Chrome\Application\chrome.exe”

if exist “%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe” set “CHROME_PATH=%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe”

if “%CHROME_PATH%”==“” (

echo.

echo \[ERROR\] Chrome not found

echo Please enter full path to chrome.exe:

set /p CHROME_PATH=

if not exist "%CHROME_PATH%" (

    echo \[ERROR\] Path does not exist

    pause

    exit /b 1

)

)

echo.

echo [Step 2] Starting Chrome…

echo Chrome path: %CHROME_PATH%

echo Debug port: 9222

echo Temp dir: %TEMP%\ChromeDebugTemp

echo.

start “” “%CHROME_PATH%” --remote-debugging-port=9222 --user-data-dir=“%TEMP%\ChromeDebugTemp”

echo.

echo [Step 3] Checking result…

if %ERRORLEVEL% EQU 0 (

echo \[SUCCESS\] Chrome started

) else (

echo \[ERROR\] Failed to start Chrome

echo Error code: %ERRORLEVEL%

pause

exit /b 1

)

echo.

echo ========================================

echo Next step: Run this command:

echo node chrome-log-catcher.js

echo ========================================

echo.

pause

```

**创建文件提示**

- 使用记事本或任意文本编辑器

- 将代码复制粘贴进去

- 保存时选择"所有文件"格式

- 文件名分别为 `chrome-log-catcher.js` 和 `start-chrome-debug.bat`

-–

### 第二部分:安装依赖

1. 打开命令行(按 `Win + R`,输入 `cmd`,按回车)

2. 切换到项目目录:

```bash

cd /d D:\iflow

```

3. 安装依赖包:

```bash

npm install chrome-remote-interface

```

-–

### 第三部分:配置 Chrome

#### 方法 A:修改快捷方式(推荐)

1. 找到 Chrome 快捷方式(桌面或开始菜单)

2. 右键点击,选择"属性"

3. 在"快捷方式"标签页中,找到"目标"一栏

4. 在路径最后添加参数(注意加空格):

```

–remote-debugging-port=9222 --user-data-dir=“%TEMP%\ChromeDebugTemp”

```

5. 点击"确定"保存

**示例**

- 原路径:`“C:\Program Files\Google\Chrome\Application\chrome.exe”`

- 修改后:`“C:\Program Files\Google\Chrome\Application\chrome.exe” --remote-debugging-port=9222 --user-data-dir=“%TEMP%\ChromeDebugTemp”`

#### 方法 B:使用批处理脚本

直接双击运行 `start-chrome-debug.bat`。

#### 方法 C:手动启动(所有平台)

**Windows (CMD):**

```bash

start chrome --remote-debugging-port=9222 --user-data-dir=“%TEMP%\ChromeDebugTemp”

```

**macOS:**

```bash

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=“$HOME/ChromeDebugTemp”

```

**Linux:**

```bash

google-chrome --remote-debugging-port=9222 --user-data-dir=“$HOME/ChromeDebugTemp”

```

-–

### 第四步:启动 Chrome

双击修改后的 Chrome 快捷方式,或运行批处理脚本。

-–

### 第五步:启动日志抓取

1. 打开新的命令行窗口

2. 切换到项目目录:

```bash

cd /d D:\iflow

```

3. 运行日志抓取脚本:

```bash

node chrome-log-catcher.js

```

-–

### 第六步:测试

1. 在 Chrome 浏览器中打开任意网页

2. 按 `F12` 打开开发者工具

3. 在控制台中输入:

```javascript

console.log(‘测试日志’);

console.error(‘错误日志’);

console.warn(‘警告日志’);

```

4. 查看命令行窗口,应该会显示:

```

[2026/1/5 15:30:45] [LOG] [https://example.com:1] 测试日志

[2026/1/5 15:30:46] [ERROR] [https://example.com:1] 错误日志

[2026/1/5 15:30:47] [WARN] [https://example.com:1] 警告日志

```

-–

### 第七步:停止抓取

按 `Ctrl + C` 停止日志抓取。

-–

## 文件清单

部署完成后,您应该有以下文件:

```

D:\iflow\

├── chrome-log-catcher.js # 日志抓取脚本

├── start-chrome-debug.bat # 一键启动脚本(可选)

├── package.json # 依赖配置文件

└── node_modules\ # 依赖包目录

└── chrome-remote-interface\\   # Chrome 远程调试接口库

```

-–

## 快速开始(已部署完成)

如果已经完成部署,可以直接使用:

### 步骤 1:启动 Chrome 远程调试模式

双击修改后的 Chrome 快捷方式,或运行 `start-chrome-debug.bat`。

### 步骤 2:启动日志抓取

在新的命令行窗口中运行:

```bash

node chrome-log-catcher.js

```

### 步骤 3:在 Chrome 中生成日志

在 Chrome 浏览器中打开任意网页,在控制台执行 JavaScript 代码:

```javascript

console.log(‘这是一条普通日志’);

console.error(‘这是一条错误日志’);

console.warn(‘这是一条警告日志’);

console.info(‘这是一条信息日志’);

```

日志会实时显示在 `chrome-log-catcher.js` 的输出中。

## 输出格式

日志格式如下:

```

[2026/1/5 14:30:45] [LOG] [https://example.com/app.js:123\] 这是一条普通日志

[2026/1/5 14:30:46] [ERROR] [https://example.com/app.js:456\] 这是一条错误日志

[2026/1/5 14:30:47] [WARN] [https://example.com/app.js:789\] 这是一条警告日志

```

- `[时间]`: 日志产生的时间戳

- `[类型]`: 日志级别(LOG/ERROR/WARN/INFO/DEBUG)

- `[来源:行号]`: 日志来源的文件路径和行号

- `内容`: 日志的实际内容

## 与 iflow CLI 集成

### 方式 1:管道输出(实时处理)

将日志直接通过管道传给 iflow CLI:

```bash

node chrome-log-catcher.js | iflow [你的命令]

```

### 方式 2:日志文件(批量处理)

先将日志保存到文件,再让 iflow CLI 读取:

```bash

# 保存日志到文件

node chrome-log-catcher.js > chrome-logs.txt 2>&1 &

# 让 iflow CLI 读取日志文件

iflow [你的命令] --input chrome-logs.txt

```

## 依赖

- Node.js

- chrome-remote-interface

2 个赞