/ 目錄 / 演練場 / DebugMCP
● 官方 microsoft ⚡ 即開即用

DebugMCP

作者 microsoft · microsoft/DebugMCP

Microsoft 的 DebugMCP 讓 Claude 完全掌控 VS Code 除錯工具——支援 9 種語言的中斷點設定、單步執行與變數檢查。

DebugMCP 是 Microsoft 官方的 VS Code 擴充套件,將編輯器的除錯工具以 MCP 工具的形式公開。你的 AI 助理可以自主啟動除錯工作階段、依程式碼內容設定中斷點(不再依賴容易失效的行號)、單步執行,並檢查變數——支援 Python、TypeScript、Java、C#、C++、Go、Rust、PHP 和 Ruby。純本機執行,無外部呼叫,在連接埠 3001 上執行。

為什麼要用

核心特性

即時演示

實際使用效果

debug-mcp-microsoft.replay ▶ 就緒
0/0

安裝

選擇你的客戶端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "debug-mcp-microsoft": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:3001/mcp"
      ]
    }
  }
}

開啟 Claude Desktop → Settings → Developer → Edit Config。儲存後重啟應用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "debug-mcp-microsoft": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:3001/mcp"
      ]
    }
  }
}

Cursor 使用與 Claude Desktop 相同的 mcpServers 格式。專案級設定優先於全域。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "debug-mcp-microsoft": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:3001/mcp"
      ]
    }
  }
}

點擊 Cline 側欄中的 MCP Servers 圖示,然後選 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "debug-mcp-microsoft": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:3001/mcp"
      ]
    }
  }
}

格式與 Claude Desktop 相同。重啟 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "debug-mcp-microsoft",
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:3001/mcp"
      ]
    }
  ]
}

Continue 使用伺服器物件陣列,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "debug-mcp-microsoft": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "mcp-remote",
          "http://localhost:3001/mcp"
        ]
      }
    }
  }
}

加入 context_servers。Zed 儲存後熱重載。

claude mcp add debug-mcp-microsoft -- npx -y mcp-remote http://localhost:3001/mcp

一行命令搞定。用 claude mcp list 驗證,claude mcp remove 移除。

使用場景

實戰用法: DebugMCP

讓 Claude 單步執行失敗的測試,而非靠列印輸出除錯

👤 後端/應用程式開發者 ⏱ ~15 min beginner

何時使用: 測試失敗卻沒有明確的 stack trace——用列印除錯會耗費大量時間。

前置條件
  • 在 VS Code 安裝 DebugMCP — Marketplace → ozzafar.debugmcpextension
  • 對應語言的除錯擴充套件(例如 Python 用 .py) — VS Code 首次執行時會自動提示安裝
步驟
  1. 設置
    使用 debugmcp。在 tests/test_orders.py 的 assert result == expected 這行設定中斷點。✓ 已複製
    → 中斷點設定成功;程式碼內容已比對
  2. 執行
    針對失敗的測試,啟動 tests/test_orders.py 的除錯工作階段。✓ 已複製
    → 工作階段在中斷點暫停
  3. 檢查
    顯示所有本地變數。result 實際包含什麼?✓ 已複製
    → 含具體數值的變數傾印
  4. 單步執行並診斷
    進入建立 result 的函式。告訴我它在哪裡偏離了預期值。✓ 已複製
    → 有程式碼定位的根本原因

結果: 透過單步執行找到 bug,而非靠猜測——幾分鐘解決,而非耗費一小時。

注意事項
  • 以行號設定的中斷點在編輯後會偏移 — 使用程式碼內容比對(DebugMCP 原生支援此功能)
搭配使用: filesystem

用條件中斷點鎖定幽靈 bug

👤 面對間歇性 bug 的開發者 ⏱ ~25 min intermediate

何時使用: bug 只在特定輸入下重現——你需要只在該情況下才觸發的停止點。

步驟
  1. 條件中斷
    process(order) 呼叫處加入中斷點,僅在 order.id 以 'EXP-' 開頭時觸發。✓ 已複製
    → 條件中斷點已安裝
  2. 驅動重現
    執行整合測試套件。停下後,對 order DTO 和請求標頭求值。✓ 已複製
    → 捕獲到確切的失敗輸入

結果: 幽靈 bug 成為可重現的普通 bug。

注意事項
  • 條件求值拖慢迴圈 — 縮窄條件範圍;保持純粹(無副作用)

用除錯工具作為陌生程式碼的文件

👤 正在熟悉服務的新成員 ⏱ ~30 min beginner

何時使用: 你接手了一個服務,但資料流完全不透明。

步驟
  1. 追蹤進入點
    在 /orders 的 HTTP handler 設定中斷點。執行一個範例請求,並單步追蹤每個呼叫直到回應返回。邊走邊解說。✓ 已複製
    → 含 file:line 標注的逐步追蹤

結果: 一份任何圖表都未能捕捉到的服務行為地圖。

注意事項
  • 追蹤深度過深 — 對已知無趣的呼叫框架使用 step_over,只對有趣的部分使用 step_into

組合

與其他 MCP 搭配,撬動十倍槓桿

debug-mcp-microsoft + filesystem

單步執行時讀取原始碼以決定下一步

進入呼叫。暫停時,透過 filesystem 顯示周圍的函式。✓ 已複製
debug-mcp-microsoft + github

用除錯工具驗證修復後,開一個 PR

已確認 bug。開一個 PR 附上修復,並在說明中引用除錯工作階段。✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
start_debugging fileFullPath, workingDirectory, testName?, configurationName? 開始除錯工作階段 免費
add_breakpoint fileFullPath, lineContent 依程式碼內容標記暫停點 免費
step_over (無) 前進一個原始碼行 免費
step_into (無) 進入被呼叫的函式 免費
get_variables_values scope: 'local'|'global'|'all' 在目前暫停點檢查狀態 免費
evaluate_expression expression: str 不重新執行即可驗證假設 免費
list_breakpoints (無) 審核目前設定的中斷點 免費

成本與限制

運行它的成本

API 配額
本機執行——無配額限制
每次呼叫 Token 數
每個除錯動作 100–500 個 token
費用
免費(MIT 授權)
提示
單步執行比列印除錯的迭代循環更省成本;用 token 換取更快的診斷速度

安全

權限、密鑰、影響範圍

最小權限: 本機檔案讀取(用於原始碼對應)
憑證儲存: 無——不需要憑證
資料出站: 無——完全本機
切勿授予: 將連接埠 3001 對外暴露

故障排查

常見錯誤與修復

安裝後未偵測到 MCP 伺服器

重新啟動 VS Code;確認擴充套件已啟用且連接埠 3001 空閒

驗證: curl http://localhost:3001/mcp
語言不受支援

先安裝對應的 VS Code 語言除錯擴充套件(例如 Python 用 ms-python.python)

驗證: 先從 VS Code UI 手動執行除錯確認
中斷點永遠不觸發

原始碼對應不符——確認你除錯的是你所編輯的同一個建置產物

驗證: 檢查 launch.json 的 `program` 路徑

替代方案

DebugMCP 對比其他方案

替代方案何時用它替代權衡
列印/日誌陳述式快速一次性除錯,無 IDE 連接成本低但迭代慢;污染程式碼庫
語言專屬 REPL你只需要事後檢查無即時單步執行;不如完整除錯工具豐富

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills