{"_id":"@anushkrishnav/mcpsync","_rev":"5-2c636d9526717b4a126265d02b395bcb","name":"@anushkrishnav/mcpsync","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@anushkrishnav/mcpsync","version":"0.1.0","keywords":["mcp","model-context-protocol","claude","cursor","vscode","windsurf","gemini","copilot","codex","ai","sync","cli"],"author":{"name":"anushkrishnav"},"license":"MIT","_id":"@anushkrishnav/mcpsync@0.1.0","maintainers":[{"name":"anushkrishnav","email":"anush.venkatakrishna@gmail.com"}],"homepage":"https://github.com/anush-data-portfolio/MCPSync#readme","bugs":{"url":"https://github.com/anush-data-portfolio/MCPSync/issues"},"bin":{"mcpsync":"bin/mcpsync.js"},"dist":{"shasum":"aac2960216c3504f081c7ae065d11e4aa2b0e3b5","tarball":"https://registry.npmjs.org/@anushkrishnav/mcpsync/-/mcpsync-0.1.0.tgz","fileCount":5,"integrity":"sha512-2Etmrj5vjcekCNKxMbwGgGcQxQbJ7qCx6Aw9XGJF9/CfPCI3SEsDbMVesR3ttIMArvC5rOkwuqRKiSnsw/+d5A==","signatures":[{"sig":"MEYCIQCQzSSviU4gQedcF25VLd/eq4dYudH1HdzLiLSVQcPt9AIhANf1h35JTSarwhktzwBmENmutmYwR0GLbrQLtBgvd1SB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19149},"main":"bin/mcpsync.js","engines":{"node":">=18"},"gitHead":"e9a5b0aa08d4d954630c852d19bddcfe579b9fe9","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"anushkrishnav","email":"anush.venkatakrishna@gmail.com"},"repository":{"url":"git+https://github.com/anush-data-portfolio/MCPSync.git","type":"git"},"_npmVersion":"10.9.7","description":"Sync MCP server configurations across all your AI coding agents","directories":{"doc":"docs"},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcpsync_0.1.0_1778903651674_0.6520953052352378","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@anushkrishnav/mcpsync","version":"0.1.1","keywords":["mcp","model-context-protocol","claude","cursor","vscode","windsurf","gemini","copilot","codex","ai","sync","cli"],"author":{"name":"anushkrishnav"},"license":"MIT","_id":"@anushkrishnav/mcpsync@0.1.1","maintainers":[{"name":"anushkrishnav","email":"anush.venkatakrishna@gmail.com"}],"homepage":"https://github.com/anush-data-portfolio/MCPSync#readme","bugs":{"url":"https://github.com/anush-data-portfolio/MCPSync/issues"},"bin":{"mcpsync":"bin/mcpsync.js"},"dist":{"shasum":"ecff36d164055cc39d5e117bdd25498beeb64eaf","tarball":"https://registry.npmjs.org/@anushkrishnav/mcpsync/-/mcpsync-0.1.1.tgz","fileCount":5,"integrity":"sha512-oe84iTGaJjgdybleawh1eet0bI8lFka0H8MlDyrNhiCLuAJ32mLQtdmpV8PwlH8YMddiyWeXr6ZmRrEdeNHugA==","signatures":[{"sig":"MEUCIFXxj2gfk3TPP3w3Ayl3HO3pLUsWWQYtq9iARjcekXHvAiEAudRaYu+p5mXLnJofzooKP3Ju1olbpJAuoSQF/3F/YG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21401},"main":"bin/mcpsync.js","engines":{"node":">=18"},"gitHead":"743c73ac8513a893777246b00e704fc164d72232","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"anushkrishnav","email":"anush.venkatakrishna@gmail.com"},"repository":{"url":"git+https://github.com/anush-data-portfolio/MCPSync.git","type":"git"},"_npmVersion":"10.8.2","description":"Sync MCP server configurations across all your AI coding agents","directories":{"doc":"docs"},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcpsync_0.1.1_1778908648518_0.5615794009952926","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@anushkrishnav/mcpsync","version":"0.1.2","keywords":["mcp","model-context-protocol","claude","cursor","vscode","windsurf","gemini","copilot","codex","ai","sync","cli"],"author":{"name":"anushkrishnav"},"license":"MIT","_id":"@anushkrishnav/mcpsync@0.1.2","maintainers":[{"name":"anushkrishnav","email":"anush.venkatakrishna@gmail.com"}],"homepage":"https://github.com/anush-data-portfolio/MCPSync#readme","bugs":{"url":"https://github.com/anush-data-portfolio/MCPSync/issues"},"bin":{"mcpsync":"bin/mcpsync.js"},"dist":{"shasum":"c584a24fa1a95ee255ade312ffa0a914220480e7","tarball":"https://registry.npmjs.org/@anushkrishnav/mcpsync/-/mcpsync-0.1.2.tgz","fileCount":5,"integrity":"sha512-wYgbPn+6s6s4QD/9+DCZVRLOHp7g07lceaEErm55Vjg1DXlnDL63cP3janoTCyqWPE7NFQBAthj+4DBxl8DK1g==","signatures":[{"sig":"MEUCIHqCzw9P8RsdfEmTjnclucuUUT9HIZLrn7ybA/vbX2hTAiEAhVe3wMkrAOGK0cYEvXgjerxbivDMuH8yicukDsGhVP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21401},"main":"bin/mcpsync.js","engines":{"node":">=18"},"gitHead":"53d3754dcd22901bc4a403f3e254cee4a8b161dc","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"anushkrishnav","email":"anush.venkatakrishna@gmail.com"},"repository":{"url":"git+https://github.com/anush-data-portfolio/MCPSync.git","type":"git"},"_npmVersion":"10.8.2","description":"Sync MCP server configurations across all your AI coding agents","directories":{"doc":"docs"},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcpsync_0.1.2_1778909030076_0.6616848805033477","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@anushkrishnav/mcpsync","version":"0.1.3","keywords":["mcp","model-context-protocol","claude","cursor","vscode","windsurf","gemini","copilot","codex","ai","sync","cli"],"author":{"name":"anushkrishnav"},"license":"MIT","_id":"@anushkrishnav/mcpsync@0.1.3","maintainers":[{"name":"anushkrishnav","email":"anush.venkatakrishna@gmail.com"}],"homepage":"https://github.com/anush-data-portfolio/MCPSync#readme","bugs":{"url":"https://github.com/anush-data-portfolio/MCPSync/issues"},"bin":{"mcpsync":"bin/mcpsync.js"},"dist":{"shasum":"ffb1bd82ba2369699320c0073b1198fe3bd31d27","tarball":"https://registry.npmjs.org/@anushkrishnav/mcpsync/-/mcpsync-0.1.3.tgz","fileCount":5,"integrity":"sha512-hawTsNYi6QiNTu/BG6Oc7L1tuAFBd1PyDqh3uRySKkJjncnkEpw4HppIU5hZ8ApMIBAQsGt6WVMpuR756/IU7w==","signatures":[{"sig":"MEUCIDzSYrnKrFD9+IjyozuTiUP1IgyQpa29aw2qqjCjNtLBAiEA7J1Fxpd3xdnxJDFCHBr+/CGNw2B/ctuUeh8EvmT1ROU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21750},"main":"bin/mcpsync.js","engines":{"node":">=18"},"gitHead":"6c6e9b88b1958cc1adeebbf51ccafb0754e46af0","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"anushkrishnav","email":"anush.venkatakrishna@gmail.com"},"repository":{"url":"git+https://github.com/anush-data-portfolio/MCPSync.git","type":"git"},"_npmVersion":"10.8.2","description":"Sync MCP server configurations across all your AI coding agents","directories":{"doc":"docs"},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcpsync_0.1.3_1778912054137_0.6342221244397301","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@anushkrishnav/mcpsync","version":"0.1.4","description":"Sync MCP server configurations across all your AI coding agents","license":"MIT","bin":{"mcpsync":"bin/mcpsync.js"},"scripts":{"postinstall":"node scripts/postinstall.js"},"engines":{"node":">=18"},"keywords":["mcp","model-context-protocol","claude","cursor","vscode","windsurf","gemini","copilot","codex","ai","sync","cli"],"repository":{"type":"git","url":"git+https://github.com/anush-data-portfolio/MCPSync.git"},"bugs":{"url":"https://github.com/anush-data-portfolio/MCPSync/issues"},"homepage":"https://github.com/anush-data-portfolio/MCPSync#readme","main":"bin/mcpsync.js","directories":{"doc":"docs"},"author":{"name":"anushkrishnav"},"_id":"@anushkrishnav/mcpsync@0.1.4","gitHead":"43ea9487dfb08e7cdbc3368b6a7abcf5026ff8d2","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-2I5WC8Qxt4zYPTv579OIyV3aP3sFHwGSX+x3zIEc7GtqVLeQPF8y04Aj/myffCQb0n6BkyXDKvdGny4vqezhbQ==","shasum":"547c9df18c853eb407d5038bb87f1b34559f5532","tarball":"https://registry.npmjs.org/@anushkrishnav/mcpsync/-/mcpsync-0.1.4.tgz","fileCount":5,"unpackedSize":21714,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID7FZNonhhKGDWc5qhy/qZF88nuC3pcULGI8bpGHveP6AiBS6ot8V+YGcvsKtv6jd2gxI6hi8sesGKfnij6mVkjGLQ=="}]},"_npmUser":{"name":"anushkrishnav","email":"anush.venkatakrishna@gmail.com"},"maintainers":[{"name":"anushkrishnav","email":"anush.venkatakrishna@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcpsync_0.1.4_1778971001220_0.30721980436331364"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-16T03:54:11.547Z","modified":"2026-05-16T22:36:41.487Z","0.1.0":"2026-05-16T03:54:11.809Z","0.1.1":"2026-05-16T05:17:28.705Z","0.1.2":"2026-05-16T05:23:50.225Z","0.1.3":"2026-05-16T06:14:14.292Z","0.1.4":"2026-05-16T22:36:41.367Z"},"bugs":{"url":"https://github.com/anush-data-portfolio/MCPSync/issues"},"author":{"name":"anushkrishnav"},"license":"MIT","homepage":"https://github.com/anush-data-portfolio/MCPSync#readme","keywords":["mcp","model-context-protocol","claude","cursor","vscode","windsurf","gemini","copilot","codex","ai","sync","cli"],"repository":{"type":"git","url":"git+https://github.com/anush-data-portfolio/MCPSync.git"},"description":"Sync MCP server configurations across all your AI coding agents","maintainers":[{"name":"anushkrishnav","email":"anush.venkatakrishna@gmail.com"}],"readme":"# MCPSync\n\n[![CI](https://github.com/anush-data-portfolio/MCPSync/actions/workflows/ci.yml/badge.svg)](https://github.com/anush-data-portfolio/MCPSync/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/anush-data-portfolio/MCPSync/branch/main/graph/badge.svg)](https://codecov.io/gh/anush-data-portfolio/MCPSync)\n[![Go Version](https://img.shields.io/github/go-mod/go-version/anush-data-portfolio/MCPSync)](https://go.dev/)\n[![Release](https://img.shields.io/github/v/release/anush-data-portfolio/MCPSync)](https://github.com/anush-data-portfolio/MCPSync/releases)\n[![npm](https://img.shields.io/npm/v/@anushkrishnav/mcpsync?logo=npm)](https://www.npmjs.com/package/@anushkrishnav/mcpsync)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Semgrep](https://img.shields.io/badge/security-semgrep-brightgreen?logo=semgrep)](https://semgrep.dev)\n\n**One command to sync MCP server configs across all your AI coding agents.**\n\nIf you use multiple AI agents — Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Gemini CLI, Copilot, Codex, Zed, and more — you know the pain: you add an MCP server to one agent and forget all the others. MCPSync fixes that.\n\n```bash\nmcpsync now\n```\n\nMCPSync reads every agent's config, merges the MCP servers into one unique list, and writes back to all of them. One command. Done.\n\n---\n\n> **Open source** — contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md).\n> Found an agent we don't support? [Open an agent request →](https://github.com/anush-data-portfolio/MCPSync/issues/new?template=agent-request.yml)\n\n---\n\n## Quick Start\n\nPick the option that matches your setup — **no runtime required** once installed.\n\n### Option 1 — npm (no Go needed)\n\n```bash\nnpm install -g @anushkrishnav/mcpsync\nmcpsync now\n```\n\nOr with npx (no install at all):\n```bash\nnpx @anushkrishnav/mcpsync list\n```\n\n> The npm package downloads the correct pre-built binary for your platform automatically.\n> Requires Node.js 18+. No Go installation needed.\n\n### Option 2 — Go install\n\n```bash\ngo install github.com/anush-data-portfolio/MCPSync/mcpsync@latest\n```\n\n> **Note:** Go installs the binary as `mcpsync`.\n> Make sure `$(go env GOPATH)/bin` is in your PATH, then run:\n> ```bash\n> mcpsync now\n> ```\n\n### Option 3 — Download a pre-built binary\n\nDownload from [Releases](https://github.com/anush-data-portfolio/MCPSync/releases), make executable, and move to your PATH:\n\n```bash\n# macOS (Apple Silicon)\ncurl -Lo mcpsync https://github.com/anush-data-portfolio/MCPSync/releases/latest/download/mcpsync-darwin-arm64\nchmod +x mcpsync && sudo mv mcpsync /usr/local/bin/\n\n# macOS (Intel)\ncurl -Lo mcpsync https://github.com/anush-data-portfolio/MCPSync/releases/latest/download/mcpsync-darwin-amd64\nchmod +x mcpsync && sudo mv mcpsync /usr/local/bin/\n\n# Linux (x86_64)\ncurl -Lo mcpsync https://github.com/anush-data-portfolio/MCPSync/releases/latest/download/mcpsync-linux-amd64\nchmod +x mcpsync && sudo mv mcpsync /usr/local/bin/\n```\n\n### Option 4 — Build from source\n\n```bash\ngit clone https://github.com/anush-data-portfolio/MCPSync\ncd mcpsync\ngo build -o mcpsync .\nsudo mv mcpsync /usr/local/bin/\nmcpsync now\n```\n\n**Requirements:** Go 1.21+ (for building only — the binary runs without Go)\n\n---\n\n## Commands\n\n### `mcpsync now`\n\nAuto-discover all agents, merge MCP servers, write back to all.\n\n```bash\nmcpsync now                  # Interactive: select agents, preview, confirm, sync\nmcpsync now --no-maintain    # Skip .old.json backups\nmcpsync now -p output.json   # Also save merged config to a file\n```\n\n**Flow:**\n1. Detects all agent configs on your machine\n2. Shows a multi-select so you can choose which agents to include\n3. Merges all selected servers into a single deduplicated list\n4. Shows a preview — server names, types, and commands/URLs\n5. Asks for confirmation, then writes to every selected agent\n6. Backs up every modified file as `filename.old.json` (on by default)\n\n### `mcpsync get`\n\nShow the current merged MCP server list. Colored table on a terminal; clean JSON when piped.\n\n```bash\nmcpsync get               # colored table in the terminal\nmcpsync get raw           # syntax-highlighted JSON in the terminal\nmcpsync get > merged.json # plain JSON (pipe auto-detected)\nmcpsync get | pbcopy      # plain JSON to clipboard (macOS)\n```\n\n**Terminal table view** (`mcpsync get`):\n```\n  MCP Servers (6)\n\n  kaggle-mcp              http    https://www.kaggle.com/mcp           [headers]\n  magicuidesign-mcp       stdio   npx  -y @magicuidesign/mcp@latest\n  playwright              stdio   npx  -y @playwright/mcp@latest\n  shadcn                  stdio   npx  shadcn@latest mcp\n  sqlite                  stdio   npx  -y mcp-sqlite\n  task-manager            stdio   task-manager\n```\nColors: server names in **cyan**, `stdio` in green, `http`/`sse` in blue, commands in yellow, `[headers]`/`[env]` badges in magenta.\n\n**Syntax-highlighted JSON** (`mcpsync get raw`):\n```json\n{\n  \"mcpServers\": {\n    \"kaggle-mcp\": {\n      \"headers\": { \"Authorization\": \"Bearer ...\" },\n      \"type\": \"http\",\n      \"url\": \"https://www.kaggle.com/mcp\"\n    },\n    \"playwright\": {\n      \"args\": [\"-y\", \"@playwright/mcp@latest\"],\n      \"command\": \"npx\",\n      \"type\": \"stdio\"\n    }\n  }\n}\n```\nColors: `\"mcpServers\"` in bold, server name keys in **cyan**, field keys (`\"type\"`, `\"command\"`, `\"args\"`, `\"url\"`, `\"headers\"`) in yellow, nested keys in magenta. Values are uncolored so the output stays readable at a glance.\n\nConflicts and warnings go to stderr, so piped output is always clean JSON.\n\n### `mcpsync list`\n\nShow all supported agents and whether their configs were found.\n\n```\n  ✓  Claude Desktop          ~/Library/…/claude_desktop_config.json    3 servers\n  ✓  Claude Code             ~/.claude.json                             2 servers\n  ✓  GitHub Copilot CLI      ~/.copilot/mcp-config.json                2 servers\n  ✗  Cursor                  ~/.cursor/mcp.json                        [not found]\n  ✗  VS Code                 ~/.vscode/mcp.json                        [not found]\n  ...\n```\nColors: detected agents (✓) in green, missing agents (✗) dimmed, server counts in cyan.\n\n### `mcpsync add --path <file>`\n\nRegister a custom agent config that MCPSync didn't auto-detect.\n\n```bash\nmcpsync add --path ~/my-custom-agent/mcp.json\nmcpsync add --path ~/my-custom-agent/mcp.json --name \"My Agent\"\n```\n\nMCPSync saves it to `~/.mcpsync/config.json` and includes it in future syncs.\n\n---\n\n## Supported Agents\n\nMCPSync currently supports **12 agents** out of the box. If yours isn't listed, [request it](https://github.com/anush-data-portfolio/MCPSync/issues/new?template=agent-request.yml) or add it yourself — it's usually ~10 lines of Go.\n\n### Claude (Anthropic)\n\n| Variant | Config File | Notes |\n|---------|-------------|-------|\n| **Claude Desktop** | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) | The Anthropic desktop app. Windows: `%APPDATA%\\Claude\\claude_desktop_config.json` |\n| **Claude Code** | `~/.claude.json` | The Claude CLI for coding. Stores MCP per-project; MCPSync reads from all projects and writes back to all. |\n\n### AI Coding Agents / IDEs\n\n| Agent | Config File | Key | Notes |\n|-------|-------------|-----|-------|\n| **Cursor** | `~/.cursor/mcp.json` | `mcpServers` | |\n| **VS Code** | `~/.vscode/mcp.json` | `mcpServers` | Requires VS Code 1.99+ with MCP support |\n| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | `mcpServers` | |\n| **Zed** | `~/.config/zed/settings.json` | `context_servers` | Different schema; stdio only (http/sse servers skipped with a warning) |\n| **Continue** | `~/.continue/config.json` | `mcpServers` | |\n| **Junie** | `~/.junie/mcp/mcp.json` | `mcpServers` | JetBrains AI assistant |\n\n### AI CLI Tools\n\n| Agent | Config File | Key | Notes |\n|-------|-------------|-----|-------|\n| **Gemini CLI** | `~/.gemini/settings.json` | `mcpServers` | Google's Gemini CLI |\n| **OpenAI Codex CLI** | `~/.codex/config.json` | `mcpServers` | OpenAI's open-source CLI |\n| **GitHub Copilot CLI** | `~/.copilot/mcp-config.json` | `mcpServers` | Uses `type: \"local\"` instead of `\"stdio\"` — MCPSync normalizes automatically |\n| **GitHub Copilot (VS Code)** | `~/.config/github-copilot/mcp.json` | `servers` | Different key name — MCPSync handles it |\n\n### Don't see your agent?\n\n- **Use `mcpsync add --path`** to register any custom config file right now\n- **[Open an agent request issue](https://github.com/anush-data-portfolio/MCPSync/issues/new?template=agent-request.yml)** — include the config file path and a sample snippet if you have one\n- **[Submit a PR](CONTRIBUTING.md)** — adding a new agent is usually ~10 lines of Go\n\n---\n\n## How It Works\n\n```\nRead  ──→  Normalize  ──→  Merge  ──→  Denormalize  ──→  Write\n```\n\n1. **Read** — each agent adapter reads its config file and normalizes servers to a common `NormalizedServer` struct (type, command, args, env, url, headers)\n2. **Merge** — servers are deduplicated by name; when two agents have the same server name with different configs, the higher-priority agent wins (see priority order below)\n3. **Write** — each adapter converts the merged list back into the agent's native format and writes it atomically (write to `.tmp` → rename)\n4. **Backup** — before any write, the original is copied to `filename.old.json`\n\n### Conflict resolution\n\nIf two agents have the same server name with different configurations, MCPSync pauses and shows you both versions side-by-side, then asks how to resolve it:\n\n```\n  ──────────────────────────────────────────────────────────────\n  Conflict 1 of 1: \"playwright\"\n  ──────────────────────────────────────────────────────────────\n\n  [A]  Claude Desktop       (higher priority)\n       type:      stdio\n       command:   npx\n       args:      @playwright/mcp@latest\n\n  [B]  GitHub Copilot CLI   (lower priority)\n       type:      stdio\n       command:   npx\n       args:      @playwright/mcp@latest\n       extras:    tools\n\n  ──────────────────────────────────────────────────────────────\n  Conflict [1/1] — resolve \"playwright\":\n  > Keep    \"playwright\" from Claude Desktop       stdio  npx @playwright/mcp@latest\n    Use     \"playwright\" from GitHub Copilot CLI   stdio  npx @playwright/mcp@latest\n    Rename  GitHub Copilot CLI's version and keep both\n    Exclude \"playwright\" from this sync\n    Delete  \"playwright\" from all agents\n```\n\n**Resolution options:**\n\n| Option | What happens |\n|--------|-------------|\n| **Keep** | Use the higher-priority agent's version (A) |\n| **Use other** | Replace with the lower-priority agent's version (B) |\n| **Rename** | Keep A as-is, add B under a new name you provide — you get both |\n| **Exclude** | Skip this server; it won't be written to any agent this sync |\n| **Delete** | Remove from the merged list; effectively deleted from all synced agents |\n\nPriority order (determines which version is [A]): Claude Desktop → Claude Code → Cursor → VS Code → Windsurf → Gemini → Copilot CLI → Copilot VS Code → Continue → Junie → Zed → Codex\n\n### Schema normalization\n\nDifferent agents use different type names and keys — MCPSync handles it transparently:\n\n| Agent | Their format | MCPSync normalizes to |\n|-------|--------------|-----------------------|\n| GitHub Copilot CLI | `type: \"local\"` | `type: \"stdio\"` internally, written back as `\"local\"` |\n| GitHub Copilot VS Code | key: `\"servers\"` | read/written as `\"servers\"`, stored as `NormalizedServer` |\n| Zed | key: `\"context_servers\"`, nested `command.path` | transforms on read/write; skips http/sse |\n\n### Claude Code project syncing\n\nClaude Code stores MCP servers per-project inside `~/.claude.json`. MCPSync:\n- **Reads** from all projects (takes the union of all unique server names)\n- **Writes** the merged list back to all existing project entries\n\nThis means all your Claude Code projects get the same MCP server set after syncing.\n\n---\n\n## Flags\n\n| Flag | Default | Description |\n|------|---------|-------------|\n| `--maintain` | `true` | Back up original files as `.old.json` before writing |\n| `--no-maintain` | — | Skip backups |\n| `-p`, `--path <file>` | — | (`now` only) Also write merged JSON to this file |\n\nUse `mcpsync get raw` to show syntax-highlighted JSON in the terminal.\n\n---\n\n## Citing this project\n\nIf you use MCPSync in research or reference it in a project, please cite it.\nGitHub shows a **\"Cite this repository\"** button in the sidebar (powered by [`CITATION.cff`](CITATION.cff)).\n\n**BibTeX:**\n```bibtex\n@software{mcpsync2026,\n  author  = {anushkrishnav},\n  title   = {{MCPSync}: Sync MCP Server Configurations Across AI Coding Agents},\n  year    = {2026},\n  version = {0.1.4},\n  url     = {https://github.com/anush-data-portfolio/MCPSync},\n  license = {MIT}\n}\n```\n\n**APA:**\n```\nanushkrishnav. (2026). MCPSync (Version 0.1.4) [Computer software].\nhttps://github.com/anush-data-portfolio/MCPSync\n```\n\nMore formats (MLA, Chicago, IEEE, plain text): [`docs/citation.md`](docs/citation.md)\n\n---\n\n## License\n\n[MIT](LICENSE) — free to use, modify, and distribute.\n\n---\n\n## Contributing\n\nMCPSync is open source and community-driven. See [CONTRIBUTING.md](CONTRIBUTING.md).\n\n- **Add an agent** — ~10 lines of Go, see the contributing guide\n- **Report a bug** — [open a bug report](https://github.com/anush-data-portfolio/MCPSync/issues/new?template=bug_report.yml)\n- **Request an agent** — [open an agent request](https://github.com/anush-data-portfolio/MCPSync/issues/new?template=agent-request.yml)\n- **General ideas** — [open a discussion](https://github.com/anush-data-portfolio/MCPSync/discussions)\n","readmeFilename":"README.md"}