🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Xcode 工具桥 OrrHsiao/dsh-xcode-mcp

DeepSeek Harnessv1.0.4
OrrHsiao18 天前有提交已提供中文文档扫描:含敏感能力

把 Xcode 的构建测试与模拟器操作接给模型

30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/14 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:缺少 main/exports/bin 入口声明。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add OrrHsiao/dsh-xcode-mcp
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · dev
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 18 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

缺少 main/exports/bin 入口声明

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-xcode-mcp @ 1.0.4
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/14 10:18:01

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 7 处,展示前 7 条)
  • 读取本地文件
    install-local.mjs:25
    const PKG_NAME = JSON.parse(readFileSync(join(HERE, 'package.json'), 'utf8')).name;
  • 读取本地文件
    install-local.mjs:37
    if (!existsSync(MANIFEST)) {
  • 读取本地文件
    install-local.mjs:44
    const manifest = JSON.parse(readFileSync(MANIFEST, 'utf8'));
  • 读取本地文件
    install-local.mjs:60
    const patchText = readFileSync(PATCH, 'utf8');
  • 写入本地文件
    install-local.mjs:109
    copyFileSync(f, bak);
  • 写入本地文件
    install-local.mjs:122
    writeFileSync(MANIFEST, JSON.stringify(next, null, 2) + '\n');
  • 写入本地文件
    install-local.mjs:129
    writeFileSync(PATCH, next.join('\n').replace(/ {3,}/g, '\n\n'));
扫描于 2026/11/1(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-xcode-mcp Apple Xcode MCP 桥接,用于 DeepSeek Harness。 Xcode 27 自带一套无头 MCP 工具服务。/usr/bin/xcrun mcpbridge 是通往它的 STDIO 桥接。这个 bundle 把该桥接接入 DeepSeek Harness 已自带的 MCP 客户端,于是每个 Xcode 工具都以普通原生工具的形式抵达模型,名字是 mcp__xcode__<ToolName>。 在 Xcode 27.0 上,这就是 54 个工具:项目和 scheme 检查、构建、测试、SwiftUI Preview 渲染、模拟器启动与交互(tap / type / swipe)、截图、辅助功能层级、OSLog,以及 Swift 包、本地化和插桩相关的辅助工具。 为什么要做成 bundle 手动接 xcrun mcpbridge,意味着要改配置档的 cordis.patch.yml,还要记住传输字段、工具调用超时和失败策略。这个包把这些配置一并带上,于是连接变成一件可安装的东西:有名字、有版本、列在 Plugins 页面里,也能像其他插件一样卸载。 实际安装了什么 不运行任何 JavaScript。
展开完整文档(README 剩余 1 节)
dsh-xcode-mcp

Apple Xcode MCP 桥接,用于 DeepSeek Harness。

Xcode 27 自带一套无头 MCP 工具服务。/usr/bin/xcrun mcpbridge 是通往它的 STDIO 桥接。这个 bundle 把该桥接接入 DeepSeek Harness 已自带的 MCP 客户端,于是每个 Xcode 工具都以普通原生工具的形式抵达模型,名字是 mcp__xcode__<ToolName>。

在 Xcode 27.0 上,这就是 54 个工具:项目和 scheme 检查、构建、测试、SwiftUI Preview 渲染、模拟器启动与交互(tap / type / swipe)、截图、辅助功能层级、OSLog,以及 Swift 包、本地化和插桩相关的辅助工具。

为什么要做成 bundle

手动接 xcrun mcpbridge,意味着要改配置档的 cordis.patch.yml,还要记住传输字段、工具调用超时和失败策略。这个包把这些配置一并带上,于是连接变成一件可安装的东西:有名字、有版本、列在 Plugins 页面里,也能像其他插件一样卸载。

实际安装了什么

不运行任何 JavaScript。 纯配置 bundle 就是一份 manifest 加一个补丁——8 个文件,解包后约 4 kB,没有 dependencies,没有 scripts,没有构建步骤:

package.json cordis.patch.yml icon.svg
locale/en.json locale/zh.json README.md README-zh.md LICENSE

@deepseek-ai/dsh-mcp-client 是真正负责通信的插件,它随 dsh 本身一起发布,这里刻意不把它列为依赖。除了 Configure 下那约 40 行 YAML,这里没有别的东西需要审计。

要求

- macOS、Xcode 27 或更高版本。更早的版本里没有 mcpbridge。
- 无头服务已启用并正在运行:

xcrun mcp-server status # expect: Permission: enabled / mcp-server: running
sudo xcrun mcp-server enable
xcrun mcp-server start

- 要用项目级工具,需要在 Xcode 中打开项目,并为你构建所在的文件夹授予权限:

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

首次连接时,Xcode 会弹出智能体授权提示。已签名的客户端(比如 DeepSeek Harness)会被永久记住;未签名客户端的授权大约 24 小时后过期。

安装

在侧边栏的 Plugins 页面输入包名:

dsh-xcode-mcp

安装即启用该 bundle;通常通过 HMR 就能激活。如果 mcp__xcode__ 工具没有出现,重启配置档,让新的 bundle 层重新组合。

指向本地检出目录的绝对路径也一样可用,适合发布前安装。

验证

让它做点需要 Xcode 的事,或者查看工具列表里有没有 mcp__xcode__。第一次调用推荐 mcp__xcode__XcodeListWorkspaces:

* workspaceIdentifier: workspace-xxxxxxxxxx, workspacePath: /path/to/App.xcodeproj

然后用那个标识符调用 mcp__xcode__XcodeListSchemes,就会列出项目的方案。两者都已在 Xcode 27.0(27A266a)上验证通过。

升级

DSH 不会自动更新已安装的插件。 它自己的 Plugins 页面就是这么写的,而且覆盖安装已有副本会被拒绝,提示 "this plugin is already installed" —— 先卸载,才能升级。

所以走 Plugins 页面的路线是:先卸载,再安装。

在 shell 里,同样的升级可以省掉卸载这一步:

dsh plugin --profile <profile> update dsh-xcode-mcp

不管走哪条路,都要有心理准备:插件管理器通过 pnpm 安装,而 pnpm 的 minimumReleaseAge 默认是 1440 分钟。发布不到一天的版本装不上,命令会报 Already up to date,哪怕确实有更新的版本。这是供应链保护,不是故障 —— 等一天,或者如果你确定这个发布是你自己的,就在配置档的 pnpm-workspace.yaml 里调低这个设置。

这个 bundle 只有配置,所以升级只是替换几个声明文件。升级前后都不跑任何代码。

配置

配置行是 mcp-xcode;它的 config 就是完整的 @deepseek-ai/dsh-mcp-client schema,那里记录的任何字段都能用。要改某个字段,就在配置档自己的 cordis.patch.yml 里覆盖这一行 —— 匹配的覆盖会替换整个 config,所以你还想要的字段都要重新写一遍:

- id: mcp-xcode
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: xcode
transport: stdio
command: /usr/bin/xcrun
args: ['mcpbridge']
toolCallTimeoutMs: 900000 # default is 60 s; builds need more
failOnStartupError: false # Xcode closed must not block harness startup

想指定某个 Xcode,而不是 xcode-select 指定的那个,就加上 env,配上 MCP_XCODE_PID。

关于这 54 个工具

每一轮都会把每个工具的 JSON Schema 交给模型。如果这比你想要的上下文多,@deepseek-ai/dsh-mcp-client 没有 include/exclude 过滤器 —— 替代方案是换一个实现了过滤的 bridge。

移除

通过 Plugins 页面移除,或者从 dsh.profile.bundles 里删掉这个 bundle 并卸载包。禁用 bundle 会一并停掉 mcpbridge 子进程。

License

MIT
预览分享卡片长什么样 ↓OrrHsiao/dsh-xcode-mcp
分享 · DeepSeek Harness Hub
OrrHsiao/dsh-xcode-mcp

把 Xcode 的构建测试与模拟器操作接给模型

回到顶部