Skip to content
Merged
Show file tree
Hide file tree
Changes from 43 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.
196 changes: 196 additions & 0 deletions MCPM_Command_Specification.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
# MCPM Command Specification v2.0

This document defines the complete command structure for MCPM, implementing a simplified global workspace model without client-specific management complexity.

## Core Architecture

**Global Configuration Model:**
- All servers are managed in a single global configuration
- Profiles organize servers into logical groups via tagging
- Clients configure themselves to run servers via `mcpm run`
- No active target or client-specific state management

---

## Command Reference

### Server Management

Core commands for managing servers in the global configuration.

| Command | Description |
|---------|-------------|
| `mcpm install [NAME \| PATH \| URL]` | Installs a server from registry, local file, or URL |
| `mcpm uninstall [SERVER_NAME]` | Removes a server from configuration |
| `mcpm ls` | Lists all installed servers and their profile assignments |
| `mcpm search [QUERY]` | Searches the MCP Registry for available servers |
| `mcpm info [SERVER_NAME]` | Shows detailed registry information for a server |
| `mcpm inspect [SERVER_NAME]` | Launches MCP Inspector to test and debug an installed server |
| `mcpm import [CLIENT_NAME]` | Imports server configurations from a supported client |

### Server Execution

Commands for running servers directly (stateless model).

| Command | Description |
|---------|-------------|
| `mcpm run [SERVER_NAME]` | Executes a single server over stdio |

**Example Client Configuration:**
```json
{
"name": "MCPM: Browse",
"command": ["mcpm", "run", "mcp-server-browse"]
}
```

### Profile Management

Commands for organizing servers with virtual groups/tags. Profiles are logical groupings that don't move servers, but tag them for organization.

| Command | Description |
|---------|-------------|
| `mcpm profile create [NAME]` | Creates a new profile |
| `mcpm profile rm [NAME]` | Deletes a profile |
| `mcpm profile ls` | Lists all profiles and their tagged servers |
| `mcpm profile add [PROFILE] [SERVER]` | Tags a server with a profile |
| `mcpm profile remove [PROFILE] [SERVER]` | Removes profile tag from a server |
| `mcpm profile run [PROFILE_NAME]` | Executes all servers tagged with profile over stdio |

### Server Sharing

Commands for exposing servers via secure tunnels.

| Command | Description |
|---------|-------------|
| `mcpm share [SERVER_NAME]` | Creates public tunnel to a single server |
| `mcpm profile share [PROFILE_NAME]` | Creates public tunnel to all servers in a profile |

### System & Configuration

Commands for managing system health, analytics, and global settings.

| Command | Description |
|---------|-------------|
| `mcpm doctor` | Checks system health and installed server status |
| `mcpm usage` | Displays analytics and usage data for servers |
| `mcpm config set [KEY] [VALUE]` | Sets a global configuration value |
| `mcpm config get [KEY]` | Retrieves a global configuration value |
| `mcpm config clear-cache` | Clears the local registry cache |

---

## Workflow Examples

### Basic Server Management
```bash
# Discover and install servers
mcpm search browser
mcpm info mcp-server-browse
mcpm install mcp-server-browse

# Import from existing clients
mcpm import cursor

# List and inspect installed servers
mcpm ls
mcpm inspect mcp-server-browse

# Run server directly
mcpm run mcp-server-browse

# Check system health
mcpm doctor
```

### Profile Organization
```bash
# Create profiles for different contexts
mcpm profile create web-dev
mcpm profile create data-analysis

# Tag servers with profiles
mcpm profile add web-dev mcp-server-browse
mcpm profile add data-analysis mcp-server-pandas

# Run entire profiles
mcpm profile run web-dev
```

### Client Integration
```bash
# Install servers
mcpm install mcp-server-browse
mcpm install mcp-server-email

# Configure in MCP client (e.g., Cursor)
# Multiple configs, one per server:
```
```json
{
"mcpServers": {
"browse": {
"command": ["mcpm", "run", "mcp-server-browse"]
},
"email": {
"command": ["mcpm", "run", "mcp-server-email"]
}
}
}
```

### Sharing and Collaboration
```bash
# Share individual servers
mcpm share mcp-server-browse

# Share entire development environment
mcpm profile create dev-env
mcpm profile add dev-env mcp-server-browse
mcpm profile add dev-env mcp-server-git
mcpm profile share dev-env

# Import existing client configurations
mcpm import cursor
mcpm import claude-desktop
```

---

## Migration from Current System

### Command Mapping

| Current Command | New Command | Notes |
|----------------|-------------|-------|
| `mcpm add SERVER` | `mcpm install SERVER` | Simplified to global configuration |
| `mcpm rm SERVER` | `mcpm uninstall SERVER` | No target specification needed |
| `mcpm ls --target @client` | `mcpm ls` | Single global view |
| `mcpm info SERVER` | `mcpm info SERVER` | Unchanged (registry details) |
| `mcpm inspector` | `mcpm inspect SERVER` | Now launches inspector for specific server |
| `mcpm target set @client` | *Removed* | No active target concept |

### Deprecated Features

**Removed in v2.0:**
- Active target management (`mcpm target`)
- Client-specific operations (`--target @client`)
- Target prefixes (`@client`, `%profile`)
- Cross-client server copying/moving
- Stash/pop server configuration

**Simplified Alternatives:**
- Global configuration replaces per-client management
- Manual client configuration replaces automatic target injection
- Profile tagging replaces complex target routing

---

## Implementation Status

- ✅ **Existing:** `search`, `info`, `ls`, `profile create/rm/ls`, `share`, `config`
- 🔄 **Needs Aliases:** `install` (alias for `add`), `uninstall` (alias for `rm`)
- 🆕 **New Commands:** `doctor`, `usage`, `inspect`, `run`, `profile add/remove`, `profile run`, `profile share`, `import`
- 🗑️ **To Remove:** Target system, client management, stash/pop operations

This specification provides a clear, simplified command structure focused on workspace management and direct server execution.
Loading
Loading