mcp-sync
Sync MCP server configurations across various AI coding tools.
mcp-sync
Sync MCP (Model Context Protocol) configurations across AI tools.
Overview
mcp-sync is a command-line tool that helps you manage and synchronize MCP server configurations across different AI coding tools like Claude Desktop, Claude Code, Cline, VS Code extensions, and more.
Features
- Auto-discovery: Automatically finds MCP configs on your system
- Manual registration: Add custom config file locations for future-proofing
- Global & project configs: Supports both user-wide and project-specific servers
- Conflict resolution: Smart merging with project configs taking priority
- Dry-run mode: Preview changes before applying them
- Cross-platform: Works on macOS, Windows, and Linux
Installation
Quick Usage (Recommended)
uvx mcp-sync status
uvx mcp-sync sync --dry-run
Persistent Installation
uv tool install mcp-sync
mcp-sync status
Development Install
git clone <repo-url>
cd mcp-sync
./scripts/setup.sh # Installs dependencies and git hooks automatically
Quick Start
-
Scan for existing configs:
mcp-sync scan -
Check current status:
mcp-sync status -
Add a server to global config:
mcp-sync add-server filesystem # Follow prompts to configure -
Preview sync changes:
mcp-sync diff mcp-sync sync --dry-run -
Sync configurations:
mcp-sync sync
Commands
Discovery & Status
mcp-sync scan- Auto-discover known MCP configsmcp-sync status- Show sync statusmcp-sync diff- Show config differences
Config Location Management
mcp-sync add-location <path> [--name <alias>]- Register custom config filemcp-sync remove-location <path>- Unregister config locationmcp-sync list-locations- Show all registered config paths
Sync Operations
mcp-sync sync- Sync all registered configsmcp-sync sync --dry-run- Preview changes without applyingmcp-sync sync --global-only- Sync only global configsmcp-sync sync --project-only- Sync only project configsmcp-sync sync --location <path>- Sync specific location only
Server Management
mcp-sync add-server <name>- Add MCP server to sync (interactive prompts)mcp-sync add-server <name> --command <cmd> --args <args> --env <vars> --scope <global|project>- Add server with inline parametersmcp-sync remove-server <name>- Remove server from sync (interactive prompts)mcp-sync remove-server <name> --scope <global|project>- Remove server with inline scopemcp-sync list-servers- Show all managed servers
Migration
mcp-sync vacuum- Import MCP servers from discovered configs--auto-resolve <first|last>choose conflict resolution automatically--skip-existingavoid overwriting servers already in global config
Adding Servers: When adding a server, you need to provide:
- Command: The executable to run (e.g.,
python,npx,node) - Arguments: Command-line arguments (comma-separated, optional)
- Environment: Environment variables as
KEY=valuepairs (comma-separated, optional) - Scope: Whether to add to global config (synced everywhere) or project config (this project only)
Interactive example:
mcp-sync add-server filesystem
# Prompts for: scope, command, args, env vars
Automated example:
mcp-sync add-server filesystem --command npx --args "-y,@modelcontextprotocol/server-filesystem,/home/user/docs" --scope global
Project Management
mcp-sync init- Create project.mcp.jsonmcp-sync template- Show template config
Client Management
mcp-sync list-clients- Show all supported clients and their detection statusmcp-sync client-info [client-id]- Show detailed client information and pathsmcp-sync edit-client-definitions- Edit user client definitions to add custom clients
Configuration Hierarchy
mcp-sync uses a three-tier configuration system:
-
Global Config (
~/.mcp-sync/global.json)- Personal development servers
- Synced across all tools
-
Project Config (
.mcp.jsonin project root)- Project-specific servers
- Version controlled with your project
- Takes priority over global config
-
Tool Configs (Auto-discovered locations)
- Claude Desktop, VS Code, Cline, etc.
- Updated by sync operations
Supported Tools
mcp-sync uses a configuration-driven approach to support AI tools and editors. Client definitions are managed through JSON configuration files.
Built-in client support:
- Claude Desktop - Official Claude Desktop application
- Claude Code - Claude CLI for code editing
- Cline - VS Code extension for AI assistance
- Roo - Roo VS Code extension for AI assistance
- VS Code User Settings - VS Code global user settings
- Cursor - Cursor AI code editor
- Continue - Continue VS Code extension
Run mcp-sync list-clients to see which clients are detected on your system, or mcp-sync client-info <client-id> for detailed information about specific clients.
Adding custom clients: Users can add their own client definitions by running mcp-sync edit-client-definitions. This creates ~/.mcp-sync/client_definitions.json where custom client configurations can be added. User definitions take precedence over built-in ones, allowing customization and adding support for new tools without modifying the codebase.
Example Workflow
# 1. Initialize project config
mcp-sync init
# 2. Add project-specific server
mcp-sync add-server database
# Choose "2. Project config"
# Command: python
# Args: /path/to/db-server.py
# Env: DB_URL=postgresql://...
# 3. Add global development server
mcp-sync add-server filesystem
# Choose "1. Global config"
# Command: npx
# Args: -y, @modelcontextprotocol/server-filesystem, /home/user
# 4. Sync to all tools
mcp-sync sync
# 5. Check status
mcp-sync status
Configuration File Format
MCP Server Configuration
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/directory"
]
},
"custom-server": {
"command": "python",
"args": ["/path/to/server.py"],
"env": {
"API_KEY": "your-api-key"
}
}
}
}
Development
Requirements
- Python 3.12+
- uv package manager
Setup
git clone <repo-url>
cd mcp-sync
uv sync
uv pip install -e .
Code Quality
uv run ruff check . # Linting
uv run ruff format . # Formatting
uv run pytest # Tests (when available)
Running Tests
Tests require the package to be on PYTHONPATH. Either install it in editable mode:
uv pip install -e .
uv run pytest
or set PYTHONPATH manually when invoking pytest:
PYTHONPATH=$PWD uv run pytest
License
[License details here]
Contributing
[Contributing guidelines here]
Related Servers
Scout Monitoring MCP
sponsorPut performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
sponsorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
IBM wxflows
Tool platform by IBM to build, test and deploy tools for any data source
llm-mcp
A Ruby gem for integrating Large Language Models (LLMs) via the Model Context Protocol (MCP) into development workflows.
WSL Exec
Execute commands securely in Windows Subsystem for Linux (WSL).
mcp-backpressure
Backpressure and concurrency control middleware for FastMCP. Prevents server overload from LLM tool-call storms with configurable limits and JSON-RPC errors.
MCP Mermaid Server
Generate and analyze Mermaid diagrams.
Firebase MCP Server
You can use the Firebase MCP server to give AI-powered development tools the ability to work with your Firebase projects and your app's codebase.
Memorix
Cross-agent memory bridge with knowledge graph, workspace sync, and auto-memory hooks. Supports Windsurf, Cursor, Claude Code, Codex, and VS Code Copilot.
E2B
Run code in secure sandboxes hosted by E2B
Phabricator
Interacting with Phabricator API
s&box MCP Server
Enables AI assistants to interact with s&box game objects and components via WebSocket communication.