AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Mcp Sync

mcp-vrillabs-mcp-sync Β· by VrilLabs

πŸ› οΈ Simple, lightweight and effective automatic MCP syncing tool. Adds a single source of truth for MCP tools and actively syncs them across common directories. Bidirectional sync supporting 6 IDEs: Windsurf, VSCode, Cursor, Zed, Claude Code, and OpenCode.

β€” No reviews yet
0 installs
37 views
0.0% view→install

Install

$ agentstack add mcp-vrillabs-mcp-sync

βœ“ scanned Β· βœ“ verified, works with Claude Code, Cursor, and more.

Security review

βœ“ Passed

No issues found. Passed automated security review. Β· v0.1.0 How review works β†’

  • βœ“ Prompt-injection patterns
  • βœ“ Secret / credential exfiltration
  • βœ“ Dangerous shell & filesystem operations
  • βœ“ Untrusted network calls
  • βœ“ Known-malicious package signatures

What it can access

  • βœ“ Network access No
  • βœ“ Filesystem access No
  • βœ“ Shell / process execution No
  • βœ“ Environment & secrets No
  • βœ“ Dynamic code execution No

From automated source analysis of v0.1.0. β€œUsed” means the capability is present in the source β€” more access means more to trust, not that it’s unsafe.

View the full security report β†’

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-vrillabs-mcp-sync)

Reliability & compatibility

βœ“ Security review passed
0 installs to date
β€” no reviews yet
● 3mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work β†’
Are you the author of Mcp Sync? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

mcp-sync

> Zero-polling MCP config sync for macOS β€” keeps all your IDEs' MCP server configs perfectly in sync. > Uses Apple's native FSEvents API via fswatch for instant, battery-friendly file watching.

Supported IDEs: Windsurf Β· VSCode Β· Cursor Β· Zed Β· Claude Code Β· OpenCode


What it does

~/.config/mcp-servers.json             ← canonical (single source of truth)
           β”‚
           β”‚  fswatch (FSEvents, zero-poll, bidirectional)
           β”‚
           β”œβ”€β”€β–Ί ~/.codeium/windsurf/mcp_config.json       (Windsurf)
           β”œβ”€β”€β–Ί ~/Library/Application Support/Code/User/mcp.json  (VSCode)
           β”œβ”€β”€β–Ί ~/.cursor/mcp.json                        (Cursor)
           β”œβ”€β”€β–Ί ~/.config/zed/settings.json               (Zed)
           β”œβ”€β”€β–Ί ~/.claude.json                            (Claude Code)
           └──► ~/.config/opencode/opencode.json          (OpenCode)

Bidirectional sync: Edit your MCP config in any IDE β€” the change propagates instantly to all others via the canonical file. Each IDE gets its native format automatically:

| IDE | Format | |-----|--------| | Windsurf | {"mcpServers": {...}} | | VSCode | {"servers": {...}} with type field | | Cursor | {"mcpServers": {...}} | | Zed | {"context_servers": {...}} with source: "custom" | | Claude Code | {"mcpServers": {...}} merged into existing ~/.claude.json | | OpenCode | {"mcpServers": {...}} |


Requirements

  • macOS (Apple Silicon or Intel)
  • Homebrew
  • At least one IDE with MCP support installed

Install

git clone https://github.com/VrilLabs/mcp-sync.git
cd mcp-sync
chmod +x install.sh && ./install.sh

The installer will:

  1. brew install fswatch jq (if not present)
  2. Copy scripts to ~/.config/mcp-sync/scripts/
  3. Install the mcp CLI to ~/.local/bin/
  4. Bootstrap ~/.config/mcp-servers.json from your existing IDE config
  5. Register + load the launchd agent (auto-starts on login, watches all IDEs)
  6. Detect installed IDEs and report status

That's it β€” install once, forget forever. The background agent handles everything automatically.

Add to PATH (if prompted)

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc

Uninstall

./uninstall.sh

CLI Reference (mcp)

Sync & Status

| Command | Description | |---------|-------------| | mcp list | List all MCP servers from canonical config | | mcp status | Full sync status (agent, fswatch, all IDEs) | | mcp sync | Manually trigger a sync right now | | mcp diff | Compare canonical vs each IDE target | | mcp paths | Print all config file paths | | mcp logs | Tail last 20 lines of sync log | | mcp logs -n 50 | Tail last N lines |

Server Management

| Command | Description | |---------|-------------| | mcp add [args] | Add a server to canonical and sync to all IDEs | | mcp remove | Remove a server from canonical and sync | | mcp install | Install an MCP server from the registry | | mcp uninstall | Uninstall an MCP server package | | mcp search [query] | Search available MCP servers in registry | | mcp test | Test an MCP server (starts it, checks protocol) |

Diagnostics

