Skip to content

strawberry-code/mcp-curator

Repository files navigation

MCP Curator

If you use Claude Code across multiple projects, your MCP server configs are split across up to four files with no central view. This tool fixes that.

~/.claude.json              mcpServers              (global)
~/.claude.json              projects[path].mcpServers (per-project settings)
[project]/.mcp.json         per-project, shared
[project]/.mcp.local.json   per-project, local override (git-ignored)

One sidebar, all four sources merged. Add, edit, delete, move, copy across scopes. ~/.claude.json is backed up before every write. Unknown JSON fields are preserved.

Native macOS app. Tauri v2 shell spawns a Go sidecar over localhost HTTP — the sidecar prints its port to stdout, Tauri reads it, the UI talks to it. The Go binary has zero external dependencies (stdlib net/http). UI is Svelte 5.

About 3.2k lines total: 1.3k Go, 1.7k Svelte/TS, 0.2k Rust.

Build

Go 1.22+, Rust stable, Node 18+.

git clone https://github.com/strawberry-code/mcp-curator.git
cd mcp-curator
npm install
make build-sidecar   # cross-compile Go sidecar for every Tauri target
make tauri-dev       # dev server with HMR
make tauri-build     # production .dmg

Signing and notarization on macOS require a Developer ID Application certificate.

Architecture

Tauri v2 (Rust)
  spawns Go sidecar
    net.Listen(":0") -> stdout: PORT=XXXX
    Tauri reads port, proxies commands over localhost HTTP

Go sidecar (stdlib only)
  domain/         entities, no I/O
  application/    use cases
  infrastructure/ config I/O: ~/.claude.json, .mcp.json, .mcp.local.json
  api/            HTTP handlers, DTOs

License

MIT

About

Native desktop app to manage MCP configurations for Claude Code

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors