前言¶
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
适用场景与注意¶
使用前需满足以下条件:
- 系统要求:macOS 系统以及 Xcode 27 或更高版本。
mcpbridge在旧版本中不存在。 - 服务运行:无头服务必须启用并运行。
- 项目上下文:若要使用项目范围(Project-scoped)的工具,Xcode 中必须打开对应项目。
- 客户端签名:首次连接时 Xcode 会弹出授权提示。只有签名过的客户端(如 DSH)才能获得永久授权,未签名的授权大约 24 小时后过期。
- 手动更新:DSH 不会自动更新已安装的插件。升级需要先卸载再重新安装。
- 供应链保护:插件安装依赖于 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 开发、测试或自动化构建的开发者,这是一个必要的桥接工具。