Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
cf0429c
WIP
niechen Jul 2, 2025
32c7734
seems working
niechen Jul 2, 2025
d48a299
more clean up
niechen Jul 2, 2025
ebf97cb
Update client editing
niechen Jul 2, 2025
4cca8b9
Update docs
niechen Jul 2, 2025
628b120
Update index.html
niechen Jul 2, 2025
386591d
Update registry index.html
niechen Jul 2, 2025
d1aa74d
change registry ranking logic to move archived to the back
niechen Jul 2, 2025
6c8d6f6
fix profile implementation
niechen Jul 2, 2025
604320b
Update test_client.py
niechen Jul 2, 2025
39a8515
profile share working
niechen Jul 3, 2025
c46b373
use logger to print in run
niechen Jul 3, 2025
5766f20
sharing working
niechen Jul 3, 2025
f0321ac
improve sharing url display
niechen Jul 3, 2025
4b8cd86
Remove router and active profile functionality, preserve v2 commands
niechen Jul 3, 2025
5a08b91
Format code with ruff and fix all linting issues
niechen Jul 3, 2025
4fe8157
improve mcpm client ls
niechen Jul 4, 2025
b1768b9
Improve mcpm ls command user experience
niechen Jul 4, 2025
3c046ce
move import to client import
niechen Jul 4, 2025
758d7eb
Enhance client edit command with profile support and UI improvements
niechen Jul 4, 2025
9233744
Add interactive-only server edit command
niechen Jul 4, 2025
b0a54e8
Add -N/--new and -e/--editor options to edit command
niechen Jul 4, 2025
eea40b2
feat(cli): add global error handler with rich tracebacks
niechen Jul 4, 2025
94119b1
docs(project): add GEMINI.md for project conventions
niechen Jul 4, 2025
81e607b
docs(cli): add links to github issues and discussions in help text
niechen Jul 4, 2025
7835623
style(python): format code with ruff
niechen Jul 4, 2025
9185fa0
feat(cli): add --path option to client edit command
niechen Jul 4, 2025
352e2a7
docs(project): update GEMINI.md with git commit convention
niechen Jul 4, 2025
8f24580
Fix mcpm share command implementation to match original
niechen Jul 4, 2025
2a2c773
Fix authentication middleware for FastMCP proxy
niechen Jul 4, 2025
5ad2548
Show security warning only when --no-auth is used
niechen Jul 4, 2025
4774bbb
Simplify share command output
niechen Jul 4, 2025
505eebe
Remove unnecessary --debug flag from profile run command
niechen Jul 4, 2025
5a6e1e2
Improve run command logging and console output
niechen Jul 4, 2025
09d06ab
Fix code formatting and linting issues
niechen Jul 4, 2025
8eee2c8
Include timestamp and class name in log format
niechen Jul 4, 2025
96a9c63
Clarify authorization header format in share panels
niechen Jul 4, 2025
bbf3a2a
Improve inspect command with optional server name
niechen Jul 4, 2025
385da2e
Fix tests for updated inspect and run command behavior
niechen Jul 4, 2025
dc6eb07
Apply ruff formatting fixes
niechen Jul 4, 2025
3771be0
Remove outdated concepts from config system
niechen Jul 5, 2025
19090fc
Implement comprehensive v1 to v2 migration system
niechen Jul 5, 2025
396fb81
Remove old middleware and consolidate to unified event-driven tracking
niechen Jul 5, 2025
df0d8ef
Merge branch 'main' into 198-general-mcpm-v2-command-design
niechen Jul 7, 2025
3c46f80
Add rich-click for beautiful CLI formatting
niechen Jul 5, 2025
13792d9
Remove inspector command and reorganize command groups
niechen Jul 6, 2025
38d54d5
Improve CLI help system and command descriptions
niechen Jul 6, 2025
345f08a
Clean up deprecated configuration fields and imports
niechen Jul 6, 2025
43855b4
Fix v1 to v2 migration to only occur after user confirmation
niechen Jul 7, 2025
b3bca44
Clean up logo printing code
niechen Jul 7, 2025
1c60f49
Update all documentation to match MCPM v2.0 implementation
niechen Jul 7, 2025
a46dcd5
Complete documentation overhaul for MCPM v2.0
niechen Jul 7, 2025
080c5e6
update docs
niechen Jul 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Claude Project Conventions

