- You’re developing an MCP server and want to test it against a real agent before publishing.
- The server needs something only a specific machine can reach — a browser, a local database, an SSH key, a code editor.
- You want to run a private tool for yourself or your team without hosting it.
Quick Start
Uplink usessmithery mcp add. If the URL resolves to localhost (or 127.0.0.1), or you pass a command in place of a URL, the CLI opens an uplink tunnel in the background and registers the connection against your namespace.
- Local HTTP server
- Stdio command
my-app/chrome behaves like any other Smithery connection.
Call it like any other connection
Reach the uplinked server through the standard Smithery surface — no special transport handling required:- CLI
- TypeScript
- cURL
How it works
Whensmithery mcp add sees a localhost URL or a trailing command, it:
- Registers a connection on your namespace marked as uplink-backed.
- Opens a persistent WebSocket to Smithery scoped to that connection.
- Connects to your local HTTP server, or spawns the command as a subprocess, and bridges JSON-RPC between the WebSocket and the local process.
Connection lifecycle
An uplink connection reports one of:| Status | Description |
|---|---|
connected | Tunnel is live; requests are being forwarded |
disconnected | No CLI is attached (never paired, exited, or lost its WebSocket). Cached tool lists are dropped |
error | The tunnel or the local process errored |
serverInfo is cleared, so callers don’t see a stale tool list. Re-running smithery mcp add with the same --id reattaches the tunnel.
One tunnel per connection
Each connection can carry only one live tunnel at a time. Runningsmithery mcp add for the same --id from a second machine fails with a conflict. Pass --force to take over:
--force deliberately — the previous CLI is disconnected immediately, and any requests it was mid-handling fail.
Security
- Traffic is end-to-end TLS from Smithery to the CLI. The local MCP server speaks plain stdio or loopback HTTP to the CLI as it normally would.
- Uplink forwards arbitrary traffic to a process on the host machine. Only uplink servers you trust, and treat any trailing command as you would any other local executable.
Limitations
- One tunnel per connection. See above.
- Availability follows the host. If the CLI is offline, the connection reports
disconnectedand calls fail fast. Uplink is a development and personal-automation primitive, not a hosting solution — publish your server to Smithery when you’re ready for production. - Latency includes your network. Every request makes a round trip to the host machine.