Bundle
@comecaramelos/dsh-docker-desktop-mcp
DSH plugin: Docker Desktop MCP gateway with a UI profile picker (wraps @deepseek-ai/dsh-mcp-client)
- Source
- ComeCaramelos
- License
- MIT
- Updated
- Updated 3 days ago
Readme
# @comecaramelos/dsh-docker-desktop-mcp
DSH plugin that connects the **Docker Desktop MCP Toolkit** gateway
(`docker mcp gateway run --profile <name>`) as an MCP server, with a **profile
picker in the Web GUI** — instead of hardcoding `--profile` in the config row.
## Install
From npm (recommended):
```sh
dsh plugin --profile web add @comecaramelos/dsh-docker-desktop-mcp
```
The plugin inserts a `mcp-docker` row (id: `mcp-docker`, profile: `default`)
into the Cordis bundle layer. If you already have a `mcp-docker` row in your
profile's `cordis.patch.yml`, the bundle layer's insert is superseded by your
row (later patches win by `id`).
Manual install (WSL + Windows pnpm, where symlinks fail):
```sh
mkdir -p ~/.dsh/profiles/web/node_modules/@comecaramelos
ln -s /path/to/dsh-docker-desktop-mcp ~/.dsh/profiles/web/node_modules/@comecaramelos/dsh-docker-desktop-mcp
# Add to ~/.dsh/profiles/web/package.json dependencies:
# "@comecaramelos/dsh-docker-desktop-mcp": "file:/path/to/dsh-docker-desktop-mcp"
```
Then replace (or create) your `dsh-mcp-client` row in
`$DSH_HOME/profiles/web/cordis.patch.yml`:
```yaml
# before
- id: mcp-docker
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: docker
transport: stdio
command: docker
args: ['mcp', 'gateway', 'run', '--profile', 'default']
# after
- id: mcp-docker
name: '@comecaramelos/dsh-docker-desktop-mcp'
config:
serverName: docker
profile: default
```
### WSL + Docker Desktop (Windows)
Docker Desktop keeps its MCP profiles in the Windows store
(`C:\Users\<you>\.docker\mcp`), while the Linux CLI inside the distro reads the
(usually empty) `~/.docker/mcp`. When `/Docker/host/bin/docker.exe` is
executable on linux, discovery and the gateway spawn use it.
Set `command` to an explicit path to opt out.
## Why this over the default config
- **Profile picker in Settings** — switch Docker MCP profiles without editing
`cordis.patch.yml`. Selection persists in `$DSH_HOME/settings.yaml`.
- **Refresh profiles button** — runs `docker mcp profile list --format json`
and repopulates the select from the host.
- **Hot reconnect** — picking a profile re-applies the gateway with the new
`--profile` in place; no restart needed.
- **Profile precedence**: UI selection > `DSH_DOCKER_MCP_PROFILE` env var >
row config > `"default"`. Seed a machine default via env, switch per-run from UI.
---
[`CONTRIBUTING`](CONTRIBUTING.md) | [`LICENSE`](LICENSE.md)
Install
dsh plugin --profile web add github:ComeCaramelos/dsh-docker-desktop-mcp
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install comecaramelos-dsh-docker-desktop-mcp from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.