dsh-xcode-mcp: DeepSeek Harness 的 Xcode MCP 橋接插件

前言

DeepSeek Harness(DSH)的生態理念是「一切皆插件」。Xcode 27 引入了一個無頭的 MCP 工具服務,通過 /usr/bin/xcrun mcpbridge 提供標準輸入輸出(STDIO)橋接。DSH 自帶的 MCP 客戶端目前無法直接調用這些工具,通常需要手動編輯 cordis.patch.yml 配置文件來連接該橋接。

dsh-xcode-mcp 插件承擔了橋接的工作,將 xcrun mcpbridge 映射爲原生工具 mcp__xcode__*。這把原本零散的配置變成一個可安裝、可卸載、可版本管理的插件單元,省去了維護 profile 文件的麻煩。

是什麼

這是一個爲 DeepSeek Harness 設計的 Apple Xcode MCP 橋接插件。

  • 維護者:OrrHsiao
  • 定位:配置型插件(Configuration-only bundle),不包含代碼邏輯,不依賴其他 npm 包。
  • 核心價值:將 Xcode 27 的無頭服務接入 DSH 的工具列表,讓模型直接調用 Xcode 命令。

核心功能

該插件將 Xcode 27 的 54 個工具暴露給 DSH,主要包括:

  • 項目與 Scheme 檢查
  • 構建(Build)與測試(Test)
  • SwiftUI 預覽渲染
  • 模擬器啓動與交互(點擊、輸入、滑動)
  • 截圖功能
  • 輔助功能層級(Accessibility hierarchy)
  • OSLog 日誌查看
  • Swift Package、本地化及性能分析輔助工具

安裝與啓用

通過 DSH 側邊欄的「Plugins」頁面安裝。在搜索框中輸入包名即可:

dsh-xcode-mcp

安裝後插件通常通過熱更新自動激活。如果 mcp__xcode__* 工具未出現在列表中,請重啓當前 Profile 以重新加載插件層。

典型用法

啓用插件後,模型可以通過以下命令或工具進行操作:

系統狀態檢查

xcrun mcp-server status     # 檢查服務是否運行
xcrun mcp-server enable     # 啓用服務
xcrun mcp-server start      # 啓動服務

授權項目目錄

sudo xcrun mcp-server allow-folder /path/to/your/projects

工具調用示例

模型調用原生工具時,名稱格式爲 mcp__xcode__ToolName:

mcp__xcode__XcodeListWorkspaces
# 返回示例:
# * workspaceIdentifier: workspace-xxxxxxxxxx, workspacePath: /path/to/App.xcodeproj

mcp__xcode__XcodeListSchemes
# 需結合 workspaceIdentifier 使用,列出項目的 Scheme

適用場景與注意

使用前需滿足以下條件:

  1. 系統要求:macOS 系統以及 Xcode 27 或更高版本。mcpbridge 在舊版本中不存在。
  2. 服務運行:無頭服務必須啓用並運行。
  3. 項目上下文:若要使用項目範圍(Project-scoped)的工具,Xcode 中必須打開對應項目。
  4. 客戶端簽名:首次連接時 Xcode 會彈出授權提示。只有簽名過的客戶端(如 DSH)才能獲得永久授權,未簽名的授權大約 24 小時後過期。
  5. 手動更新:DSH 不會自動更新已安裝的插件。升級需要先卸載再重新安裝。
  6. 供應鏈保護:插件安裝依賴於 pnpm,默認設置要求發佈時間至少 24 小時(1440 分鐘)。發佈不到一天的版本會被拒絕安裝,即使運行更新命令也會顯示 “Already up to date”。這是爲了安全,不是故障。

配置說明

該插件本質上是一個配置補丁。在 DSH 的 cordis.patch.yml 中,可以通過覆蓋 mcp-xcode 行來調整參數。

默認配置如下(基於 @deepseek-ai/dsh-mcp-client schema):

- id: mcp-xcode
  name: '@deepseek-ai/dsh-mcp-client'
  config:
    serverName: xcode
    transport: stdio
    command: /usr/bin/xcrun
    args: ['mcpbridge']
    toolCallTimeoutMs: 900000   # 默認 60 秒,構建任務通常需要更長時間
    failOnStartupError: false   # Xcode 關閉時不應阻塞 Harness 啓動

如果需要指向特定的 Xcode 實例(而非 xcode-select 指向的默認版本),可以在 config 中添加 env 字段:

    env:
      MCP_XCODE_PID: <PID>

結語

dsh-xcode-mcp 通過極簡的配置解決了 DSH 與 Xcode 27 無頭服務的集成問題。對於需要在 DSH 中進行 iOS/Mac 開發、測試或自動化構建的開發者,這是一個必要的橋接工具。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