dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Apple Xcode MCP bridge for DeepSeek Harness — bridges xcrun mcpbridge into native mcp__xcode__* tools. Configuration-only bundle: no code, no dependencies.
English | 中文
Apple Xcode MCP bridge for DeepSeek Harness.
Xcode 27 ships a headless MCP tool service. /usr/bin/xcrun mcpbridge is the
STDIO bridge to it. This bundle wires that bridge into the MCP client already
shipped with DeepSeek Harness, so every Xcode tool reaches the model as an
ordinary native tool named mcp__xcode__<ToolName>.
On Xcode 27.0 that is 54 tools: project and scheme inspection, builds, tests, SwiftUI Preview rendering, simulator launch and interaction (tap / type / swipe), screenshots, the accessibility hierarchy, OSLog, and Swift package, localization and instrumentation helpers.
Hand-wiring xcrun mcpbridge means editing the profile's cordis.patch.yml and
remembering the transport fields, the tool-call timeout and the failure policy.
This package carries that configuration instead, so the connection becomes one
installable thing that is named, versioned, listed in the Plugins page and
removable like any other plugin.
No JavaScript runs. A configuration-only bundle is a manifest plus a patch —
8 files, about 4 kB unpacked, no dependencies, no scripts, no build step:
package.json cordis.patch.yml icon.svg
locale/en.json locale/zh.json README.md README-zh.md LICENSE
@deepseek-ai/dsh-mcp-client, the plugin that does the talking, ships with dsh
itself and is deliberately not a dependency of this package. There is nothing to
audit here beyond the ~40 lines of YAML under Configure.
macOS, Xcode 27 or later. mcpbridge does not exist in earlier
versions.
The headless service enabled and running:
xcrun mcp-server status # expect: Permission: enabled / mcp-server: running
sudo xcrun mcp-server enable
xcrun mcp-server start
For the project-scoped tools, a project open in Xcode, plus permission for the folders you build in:
sudo xcrun mcp-server allow-folder /path/to/your/projects
On first connection Xcode shows an agent-authorization prompt. A signed client such as DeepSeek Harness is remembered permanently; an unsigned client's grant expires after about 24 hours.
From the Plugins page in the sidebar, enter the package name:
dsh-xcode-mcp
Installing enables the bundle; it usually activates through HMR. If the
mcp__xcode__* tools do not appear, restart the profile so the new bundle layer
is composed.
An absolute path to a checkout works the same way, for a pre-publish install.
Ask for something that needs Xcode, or check the tool list for mcp__xcode__*.
A good first call is mcp__xcode__XcodeListWorkspaces:
* workspaceIdentifier: workspace-xxxxxxxxxx, workspacePath: /path/to/App.xcodeproj
Then mcp__xcode__XcodeListSchemes with that identifier lists the project's
schemes. Both were verified against Xcode 27.0 (27A266a).
DSH does not update installed plugins automatically. Its own Plugins page says so, and re-installing over an existing copy is refused with "this plugin is already installed" — the uninstall is what makes the upgrade possible.
So the Plugins-page route is: uninstall, then install again.
From a shell, the same upgrade without the uninstall step:
dsh plugin --profile <profile> update dsh-xcode-mcp
One thing to expect either way: the plugin manager installs through pnpm, whose
minimumReleaseAge defaults to 1440
minutes. A release less than a day old will not install, and the command
reports Already up to date even though a newer version exists. That is
supply-chain protection, not a failure — wait a day, or lower the setting in the
profile's pnpm-workspace.yaml if you know the release is yours.
Because this bundle is configuration only, an upgrade replaces a handful of declaration files. It runs no code before or after.
The row is mcp-xcode; its config is the full
@deepseek-ai/dsh-mcp-client
schema, so any field documented there works. To change one, override the row in
the profile's own cordis.patch.yml — a matching override replaces the whole
config, so restate every field you still want:
- 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
To point at a specific Xcode instead of the one xcode-select names, add env
with MCP_XCODE_PID.
Every tool's JSON Schema is offered to the model each turn. If that is more
context than you want, @deepseek-ai/dsh-mcp-client has no include/exclude
filter — the alternative is a bridge that implements one.
Through the Plugins page, or by removing the bundle from dsh.profile.bundles
and uninstalling the package. Disabling the bundle stops the mcpbridge
subprocess with it.
MIT