This file contains conventions that Claude should follow when working on this project.

- **Formatting:** Always format Python code with `ruff`.
- **Dependency Management:** Use `uv` for all Python dependency management.
- **Committing:** Always double-check with the user before committing changes to git.
7 changes: 7 additions & 0 deletions GEMINI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Gemini Project Conventions

This file contains conventions that Gemini should follow when working on this project.

- **Formatting:** Always format Python code with `ruff`.
- **Dependency Management:** Use `uv` for all Python dependency management.
- **Committing:** Always double-check with the user before committing changes to git.
270 changes: 270 additions & 0 deletions MIGRATION_GUIDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,270 @@
# MCPM v2.0 Migration Guide

This guide helps existing MCPM v1 users transition to the new simplified global configuration model.

## What's New in v2.0

### Simplified Architecture
- **Global Server Configuration**: All servers managed in a single global configuration
- **Virtual Profiles**: Profiles are now tags on servers, not separate configurations
- **Direct Execution**: Run servers directly without complex router setup
- **Beautiful CLI**: Enhanced interface with rich formatting and better organization
- **Client Integration**: Manage multiple MCP clients from one place

### Key Improvements
- **Faster Startup**: No daemon dependencies, direct stdio execution
- **Better Performance**: Direct execution eliminates router complexity
- **Enhanced Usability**: Centralized server management, easy profile organization
- **Developer Tools**: Built-in inspector, HTTP testing, public sharing
- **Usage Analytics**: Track and analyze server usage patterns

## Automatic Migration

MCPM v2.0 includes an automatic migration system that detects v1 configurations and guides you through the upgrade process.

### Migration Process

When you run any MCPM command with v1 configuration present, you'll see:

1. **Welcome Screen**: Introduction to v2.0 with migration options
2. **Configuration Analysis**: Review of your current v1 setup
3. **v2.0 Features**: Overview of new capabilities and improvements
4. **Breaking Changes**: Important changes that affect your workflow
5. **Migration Choice**: Three options for proceeding

### Migration Options

#### Option 1: Migrate (Recommended)
```
Y - Migrate to v2 (recommended)
```
- Converts your v1 profiles to v2 virtual profiles
- Migrates all servers to global configuration
- Preserves your existing setup while upgrading to v2
- Creates backup of v1 configuration files

#### Option 2: Start Fresh
```
N - Start fresh with v2 (backup v1 configs)
```
- Backs up your v1 configuration safely
- Starts with a clean v2 installation
- Removes v1 files after backup
- Good option if you want to reorganize from scratch

#### Option 3: Ignore for Now
```
I - Ignore for now (continue with current command)
```
- Continues with your current command
- Keeps v1 configuration unchanged
- Can migrate later with `mcpm migrate`
- Some v2 features may not work properly

### Manual Migration

You can also trigger migration manually:

```bash
mcpm migrate
```

This shows the same migration assistant as the automatic detection.

## Command Changes

### Main Commands

| **v1 Command** | **v2 Command** | **Notes** |
|----------------|----------------|-----------|
| `mcpm add SERVER` | `mcpm install SERVER` | Cleaner naming |
| `mcpm rm SERVER` | `mcpm uninstall SERVER` | Cleaner naming |
| `mcpm ls` | `mcpm ls` | Same command, enhanced output |
| `mcpm target set` | *Removed* | No longer needed |
| `mcpm router start` | `mcpm run --http` | Direct HTTP execution |
| `mcpm share` | `mcpm share` | Simplified sharing |

### Profile Commands

| **v1 Command** | **v2 Command** | **Notes** |
|----------------|----------------|-----------|
| `mcpm target create %profile` | `mcpm profile create PROFILE` | Virtual profiles |
| `mcpm add SERVER --target %profile` | `mcpm profile edit PROFILE` | Interactive management |
| `mcpm target use %profile` | `mcpm profile run PROFILE` | Execute profile servers |
| `N/A` | `mcpm profile share PROFILE` | New: Share entire profiles |

### New Commands

| **Command** | **Description** |
|------------|----------------|
| `mcpm doctor` | System health check and diagnostics |
| `mcpm usage` | Comprehensive analytics and usage data |
| `mcpm inspect SERVER` | Launch MCP Inspector for server testing |
| `mcpm client ls` | List and manage MCP clients |
| `mcpm client edit CLIENT` | Configure client server selections |
| `mcpm client import CLIENT` | Import configurations from clients |
| `mcpm config` | Manage MCPM configuration settings |

## Migration Examples

### Before v2.0 (v1 workflow)
```bash
# Complex target-based workflow
mcpm target create @cursor
mcpm target set @cursor
mcpm add mcp-server-browse
mcpm add mcp-server-git

mcpm target create %web-dev
mcpm add mcp-server-browse --target %web-dev
mcpm add mcp-server-git --target %web-dev

mcpm router start
mcpm share mcp-server-browse
```

### After v2.0 (simplified workflow)
```bash
# Simple global configuration
mcpm install mcp-server-browse
mcpm install mcp-server-git

# Create and organize with profiles
mcpm profile create web-dev
mcpm profile edit web-dev # Interactive server selection

# Direct execution and sharing
mcpm run mcp-server-browse
mcpm share mcp-server-browse
mcpm profile run web-dev
mcpm profile share web-dev
```

## Client Integration

### Before: Complex Router Setup
```json
{
"mcpServers": {
"mcpm-router": {
"command": ["mcpm", "router", "run"],
"args": ["--port", "3000"]
}
}
}
```

### After: Direct Execution
```json
{
"mcpServers": {
"browse": {
"command": ["mcpm", "run", "mcp-server-browse"]
},
"git": {
"command": ["mcpm", "run", "mcp-server-git"]
}
}
}
```

Or use MCPM's client management:
```bash
mcpm client edit claude-desktop # Interactive configuration
mcpm client edit cursor # Select servers for Cursor
```

## Post-Migration Workflow

### 1. Verify Migration
```bash
mcpm ls # See all migrated servers
mcpm profile ls # See migrated profiles
mcpm run SERVER-NAME # Test server execution
```

### 2. Explore New Features
```bash
mcpm client ls # See detected MCP clients
mcpm doctor # Check system health
mcpm usage # View usage analytics
mcpm inspect SERVER # Debug server with inspector
```

### 3. Organize with Profiles
```bash
mcpm profile create frontend
mcpm profile create backend
mcpm profile create ai-tools

# Use interactive editor to assign servers
mcpm profile edit frontend
```

### 4. Client Integration
```bash
# Configure clients interactively
mcpm client edit claude-desktop
mcpm client edit cursor

# Or import existing configurations
mcpm client import claude-desktop
```

## Troubleshooting

### Migration Issues

**Migration fails with profile errors**
- Check that profile servers exist in global config
- Verify server configurations are valid
- Run `mcpm doctor` for diagnostic information

**"No v1 config found" when you have v1 files**
- Ensure files are in `~/.config/mcpm/`
- Check file permissions and format
- Try `mcpm migrate` to trigger manual migration

**Stashed servers not migrated**
- Migration asks what to do with stashed servers
- Choose "restore" to add them to global config
- Choose "document" to save them for manual review

### Post-Migration Issues

**Servers not working in clients**
- Update client configurations to use `mcpm run SERVER`
- Use `mcpm client edit CLIENT` for interactive setup
- Check server status with `mcpm ls`

**Profile commands not working**
- Profiles are now virtual tags, not separate configurations
- Use `mcpm profile edit PROFILE` to manage server assignments
- Check profile status with `mcpm profile ls`

**Command not found errors**
- Some v1 commands have been removed or renamed
- Use `mcpm --help` to see all available commands
- Check this guide for command equivalents

## Getting Help

- **Health Check**: `mcpm doctor` - Diagnose system issues
- **Command Help**: `mcpm COMMAND --help` - Detailed command information
- **Migration Help**: `mcpm migrate --help` - Migration-specific options
- **Support**: https://github.com/pathintegral-institute/mcpm.sh/issues

## Backup Information

During migration, MCPM creates comprehensive backups:

- **Location**: `~/.config/mcpm/backups/`
- **Contents**: Original v1 `config.json` and `profiles.json`
- **README**: Detailed backup information and recovery instructions
- **Timestamp**: Each backup includes creation timestamp

Your original v1 configuration is never modified until you confirm migration.

---

*MCPM v2.0 provides a cleaner, more powerful interface while preserving all your existing functionality. The migration process is designed to be safe and reversible.*
Loading