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
MCPizer
Enables AI assistants to call any REST API or gRPC service by automatically converting their schemas into MCP tools.
UML-MCP-Server
Generate various UML diagrams from natural language or PlantUML code. Returns PlantUML code, image URLs, and saves diagrams locally.
Hyperlend
Enables AI agents to interact with the Hyperlend protocol.
MCP Jupyter Complete
A server for Jupyter notebook manipulation with position-based operations and VS Code integration.
PentestGPT-MCP
An advanced penetration testing tool for automated, LLM-driven security assessments using tools like nmap and dirb.
Context7 Python
A Python server for searching libraries and retrieving documentation, with support for HTTP/HTTPS proxies.
Context Portal MCP (ConPort)
A server for managing structured project context using SQLite, with support for vector embeddings for semantic search and Retrieval Augmented Generation (RAG).
Python Local
An interactive Python REPL environment with persistent session history.
MCP VSCode Cline
A guide for using the Cline VSCode extension to interact with Model Context Protocol (MCP) servers.
NetMind ParsePro
Parses PDF files from a URL into structured formats like JSON and Markdown.