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 還要確認模式和模型提供工具,並給出準確工具、網址和唯讀結果。

步驟預期結果
initializeFileNotFoundError · errno 2
tools/list25 → 0
Origin filterERR_BLOCKED_BY_CLIENT · 0 requests
tools/call0 → J01-FIXTURE

複雜流程前先做最小檢查

請 Agent 開啟核准的本機或公開頁面,回報最後網址、標題和已知標記。比較文字和瀏覽器回執。直接呼叫成功但模型略過時,查用戶端工具選擇或核准紀錄。呼叫報錯時保留名稱與結構化訊息,修正該層後再試。

工具預期結果
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 還要確認模式和模型提供工具,並給出準確工具、網址和唯讀結果。

下一步

讓 Tabbit 與你並肩工作。

跨分頁調研、自動化重複的瀏覽器工作,讓每一處上下文都觸手可及。