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 开发、测试或自动化构建的开发者,这是一个必要的桥接工具。

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

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

Xiaoye