Skip to main content

Detect, validate, and sync MCP server configurations across all your AI tools

Project description

midos-mcp-sync

PyPI version Python License: MIT

Stop editing JSON files. Start building.

Detect, validate, and synchronize MCP server configurations across all your AI tools — Claude Desktop, Cursor, VS Code Copilot, Windsurf, and more.

The Problem

Using 2+ MCP clients? Every new MCP server means manually editing 3-6 separate config files in different locations and formats. Configs drift between machines and teammates. midos-mcp-sync fixes this.

Install

pip install midos-mcp-sync

Quick Start

# 1. Detect all MCP configs on your machine
midos-mcp-sync detect

# 2. Validate a config file
midos-mcp-sync validate

# 3. Preview what sync would change (dry-run by default)
midos-mcp-sync sync

# 4. Apply sync across all clients
midos-mcp-sync sync --apply

Commands

detect — Find all MCP configs

Auto-discovers configs from Claude Desktop, Cursor, VS Code Copilot, Windsurf, and project-level .mcp.json files.

midos-mcp-sync detect
midos-mcp-sync detect --project ./my-project
midos-mcp-sync detect --json

validate — Check config correctness

Validates structure, server entries, transport types, and best practices.

midos-mcp-sync validate
midos-mcp-sync validate path/to/.mcp.json

sync — Synchronize across clients

Merges all detected configs using union strategy. Conflicts resolved by newest-file-wins.

# Preview changes (dry-run, default behavior)
midos-mcp-sync sync
midos-mcp-sync sync --dry-run

# Apply changes
midos-mcp-sync sync --apply

# Output sync plan as JSON
midos-mcp-sync sync --json

diff — Compare two configs

midos-mcp-sync diff config-a.json config-b.json

merge — Combine configs

midos-mcp-sync merge base.json overlay.json
midos-mcp-sync merge base.json overlay.json -o merged.json

init — Create template config

midos-mcp-sync init
midos-mcp-sync init path/to/.mcp.json
midos-mcp-sync init --force  # overwrite existing

export — Export in different formats

midos-mcp-sync export .mcp.json --format json
midos-mcp-sync export .mcp.json --format yaml

list / register — Local config registry

midos-mcp-sync register .mcp.json --name my-project
midos-mcp-sync list

Supported Surfaces

Client Config Location Status
Claude Desktop ~/.config/claude/claude_desktop_config.json Detected
Cursor ~/.cursor/mcp.json Detected
VS Code Copilot .vscode/settings.json (mcp section) Detected
Windsurf ~/.windsurf/mcp.json Detected
Claude Code .mcp.json (project root) Detected
Custom Any .mcp.json via register Supported

How Sync Works

  1. Detect all MCP configs across installed AI clients
  2. Merge servers using union strategy (all servers from all configs)
  3. Resolve conflicts — same server name with different settings: newest file wins
  4. Preview changes in dry-run mode (default)
  5. Apply writes the merged config back to each client's config file

Optional Dependencies

# For YAML export support
pip install midos-mcp-sync[yaml]

YAML export works without pyyaml using a built-in minimal formatter.

Development

git clone https://github.com/midos-community/midos-mcp-sync.git
cd midos-mcp-sync
pip install -e ".[dev]"
pytest

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

midos_mcp_sync-0.1.0.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

midos_mcp_sync-0.1.0-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file midos_mcp_sync-0.1.0.tar.gz.

File metadata

  • Download URL: midos_mcp_sync-0.1.0.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for midos_mcp_sync-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0087b937a338a3eb75a57bc16fb85bee6f503b9d2cac8897d758f641619aed7d
MD5 f627521d4c12074e2a1f0afb6d6ff808
BLAKE2b-256 d16269c3ec5163e3090105a164fa735015bd55ce7e742a1d59fd0d8d0122e69a

See more details on using hashes here.

Provenance

The following attestation bundles were made for midos_mcp_sync-0.1.0.tar.gz:

Publisher: pypi-publish.yml on MidOSresearch/MidOS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file midos_mcp_sync-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: midos_mcp_sync-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for midos_mcp_sync-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a696c1fd8cd0b4509f43190a667bdefbb31e20f53700d3fbb1fa2154cab2b0aa
MD5 b22cf43d4d127165f4a588d22d0e4b9e
BLAKE2b-256 79e3ac8dc7491e92457b3f15d7e62c89541604b9bed36497af738a7df5921db0

See more details on using hashes here.

Provenance

The following attestation bundles were made for midos_mcp_sync-0.1.0-py3-none-any.whl:

Publisher: pypi-publish.yml on MidOSresearch/MidOS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page