DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

OrrHsiao /

OrrHsiao/dsh-xcode-mcp

Verified

Apple Xcode MCP bridge for DeepSeek Harness — bridges xcrun mcpbridge into native mcp__xcode__* tools. Configuration-only bundle: no code, no dependencies.

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@8c665852

dsh-xcode-mcp

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.

Why a bundle

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.

What actually gets installed

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.

Requirements

  • 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.

Install

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.

Verify

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).

Upgrading

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.

Configure

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.

A note on the 54 tools

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.

Remove

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.

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 8c66585238c6

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout