Skip to main content
Glama
README.md
# devsync-mcp

MCP server for AI-merge of team dev configurations. Works with any MCP-capable IDE (Claude Code, Cursor, Windsurf, Copilot, Zed, etc.).

## What it does

Teams maintain a shared config profile repo (shell configs, git settings, AI rules, editor configs). `devsync-mcp` provides MCP tools that let the IDE's LLM intelligently merge team configs with your personal configs — preserving your customizations while incorporating team standards.

**Key insight:** The MCP server does NOT call an LLM. It provides source and target content to the host IDE's LLM, which performs the intelligent merge.

## Install

```bash
pip install devsync-mcp
```

## MCP Configuration

Add to your IDE's MCP settings:

```json
{
  "mcpServers": {
    "devsync-mcp": {
      "command": "devsync-mcp",
      "transport": "stdio"
    }
  }
}
```

## Tools

| Tool | Purpose |
|------|---------|
| `pull_team_profile` | Clone/pull team config repo |
| `list_profile_configs` | List configs in a profile |
| `detect_current_configs` | Scan environment for existing configs |
| `preview_merge` | Return source + target for LLM merge |
| `apply_merge` | Write merged content with backup |
| `sync_all` | Pull latest + present merge plan |
| `list_backups` | List previous merge backups |
| `restore_backup` | Restore from backup |
| `get_merge_status` | Show merged/pending/changed status |

## AI-Merge Flow

```
1. pull_team_profile(git_url)     → downloads team config repo
2. list_profile_configs(profile)  → shows available configs
3. detect_current_configs()       → finds your existing configs
4. preview_merge(profile, config) → returns {source_content, target_content}
5. HOST LLM reads both, produces intelligent merge
6. apply_merge(target, merged)    → writes with backup
```

## Team Profile Format

Create a `devsync-profile.yaml` in your team config repo:

```yaml
name: acme-team-config
description: ACME Corp standard dev environment
version: 1.0.0

configs:
  - name: zshrc-additions
    file: shell/zshrc-additions.sh
    target: ~/.zshrc
    type: shell_profile
    description: Team shell aliases and PATH additions

  - name: claude-rules
    file: ai-rules/claude-rules.md
    target: CLAUDE.md
    type: ai_rules
    description: Team coding standards for Claude Code
```

## Config Types

- `shell_profile` — `.zshrc`, `.bashrc`, `.bash_profile`, `.profile`
- `git_config` — `.gitconfig`, `.gitignore_global`
- `editor_config` — `.editorconfig`
- `ai_rules` — `CLAUDE.md`, `.cursorrules`, `AGENTS.md`, etc.
- `vscode_settings` — `.vscode/settings.json`, etc.
- `ssh_config` — `.ssh/config`
- `custom` — any file with explicit source/target mapping

## Claude Code Skill

Install the `/sync-team` skill for a guided experience:

```bash
cp -r skill/sync-team ~/.claude/skills/
```

Then use `/sync-team` in Claude Code to walk through the full sync flow.

## Development

```bash
git clone https://github.com/troylar/devsync-mcp
cd devsync-mcp
pip install -e ".[dev]"
pytest
```

## License

MIT

TDQS

A4/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: pulling profiles, detecting configs, previewing merges, applying merges, listing status, backups, etc. No two tools overlap in functionality; sync_all is explicitly a convenience wrapper.

Naming Consistency4/5

All tool names use snake_case and imperative verbs (apply, detect, get, list, preview, pull, restore, sync). The naming patterns are mostly verb_noun, though 'list_profile_configs' and 'list_backups' mix noun sequences. Overall consistent and readable.

Tool Count5/5

With 9 tools, the server covers the config synchronization workflow without unnecessary bloat. Each tool serves a specific, non-redundant role in the lifecycle of pulling, merging, and restoring configs.

Completeness4/5

The tool surface covers the full lifecycle: pulling profiles, detecting local configs, previewing merges, applying merges, managing backups, and checking status. A minor gap is the lack of a tool to explicitly update a profile (e.g., re-pull), but the workflow is tightly scoped and functional.

Maintenance

ActivityInactive
ResponsivenessNo issues