You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(connect): one-click Claude Desktop via mcp-remote stdio bridge (MCP-2479) (#682)
* feat(connect): one-click Claude Desktop via mcp-remote stdio bridge
Claude Desktop was marked unsupported in the Connect wizard because it
only speaks stdio, even though mcpproxy can be reached from it via an
`npx -y mcp-remote <mcpURL>` bridge (already documented in docs/setup.md).
- Flip claude-desktop to Supported=true and add a stdio-bridge branch to
buildServerEntry that writes `command: npx`, `args: [-y, mcp-remote, <mcpURL>]`.
- Add a Note field (ClientDef/ClientStatus) surfacing the bridge requirement;
render it in ConnectModal so users know the path uses mcp-remote (needs Node.js).
- Connected-state detection already matches the canonical `mcpproxy` entry name,
so bridge connections are tracked without a URL field.
- Docs: note the one-click wizard path in docs/setup.md; widen connect POST/DELETE
client-ID examples.
Related MCP-2479
* test(connect): isolate claude-desktop config path on Windows
On Windows, ConfigPath ignores the homeDir override for claude-desktop
and vscode (it reads %APPDATA%), so the no-key and with-key Claude Desktop
bridge tests both wrote to the same real APPDATA\Claude path. The no-key
test ran first and created the entry; the with-key test then hit
`already_exists` (force=false) and never wrote the apikey, failing the
assertion on the windows-amd64 runner.
Pin %APPDATA% under the per-test temp dir in the test-service helpers,
mirroring the existing %LOCALAPPDATA% line, so every client's config path
is isolated per-test on Windows. No-op on macOS/Linux.
Related MCP-2479
* fix(connect): bridge connectable on fresh install + detect custom-name bridge
Addresses Codex REQUEST_CHANGES on PR #682 (MCP-2479):
Gap 1 — Connect button hidden on fresh installs. A fresh Claude Desktop has
no config file yet (exists=false), so the modal showed "Config not found"
instead of a Connect button even though Connect can create the file. Add a
`Bridge` flag to ClientDef/ClientStatus (true for claude-desktop) and relax
the frontend gate to `supported && (exists || bridge)` for the button and
the Connect-All set.
Gap 2 — Status detection only matched the `mcpproxy` key. A bridge written
under a custom server_name has no URL field and a non-default key, so it
showed disconnected. Detect the bridge by inspecting the entry args
(mcp-remote + mcpURL) via entryPointsToBridge, regardless of the key.
Tests: custom-name bridge detection, bridge flag on ClientDef/status, and a
fresh-install (exists=false) Connect-button render. go test ./internal/connect/...
green; full vitest + vue-tsc green.
Related MCP-2479
Copy file name to clipboardExpand all lines: docs/setup.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -254,6 +254,8 @@ Add mcpproxy as a remote MCP server via Settings → Connectors → Add Custom C
254
254
255
255
#### Option A: Free Plan — JSON Configuration
256
256
257
+
> **💡 One-click:** mcpproxy's built-in **Connect** wizard (Web UI / tray) can write this bridge configuration for you automatically — pick **Claude Desktop** and click **Connect**. It registers the `npx -y mcp-remote` bridge shown below (Node.js required). The manual steps remain available if you prefer to edit the file yourself.
0 commit comments