# MCP Linker: A Desktop Store and Sync Manager for MCP Server Configs

> MCP Linker is a Tauri and React desktop app that browses the official MCP registry and writes server configuration into Claude Code, Cursor, VS Code, Cline, Windsurf, Codex and Roo Code. It is a config writer, not a runtime, and its AGPL-3.0 licence matters if you plan to ship it inside a closed product.

**milisp/mcp-linker** — mcp store manager, add & syncs MCP server configurations across clients like Claude code, Cursor💡mcphub

- Repository: https://github.com/milisp/mcp-linker
- Website: https://mcp-linker.milisp.dev
- Stars: 328 · Forks: 32
- Language: TypeScript
- License: AGPL-3.0
- Published: 2026-09-15 · Updated: 2026-09-15 · Language: en
- Canonical page: https://hysenlabs.com/projects/milisp-mcp-linker

## The problem MCP Linker solves is config drift, not MCP itself

Every MCP-capable client keeps its own list of servers in its own file. Claude Desktop, Claude Code, Cursor, VS Code, Cline, Windsurf, Codex and Roo Code each expect a slightly different shape, and each stores it somewhere different on disk. Adding one server means editing one file, then repeating the edit in every other client you use. Remove a server and you repeat the deletion. Nothing in the protocol forces these files to agree.

MCP Linker targets that specific chore. The README describes it as a way to "add & sync MCP server configurations across clients", with local sync as the first listed feature. The audience is a developer who already runs two or more AI clients on the same machine and wants a single place to add, inspect and remove MCP servers. It is not aimed at someone running one client, and it is not a server runtime: the README never claims to launch or supervise MCP processes.

## A Tauri shell over a registry browser and per-client config writers

The repository layout puts the answer in two places. package.json names the app "A cross-platform desktop manager for MCP servers and client using Tauri + React", and the top-level tree carries both src/ and src-tauri/, so the UI is a React app inside a Tauri shell rather than an Electron bundle. The dependency list is a Radix UI and TanStack stack, with @tauri-apps/plugin-dialog, plugin-clipboard-manager, plugin-deep-link and plugin-os doing the host-side work. That combination is what lets the same codebase ship for macOS, Windows and Linux, as the platform badge states.

The data flow the README describes is short. The app reads the official registry at registry.modelcontextprotocol.io, and .env.example exposes a single override, VITE_REGISTRY_BASE_URL, defaulting to that public endpoint. You browse, click Get to see the configuration, then click Add to install it into the client you selected. The README also lists smart detection of Python, Node.js and uv environments, which matters because a registry entry typically names an interpreter or a package runner that must exist on the machine before the config is useful. The README does not document how conflicts between two clients' existing entries are resolved.

## Installing MCP Linker and adding your first server

The README gives three install routes. Arch Linux users get an AUR package, macOS users get a Homebrew cask, and everyone else downloads a build from the releases page. The AUR command is:

```bash
yay -S mcp-linker-bin
```

The Homebrew route is a cask, not a formula:

```bash
brew install --cask milisp/mcp-linker/mcp-linker
```

On Windows, Linux, or macOS without Homebrew, the README points at the latest releases page and does not list a package manager command. Once the app is open, the documented flow is four steps: browse servers in the built-in marketplace, click Get to reveal the configuration, click Add to install it into the selected client, then start using the server. The README notes that if you have a subscription, you should relaunch the app after logging in the first time.

If you want to point the marketplace at a different registry, .env.example shows the only knob:

```bash
VITE_REGISTRY_BASE_URL=https://registry.modelcontextprotocol.io
```

That variable is a build-time Vite value, so changing it means rebuilding the frontend rather than editing a settings panel at runtime. The README does not describe a runtime setting for the registry URL.

## MCP Linker writes configuration; it does not run your servers

The most common misreading of a tool like this is to expect it to start, stop and monitor MCP servers. Nothing in the README supports that. The features list is about discovery, installation and sync of configuration across clients. If a server fails to start after MCP Linker adds it, the failure lives in the client, the interpreter path, or the server package, and MCP Linker is not the layer that will tell you. The README's own troubleshooting pointer goes to the project Wiki rather than to a built-in log viewer.

