Tabbit博客

MCP 已连接却没有浏览器工具?按四层排查

分别检查服务启动、工具发现、授权和实际调用,用最小浏览器回执定位断点。

本文目录
  1. 第一层:服务是否启动并初始化
  2. 第二层:工具是否对当前会话可见
  3. 第三层:浏览器和目标是否获准
  4. 第四层:Agent 是否真的发出调用
  5. 复杂流程前先做最小检查
  6. 社区实际遇到什么
  7. 显示已连接就代表浏览器工具能用吗?

MCP 显示已连接,并不能保证 Agent 能操控浏览器。找到第一条缺失的回执。服务要初始化,当前客户端要暴露浏览器工具,目标和动作要获准,实际调用还要返回预期页面状态。逐层核对。

第一层:服务是否启动并初始化

读第一条启动或握手错误。本地 stdio 服务要确认客户端在实际环境里能找到并启动命令。远程服务要核对获准的端点、传输和登录。本机诊断故意使用不存在的命令,返回 FileNotFoundError、errno 2,没有初始化回执。

从服务启动到页面回执的四层诊断图

第二层:工具是否对当前会话可见

核对原始 tools/list 和当前 Agent 会话显示的工具。服务返回空列表,与客户端过滤了非空列表是两回事。也要查工具 schema、客户端模式以及工具发现是否结束。本机固定 Playwright MCP 0.0.84 返回 25 个工具,含 browser_navigate。我们在诊断客户端故意过滤,客户端显示 0 个。这是测试条件,并非 Playwright 默认。

MCP · Tools VS Code · MCP servers

第三层:浏览器和目标是否获准

工具可见后,查工作区策略、目标浏览器与配置、以及准确来源和动作的权限。实测 Playwright 来源路由过滤拒绝未列入的回环来源,返回 net::ERR_BLOCKED_BY_CLIENT,目标测试服务器收到 0 个 HTTP 请求。这里只验证应用路由过滤,真实管理与网络限制要另查。

Playwright MCP · Configuration

第四层:Agent 是否真的发出调用

在任务记录里查 tools/call。计划或文字回复不能证明执行。本机脚本先停在工具发现,此时调用数为 0。随后显式对允许来源执行 browser_navigate 和 browser_snapshot,读到 J01-FIXTURE。脚本没有调用模型。真实 Agent 还要核对模型与模式是否暴露工具,提示中是否给出工具、URL 和只读结果。

步骤预期结果
initializeFileNotFoundError · errno 2
tools/list25 → 0
Origin filterERR_BLOCKED_BY_CLIENT · 0 requests
tools/call0 → J01-FIXTURE

复杂流程前先做最小检查

让 Agent 打开获准的本机或公开页面,返回最终 URL、标题和已知标记,然后停止。对照模型回复与浏览器回执。直接调用成功而模型仍跳过时,查客户端工具选择或审批记录。调用返回错误时,保留工具名称和结构化报错,修复该层后再试。

工具预期结果
browser_navigateURL · title
browser_snapshotJ01-FIXTURE

社区实际遇到什么

一位 r/mcp 用户说,某个 stdio 服务成功连接后 tools/list 仍超时。另一位 r/ClaudeAI 用户说同一连接器在 Chat 可用,到了 Code 标签却没有可调用工具。这是不同环境,排查时既要看协议层,也要看实际会话。

r/mcp r/ClaudeAI

显示已连接就代表浏览器工具能用吗?

已连接可能只表示连上服务。另行核对当前会话工具、实际授权调用和页面结果。

常见问题

显示已连接就代表浏览器工具能用吗?

已连接可能只表示连上服务。另行核对当前会话工具、实际授权调用和页面结果。

怎样验证初始化?

读第一条启动或握手错误。本地 stdio 服务要确认客户端在实际环境里能找到并启动命令。远程服务要核对获准的端点、传输和登录。本机诊断故意使用不存在的命令,返回 FileNotFoundError、errno 2,没有初始化回执。

当前会话为什么会显示零工具?

核对原始 tools/list 和当前 Agent 会话显示的工具。服务返回空列表,与客户端过滤了非空列表是两回事。也要查工具 schema、客户端模式以及工具发现是否结束。本机固定 Playwright MCP 0.0.84 返回 25 个工具,含 browser_navigate。我们在诊断客户端故意过滤,客户端显示 0 个。这是测试条件,并非 Playwright 默认。

怎样确认权限?

工具可见后,查工作区策略、目标浏览器与配置、以及准确来源和动作的权限。实测 Playwright 来源路由过滤拒绝未列入的回环来源,返回 net::ERR_BLOCKED_BY_CLIENT,目标测试服务器收到 0 个 HTTP 请求。这里只验证应用路由过滤,真实管理与网络限制要另查。

怎样知道工具实际运行了?

在任务记录里查 tools/call。计划或文字回复不能证明执行。本机脚本先停在工具发现,此时调用数为 0。随后显式对允许来源执行 browser_navigate 和 browser_snapshot,读到 J01-FIXTURE。脚本没有调用模型。真实 Agent 还要核对模型与模式是否暴露工具,提示中是否给出工具、URL 和只读结果。

下一步

让 Tabbit 与你并肩工作。

跨标签页调研、自动化重复的浏览器工作,让每一处上下文都触手可及。