| Command | Description | |---------|-------------| | mcp doctor | Validate all IDE MCP configs | | mcp doctor vscode cursor | Validate specific IDEs | | mcp agent start\|stop\|restart\|status | Control the launchd agent |


Examples

# List all configured MCP servers
mcp list

# Check everything is working
mcp status

# Validate all IDE configs are correct
mcp doctor

# Validate just Cursor and Zed
mcp doctor cursor zed

# Search the MCP registry for filesystem servers
mcp search filesystem

# Install a server from the registry
mcp install @modelcontextprotocol/server-filesystem

# Add a custom server manually
mcp add my-server npx -- -y @my/mcp-server

# Add with env vars
mcp add github npx -- -y @modelcontextprotocol/server-github -e GITHUB_TOKEN=ghp_xxx

# Test a server responds to MCP protocol
mcp test my-server

# Remove a server
mcp remove old-server

# Force a manual sync
mcp sync

# Restart the background agent
mcp agent restart

How Sync Works

  1. fswatch monitors all IDE config files using macOS FSEvents (zero CPU, no polling)
  2. When any file changes, sync-mcp.sh fires
  3. A re-entrancy lock prevents sync loops (writes are ignored for 5s)
  4. The changed file updates the canonical ~/.config/mcp-servers.json
  5. Canonical is then projected to all IDE targets in their native format
  6. All writes are atomic (temp file + mv) β€” no partial/corrupt configs
  7. Files are created with 600 permissions (owner-only read/write)

MCP Tool Registry

mcp-sync integrates with mcp-get to provide a curated registry of MCP servers you can install directly from the CLI:

# Browse all available servers
mcp search

# Search for specific functionality
mcp search github
mcp search filesystem

# Install a server (auto-syncs to all IDEs)
mcp install @modelcontextprotocol/server-filesystem

# Uninstall
mcp uninstall @modelcontextprotocol/server-filesystem

No API keys or authentication required β€” the registry is fully open and free.


Doctor Command

The doctor command validates your MCP configs against each IDE's specific requirements:

$ mcp doctor
mcp doctor β€” validating MCP configurations

  windsurf (~/.codeium/windsurf/mcp_config.json)
    βœ“ Valid JSON
    βœ“ Has 'mcpServers' key
    βœ“ filesystem: valid
    βœ“ github: valid

  vscode (~/Library/Application Support/Code/User/mcp.json)
    βœ“ Valid JSON
    βœ“ Has 'servers' key
    βœ“ filesystem: valid

  cursor (~/.cursor/mcp.json)
    βœ“ Valid JSON
    βœ“ Has 'mcpServers' key
    βœ“ filesystem: valid

  zed (~/.config/zed/settings.json)
    βœ“ Valid JSON
    βœ“ Has 'context_servers' key
    βœ“ filesystem: valid

βœ“ All checks passed!

Checks performed per IDE:

  • Valid JSON syntax
  • Correct top-level key (mcpServers, servers, context_servers)
  • VSCode: type field present (stdio/http)
  • Zed: source field present
  • Server entries have command or url
  • args is an array, env is an object
  • File permissions (recommends 600)

launchd Agent

# Check agent is running
mcp agent status

# View live log
tail -f ~/.config/mcp-sync/sync.log

# Restart after changes
mcp agent restart

File Locations

| File | Purpose | |------|---------| | ~/.config/mcp-servers.json | Canonical single source of truth | | ~/.codeium/windsurf/mcp_config.json | Windsurf (watched + synced) | | ~/Library/Application Support/Code/User/mcp.json | VSCode (watched + synced) | | ~/.cursor/mcp.json | Cursor (watched + synced) | | ~/.config/zed/settings.json | Zed (watched + synced) | | ~/.claude.json | Claude Code (watched + synced) | | ~/.config/opencode/opencode.json | OpenCode (watched + synced) | | ~/.config/mcp-sync/scripts/sync-mcp.sh | Core sync script | | ~/.config/mcp-sync/sync.log | Sync activity log | | ~/.config/mcp-sync/sync.err | Error log | | ~/Library/LaunchAgents/com.user.mcp-sync.plist | launchd agent | | ~/.local/bin/mcp | CLI helper |


Security

  • All config files written with 600 permissions (owner read/write only)
  • Atomic writes prevent corruption from partial writes or race conditions
  • Re-entrancy lock prevents infinite sync loops
  • Sensitive env vars (*KEY*, *TOKEN*, *SECRET*) are masked in mcp list output
  • No network calls β€” everything runs locally

Troubleshooting

# Full status check
mcp status

# Validate configs
mcp doctor

# Check for errors
cat ~/.config/mcp-sync/sync.err

# View detailed log
mcp logs -n 50

# Force restart everything
mcp agent restart && mcp sync

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source β€” we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.