npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

sync-project-mcps

v1.2.0

Published

Sync project-level MCP configurations across AI coding assistants (Cursor, Claude Code, Windsurf, Cline, Gemini CLI, Codex, OpenCode)

Downloads

551

Readme

sync-project-mcps

Zero-config project-level MCP synchronization across AI coding assistants.

One command. All your project MCP servers. Every editor.

npx -y sync-project-mcps@latest

The Problem

You use multiple AI coding assistants - Cursor, Claude Code, Windsurf, Cline. Each has its own MCP configuration file in a different location. Adding a new MCP server means updating 3-5 config files manually. Forgetting one means inconsistent tooling across editors.

The Solution

sync-project-mcps finds all your project MCP configurations, merges them, and writes the unified config back to all clients. No setup required.

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│   .cursor/mcp.json ──┐                                      │
│                      │                                      │
│   .mcp.json ─────────┼──► MERGE ──► Write to ALL clients    │
│                      │                                      │
│   .windsurf/... ─────┘                                      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Quick Start

Run Once (npx)

npx -y sync-project-mcps@latest

Preview Changes

npx -y sync-project-mcps@latest --dry-run

Verbose Output

npx -y sync-project-mcps@latest -v

Supported Clients

| Client | Config Location | Status | |--------|-----------------|--------| | Cursor | .cursor/mcp.json | Project | | Claude Code | .mcp.json | Project | | Windsurf | .windsurf/mcp.json | Project | | Cline | .cline/mcp.json | Project | | Roo Code | .roo/mcp.json | Project | | Gemini CLI | .gemini/settings.json | Project | | Codex | .codex/config.toml | Project | | OpenCode | .opencode/opencode.jsonc | Project |


Installation

Option 1: Run with npx (Recommended)

No installation needed:

npx -y sync-project-mcps@latest

Option 2: Install Globally

npm install -g sync-project-mcps
sync-project-mcps

Adding MCP Servers

For Cursor

Click to install an MCP server directly:

Add to Cursor

Or add manually to .cursor/mcp.json:

{
  "mcpServers": {
    "example": {
      "command": "npx",
      "args": ["example-mcp"]
    }
  }
}

For Claude Code

Install globally with the Claude CLI:

claude mcp add example -s user -- npx example-mcp

Or add to project-level .mcp.json:

{
  "mcpServers": {
    "example": {
      "command": "npx",
      "args": ["example-mcp"]
    }
  }
}

Then Sync

npx -y sync-project-mcps@latest

Your MCP server is now available in all your AI coding assistants.


How It Works

  1. Discovers MCP configs from all supported clients
  2. Merges all mcpServers entries (dedupes by name)
  3. Writes the unified config to every client location
$ npx -y sync-project-mcps@latest

Sync MCP Configurations

Found configurations:
  + Cursor: 3 server(s)
  + Claude Code: 2 server(s)

Merged result: 4 unique server(s)
  - context7
  - filesystem
  - github
  - playwright

Syncing to clients...
  [update] Cursor (no changes)
  [update] Claude Code (+1)
  [create] Windsurf (+4)
  [create] Cline (+4)
  [create] Roo Code (+4)

Done!

CLI Options

sync-project-mcps [options]

Options:
  -s, --source  Use specific client as source of truth (cursor, claude, windsurf, cline, roo, gemini, codex, opencode)
  --dry-run     Show what would be synced without writing files
  -v, --verbose Show detailed information about each server
  -h, --help    Show help message
  --version     Show version

Source Mode

By default, the tool merges all configs (add-only). Use --source to pick one client as the source of truth:

# Use Cursor's config as the canonical source
npx -y sync-project-mcps@latest -s cursor

# Preview what would be removed
npx -y sync-project-mcps@latest -s cursor --dry-run -v

This will sync only the servers from the source client to all others, removing servers that don't exist in the source.


FAQ

Does it delete servers?

By default, no. It only adds missing servers. Use --source to sync from a specific client, which will also remove servers that don't exist in the source.

What if the same server has different configs?

First occurrence wins. If github is configured differently in Cursor vs Claude Code, the Cursor config is used (it's checked first).

Does it support environment variables?

Yes. Environment variables in configs are preserved as-is.

What about global vs project configs?

Currently syncs project-level configs. Global config support is planned.


Comparison

| Feature | sync-project-mcps | sync-mcp | mcpm.sh | |---------|-------------------|----------|---------| | Scope | Project-level | Global/user | Global | | Zero config | Yes | No | No | | npx support | Yes | Yes | No | | Direction | Merge all | One-to-one | Manual |

sync-project-mcps is for developers who want project MCP configs synced across all editors with zero friction.


Development

git clone https://github.com/user/sync-project-mcps
cd sync-project-mcps
npm install
npm run build
node dist/index.js

License

MIT