That distinction decides whether the tool is right for you. If your problem is "I have five clients and adding a server is tedious", MCP Linker addresses it. If your problem is "my MCP servers crash and I need to know why", this is the wrong tool. The README also does not document rollback, so if a sync writes a config you did not want, the documented path back is not stated. Back up the client config files before the first sync.

## Compared with editing client config files by hand

The realistic alternative is not another app. It is a dotfiles repository plus a small script that copies one canonical JSON fragment into each client's config path. That approach has real advantages: the canonical source lives in version control, diffs are reviewable, and the script does exactly one thing you wrote yourself. Its cost is that client config formats change, and you own every format difference across Claude Desktop, Claude Code, Cursor, VS Code, Cline, Windsurf, Codex and Roo Code. MCP Linker absorbs that per-client knowledge, which is the actual work.

A second alternative is the official MCP registry website alone. It gives you the same discovery surface without a desktop app, but it stops at showing you an entry. It does not know where your Cursor config lives. MCP Linker's value sits entirely in the gap between "here is a server" and "here is that server written into the right file for each client you use".

## Licence, upgrade cost, and what the dual licence means for shipping

The README states MCP Linker is dual-licensed under AGPL-3.0 and a commercial licence, and package.json repeats that as "AGPL-3.0, Commercial". The README's own wording is that AGPL-3.0 covers open-source use, while a commercial licence is "required for closed-source, proprietary, hosted, or SaaS use". That is a narrower grant than a permissive licence, and it is the first thing to check if MCP Linker would sit inside a product you distribute or host. This is a description of the project's stated terms, not legal advice; the LICENSE file is the authority.

Upgrade cost looks low for users, since installs come from Homebrew, AUR or release downloads. The release history shows v2.2.3 on 2026-08-17, v2.2.2 on 2026-05-17 and v2.2.0 on 2026-05-01, so point releases arrive on the order of months rather than weeks. The last push to main was on 2026-09-09. The README points contributors at CONTRIBUTING.md for build commands and does not document a migration path for configs written by older versions.

## What to check before you let MCP Linker touch your client configs

Start by reading docs/clients.md, which the README links as the detail page for supported clients. It is the document that should tell you which config file each client uses. Confirm that list matches the clients you actually have installed, because a client outside it gets no benefit.

Then decide what "sync" should mean for you. The README does not state whether adding a server to a second client merges with that client's existing entries or replaces the file. Test on one client first, with a copy of its config saved elsewhere. If the result is not what you expected, you have lost nothing.

Finally, check whether the part you want is the marketplace or the Codex GUI. The README lists "GUI for OpenAI Codex CLI" as a feature based on milisp/codexia, which is a separate project. If Codex is your only client, codexia may be the smaller dependency.

## Conclusion

Adopt MCP Linker if you run three or more MCP-capable clients on one machine and are tired of hand-editing each client's JSON. Do not adopt it if you need a runtime that keeps servers alive, or if you cannot accept AGPL-3.0 in a proprietary or hosted product. Before trusting it with your config, verify which client config paths it writes to, whether it merges or overwrites existing entries, and whether the GUI for the OpenAI Codex CLI is the part you actually need.

## FAQ

### What is MCP Linker used for?

It browses the official MCP registry and adds MCP server configurations into multiple AI clients, then syncs those configurations locally across them. The README frames it as one-click add and sync across clients, with no LLM calls needed.

### What does an MCP connector do, and is MCP Linker one?

MCP Linker is not a connector that talks to servers at runtime. It writes the configuration that tells a client which MCP server to connect to, and the README describes it as a manager for servers and clients rather than a runtime.

### Is MCP the same as HTTP?

The README does not compare MCP to HTTP. It describes MCP as Model Context Protocol, "like USB-C for AI", a standard way to connect AI models to data sources and tools, which is a different layer from a transport protocol.

### What is an MCP plugin?

The README does not define MCP plugins. It refers to MCP servers, which are the entries MCP Linker browses in the registry and installs into a client as configuration.

## Sources

- [License: AGPL-3.0](https://github.com/milisp/mcp-linker/blob/main/LICENSE)
- [milisp/mcp-linker on GitHub](https://github.com/milisp/mcp-linker)
- [Project website](https://mcp-linker.milisp.dev)
- [README](https://github.com/milisp/mcp-linker/blob/main/README.md)
- [Releases](https://github.com/milisp/mcp-linker/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/milisp-mcp-linker
