Skip to main content

Sync MCP server configs and rules across AI coding agents

Project description

agentsync

Sync MCP server configs and rules across AI coding agents.

CI PyPI License: MIT Python 3.9+


The Problem

You use multiple AI coding agents — Claude Code, Cursor, Codex, Gemini. Each stores MCP server configs in its own format (JSON, TOML) and its own location. Keeping them in sync manually is tedious and error-prone.

The Solution

agentsync takes a single source of truth (your Claude Code config) and syncs it to all your agents with one command.

┌──────────────┐
│  Claude Code │  Source of Truth
│  .claude.json│  ─── MCP Servers
│  .mcp.json   │  ─── Rules (CLAUDE.md)
│  CLAUDE.md   │
└──────┬───────┘
       │  agentsync sync
       ├──────────────────┐─────────────────┐
       ▼                  ▼                 ▼
┌──────────────┐  ┌──────────────┐  ┌──────────────┐
│    Cursor    │  │    Codex     │  │  Antigravity │
│  mcp.json   │  │ config.toml  │  │mcp_config.json│
│ project.mdc │  │  AGENTS.md   │  │              │
└──────────────┘  └──────────────┘  └──────────────┘

Installation

pip install agentsync-cli     # pip
pipx install agentsync-cli    # pipx (recommended for CLI tools)
uvx agentsync-cli             # uv (run without installing)

Quick Start

agentsync init       # Create agentsync.yaml config
agentsync sync       # Sync to all agents
agentsync validate   # Verify everything is correct

Features

  • MCP server sync — JSON ↔ TOML automatic conversion
  • Rules sync — Markdown → filtered Markdown / MDC with frontmatter
  • Case-insensitive deduplication — handles Notion vs notion from different sources
  • Dry-run mode — preview changes before writing
  • Backups — automatic backups before every write
  • Validation — structural checks, consistency, duplicate detection
  • Extensible — adapter-based architecture for adding new agents

Supported Agents

Agent MCP Format Rules Format Status
Claude Code JSON Markdown Source
Cursor JSON MDC Target
Codex TOML Markdown Target
Antigravity (Gemini) JSON Target

Configuration

Create agentsync.yaml in your project root:

version: 1

source:
  type: claude
  global_config: ~/.claude.json
  project_mcp: .mcp.json
  rules_file: CLAUDE.md

targets:
  cursor:
    type: cursor
    mcp_path: ~/.cursor/mcp.json
    rules_path: .cursor/rules/project.mdc
    exclude_servers: []

  codex:
    type: codex
    config_path: ~/.codex/config.toml
    rules_path: AGENTS.md
    exclude_servers: [codex]

  antigravity:
    type: antigravity
    mcp_path: ~/.gemini/antigravity/mcp_config.json
    protocols: [stdio]

rules:
  exclude_sections:
    - "MCP Servers"
    - "Context Management & Agents"

CLI Reference

Global Options

Option Description
--config, -c PATH Path to agentsync.yaml (default: auto-discover)
--quiet, -q Minimal output
--version Show version and exit
--help Show help and exit

Commands

# Sync — push source configs to targets
agentsync sync                  # Full sync (MCP + rules)
agentsync sync --dry-run        # Preview changes without writing
agentsync sync --mcp-only       # Only MCP server configs
agentsync sync --rules-only     # Only rules files
agentsync sync -t cursor        # Sync specific target only
agentsync sync --no-backup      # Skip creating backup files

# Validate — check target configs match source
agentsync validate              # Full validation
agentsync validate -v           # Verbose (show passed checks too)
agentsync validate -t codex     # Validate specific target only

# Init — create config
agentsync init                  # Create agentsync.yaml
agentsync init --force          # Overwrite existing config

# Status — show sync state
agentsync status                # Source info, target health, drift

Exit Codes

Code Meaning
0 Success
1 Runtime error (sync failed, validation failed)
2 Configuration error (missing config, bad YAML, unknown adapter)

How It Works

agentsync sync
  │
  ├─ Load config (agentsync.yaml)
  ├─ Read source (Claude Code)
  │   ├─ ~/.claude.json         → global MCP servers
  │   ├─ .mcp.json              → project MCP servers
  │   └─ CLAUDE.md              → rules sections
  │
  ├─ Deduplicate (case-insensitive)
  ├─ Filter (exclude_servers, exclude_sections, protocols)
  │
  └─ Generate + Write per target
      ├─ Cursor:       mcp.json + project.mdc (MDC frontmatter)
      ├─ Codex:        config.toml (marker-based) + AGENTS.md
      └─ Antigravity:  mcp_config.json (stdio-only)

Adding an Adapter

agentsync is designed for extension. To add support for a new AI agent:

  1. Create src/agentsync/adapters/youragent.py — implement TargetAdapter
  2. Register it in cli.py (create_targets)
  3. Add the type to KNOWN_TARGET_TYPES in config.py
  4. Write tests in tests/test_adapter_youragent.py
  5. Update this README

See CONTRIBUTING.md for detailed guidelines and the full adapter interface.

Roadmap

Version Focus
v0.1 Core sync: Claude → Cursor, Codex, Antigravity
v0.2 Plugin system for custom adapters
v0.3 Watch mode (auto-sync on file change)
v0.4 Windsurf, Zed, Cline adapters (community)
v1.0 Stable API, full coverage

Have an idea? Open a discussion or request an adapter.

Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.

Please review our Code of Conduct before contributing.

Changelog

See CHANGELOG.md for release history.

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

agentsync_cli-0.1.0.tar.gz (40.8 kB view details)

Uploaded Source

Built Distribution

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

agentsync_cli-0.1.0-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for agentsync_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 df207892df7ffd6f32e3805e75a66ee21d3f540aa0883b38ef93e5abf8364ec3
MD5 1c00569fe5575172413d232a03225f9e
BLAKE2b-256 7f82195210f5d009c252d9ad24d2dde617cbc4b778ba5d0c026861b754768ad2

See more details on using hashes here.

Provenance

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

Publisher: release.yml on spyrae/agentsync

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

File details

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

File metadata

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

File hashes

Hashes for agentsync_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 04e699f915a40b20cd3a6921f86b36853a92e238fe7918b7e02351cbd4c6674c
MD5 96619406bad3eae735c728adeba3b449
BLAKE2b-256 2f8ab78ac0511c10c56755e4990876513ae4c19955f3198310b43fe67deb4818

See more details on using hashes here.

Provenance

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

Publisher: release.yml on spyrae/agentsync

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