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-existing
avoid 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=value
pairs (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.json
mcp-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.json
in 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
Claude Code Bridge
A bridge server connecting Claude Desktop with the Claude Code agent API.
JS Development MCP Server
A server for JavaScript/TypeScript development with intelligent project tooling and testing capabilities.
Feature Discussion
An AI-powered server that facilitates feature discussions between developers and AI, acting as a lead developer to guide implementation and architectural decisions.
FileScopeMCP
Analyzes your codebase identifying important files based on dependency relationships. Generates diagrams and importance scores per file, helping AI assistants understand the codebase. Automatically parses popular programming languages, Python, Lua, C, C++, Rust, Zig.
DiffuGen
Generate images from text using Flux and Stable Diffusion models.
System Diagnostics
An MCP server for system diagnostics and monitoring on Ubuntu using common command-line tools.
MCP Chain
A composable middleware framework for building sophisticated MCP server chains, inspired by Ruby Rack.
MCP Proxy
A bidirectional MCP proxy connecting stdio and Server-Sent Events (SSE) with OAuth support.
Jenkins MCP Server
Integrates with Jenkins CI/CD systems for AI-powered insights, build management, and debugging.
Bash MCP Server
Execute bash commands on the host machine.