Skip to content
dsh.fish
Bundle

@comecaramelos/dsh-unity-mcp

DSH plugin: Unity MCP bridge (the `unity-ai-relay` executable shipped by com.unity.ai.assistant, launched as `<relay> --mcp [extraFlags]`) integration (wraps @deepseek-ai/dsh-mcp-client)

Source
ComeCaramelos
License
MIT
Updated
Updated 17 hours ago

Readme

# @comecaramelos/dsh-unity-mcp

Connects DSH to the **Unity MCP** server — the `unity-ai-relay` executable the
Unity AI Assistant package (`com.unity.ai.assistant`) installs — through the
stock `@deepseek-ai/dsh-mcp-client` stdio bridge, plus a settings/status card in
the Web GUI.

Every tool the relay registers is exposed as a normal `mcp__unity__*` tool.

## Install

```sh
dsh plugin --profile web add @comecaramelos/dsh-unity-mcp
```

The plugin **does not download anything**: it launches the `unity-ai-relay`
executable your Unity Editor installed. Install the
[Unity AI Assistant](https://docs.unity3d.com/Packages/com.unity.ai.assistant@2.0/manual/unity-mcp-get-started.html)
package first, and keep a Unity Editor running — the relay is the Editor's
side-channel, so an Editor that is not running answers
`No Unity Editor connected`.

## Configuration

Settings live under **Settings → Plugins → Plugin configuration → DSH Unity MCP**.

- **Unity relay executable** — the executable the bridge launches. Open the
  picker, hit **Fetch executables** to search this machine (the search also walks
  every Windows user profile visible from a WSL host), and pick one. The pick is
  remembered; applying a different one restarts the connection.
- **Extra flags** — one flag per row, appended after the `--mcp` mode flag the
  bridge always passes, for example `--project-path=/home/roberto/game`,
  `--name=MyProject`, `--log-level=debug`.
- **Reduce log output** — keeps the relay's own progress lines out of the DSH
  console by redirecting its stderr into a log file (turn it off to debug the
  raw output).

Nothing is picked for you: what the saved rows list is what you can pick, and a
path you picked stays picked — if it later stops running it reads broken, it is
never silently re-resolved.

### Windows relay from WSL

A Windows relay launched through the WSL interop mount works like a native one:
it speaks MCP over stdio, so nothing about the connection changes. The card says
so when that is what is running, and reminds you to keep the relay's arguments
(`--log-dir`, and `--project-path` when you pin a project) in their Windows
spelling — the relay resolves them on the Windows side.

## Row configuration

For a per-profile pin, edit the plugin row's `config`:

| Key | Default | Meaning |
| --- | --- | --- |
| `serverName` | `unity` | the bridge's server namespace (tool names are `mcp__<serverName>__<tool>`) |
| `relayPath` | `""` | the executable to launch when the card has never picked one |
| `relayPaths` | the platform's relay locations | the candidate list the **Search executables** run probes |
| `extraFlags` | `[]` | flags appended after the `--mcp` mode flag |
| `command` | `""` | a launcher prefix to wrap the spawn with (the relay needs no wrapper) |
| `env` / `cwd` | `{}` / `""` | passed through to the bridge |
| `toolCallTimeoutMs` | `60000` | per-tool-call timeout |
| `failOnStartupError` | `false` | fail the load when the bridge cannot start |
| `reconnect` | `{ enabled: true, initialDelayMs: 500, maxDelayMs: 30000, maxAttempts: 10 }` | reconnect policy |
| `bridgeStderr` | `"log"` | console-output routing: `"log"` captures stderr into a log file, `"console"` echoes it |
| `bridgeStderrLog` | `""` | log path override for `"log"` mode (absolute paths only) |

The environment variable `DSH_UNITY_MCP_FLAGS` (whitespace-separated) seeds the
launch flags for one run.

## Manual installation

Replace `/path/to/dsh-unity-mcp` with your local checkout:

```sh
mkdir -p ~/.dsh/profiles/web/node_modules/@comecaramelos
ln -s /path/to/dsh-unity-mcp ~/.dsh/profiles/web/node_modules/@comecaramelos/dsh-unity-mcp
```

Add the dependency and bundle to `~/.dsh/profiles/web/package.json`, preserving
existing entries:

```json
{
  "dependencies": {
    "@comecaramelos/dsh-unity-mcp": "link:/path/to/dsh-unity-mcp"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "@comecaramelos/dsh-unity-mcp"
      ]
    }
  }
}
```

---

[Contributing](CONTRIBUTING.md) · [License](LICENSE.md)

Install

dsh plugin --profile web add github:ComeCaramelos/dsh-unity-mcp

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source