|
1 | 1 | # MCPM - Model Context Protocol Package Manager |
2 | 2 |
|
3 | | -MCPM is a Homebrew-like service and command-line interface for managing Model Context Protocol (MCP) configs and servers. |
| 3 | +MCPM is a Homebrew-like service and command-line interface for managing Model Context Protocol (MCP) servers across various MCP clients. |
4 | 4 |
|
5 | 5 | ## Overview |
6 | 6 |
|
7 | | -MCPM aims to simplify the installation, configuration, and management of Model Context Protocol configs with a focus on: |
| 7 | +MCPM aims to simplify the installation, configuration, and management of Model Context Protocol servers with a focus on: |
8 | 8 |
|
9 | | -- Easy installation of Model Context Protocol configs via a simple CLI |
10 | | -- Centralized management of configurations |
11 | | -- Seamless updates for installed configs |
| 9 | +- Easy installation of MCP servers via a simple CLI |
| 10 | +- Centralized management of server configurations across multiple clients |
| 11 | +- Seamless updates for installed servers |
12 | 12 | - Server-side management capabilities |
13 | 13 |
|
14 | | -## Supported Configs |
| 14 | +## Supported MCP Clients |
15 | 15 |
|
16 | | -Initial release will support configs for: |
| 16 | +MCPM will support managing MCP servers for the following clients: |
17 | 17 |
|
18 | | -- Claude Desktop (Anthropic's Model Context Protocol client) |
19 | | -- More Model Context Protocol configs coming soon... |
| 18 | +- Claude Desktop (Anthropic) |
| 19 | +- Cursor |
| 20 | +- Windsurf |
| 21 | +- Additional clients coming soon... |
| 22 | + |
| 23 | +## Command Line Interface (CLI) |
| 24 | + |
| 25 | +MCPM provides a comprehensive CLI built with Python's Click framework. Below are the available commands: |
| 26 | + |
| 27 | +### Basic Commands |
| 28 | + |
| 29 | +``` |
| 30 | +mcpm --help # Display help information and available commands |
| 31 | +mcpm --version # Display the current version of MCPM |
| 32 | +``` |
| 33 | + |
| 34 | +### Search Commands |
| 35 | + |
| 36 | +``` |
| 37 | +mcpm search [QUERY] # Search available MCP servers |
| 38 | +mcpm search --tags=TAG # Search servers by tag |
| 39 | +``` |
| 40 | + |
| 41 | +### Installation Commands |
| 42 | + |
| 43 | +``` |
| 44 | +mcpm install SERVER_NAME # Install an MCP server |
| 45 | +mcpm install SERVER_NAME --version=VERSION # Install specific version |
| 46 | +mcpm remove SERVER_NAME # Remove an installed MCP server |
| 47 | +mcpm update [SERVER_NAME] # Update installed servers (or specific server) |
| 48 | +``` |
| 49 | + |
| 50 | +### List Commands |
| 51 | + |
| 52 | +``` |
| 53 | +mcpm list # List all installed MCP servers |
| 54 | +mcpm list --available # List all available MCP servers |
| 55 | +mcpm list --outdated # List installed servers with updates available |
| 56 | +``` |
| 57 | + |
| 58 | +### Configuration Commands |
| 59 | + |
| 60 | +``` |
| 61 | +mcpm config SERVER_NAME # Configure an installed MCP server |
| 62 | +mcpm config --edit SERVER_NAME # Open server config in default editor |
| 63 | +mcpm config --reset SERVER_NAME # Reset server config to defaults |
| 64 | +``` |
| 65 | + |
| 66 | +### Status Commands |
| 67 | + |
| 68 | +``` |
| 69 | +mcpm status [SERVER_NAME] # Show status of all or specific MCP servers |
| 70 | +mcpm status --client=CLIENT_NAME # Show status of MCP servers for a specific client |
| 71 | +mcpm enable SERVER_NAME --client=CLIENT_NAME # Enable an MCP server for a specific client |
| 72 | +mcpm disable SERVER_NAME --client=CLIENT_NAME # Disable an MCP server for a specific client |
| 73 | +``` |
| 74 | + |
| 75 | +### Server Management |
| 76 | + |
| 77 | +``` |
| 78 | +mcpm server start SERVER_NAME # Start an MCP server |
| 79 | +mcpm server stop SERVER_NAME # Stop an MCP server |
| 80 | +mcpm server restart SERVER_NAME # Restart an MCP server |
| 81 | +mcpm server log SERVER_NAME # View server logs |
| 82 | +``` |
20 | 83 |
|
21 | 84 | ## Roadmap |
22 | 85 |
|
23 | 86 | - [x] Landing page setup |
24 | 87 | - [ ] CLI foundation |
25 | | -- [ ] Config repository structure |
26 | | -- [ ] Claude Desktop config integration |
| 88 | +- [ ] Server repository structure |
| 89 | +- [ ] Claude Desktop client integration |
27 | 90 | - [ ] Server management functionality |
28 | | -- [ ] Additional config support |
| 91 | +- [ ] Additional client support |
29 | 92 |
|
30 | 93 | ## Development |
31 | 94 |
|
32 | | -This repository contains the landing page for mcpm.sh and will eventually house the CLI and service components. |
| 95 | +This repository contains the CLI and service components for MCPM, built with Python and Click following modern package development practices. |
| 96 | + |
| 97 | +### Development Requirements |
| 98 | + |
| 99 | +- Python 3.8+ |
| 100 | +- uv (for virtual environment and dependency management) |
| 101 | +- Click framework for CLI |
| 102 | +- Rich for enhanced console output |
| 103 | +- Requests for API interactions |
| 104 | + |
| 105 | +### Project Structure |
| 106 | + |
| 107 | +The project follows the modern src-based layout: |
| 108 | + |
| 109 | +``` |
| 110 | +mcpm.sh/ |
| 111 | +├── src/ # Source package directory |
| 112 | +│ └── mcpm/ # Main package code |
| 113 | +├── tests/ # Test directory |
| 114 | +├── test_cli.py # Development CLI runner |
| 115 | +├── pyproject.toml # Project configuration |
| 116 | +└── README.md # Documentation |
| 117 | +``` |
| 118 | + |
| 119 | +### Development Setup |
| 120 | + |
| 121 | +1. Clone the repository |
| 122 | + ``` |
| 123 | + git clone https://github.com/pathintegral-xyz/mcpm.sh.git |
| 124 | + cd mcpm.sh |
| 125 | + ``` |
| 126 | + |
| 127 | +2. Set up a virtual environment with uv |
| 128 | + ``` |
| 129 | + uv venv |
| 130 | + source .venv/bin/activate # On Unix/Mac |
| 131 | + ``` |
| 132 | + |
| 133 | +3. Install dependencies in development mode |
| 134 | + ``` |
| 135 | + uv pip install -e . |
| 136 | + ``` |
| 137 | + |
| 138 | +4. Run the CLI directly during development |
| 139 | + ``` |
| 140 | + # Either use the installed package |
| 141 | + mcpm --help |
| 142 | + |
| 143 | + # Or use the development script |
| 144 | + ./test_cli.py --help |
| 145 | + ``` |
| 146 | + |
| 147 | +5. Run tests |
| 148 | + ``` |
| 149 | + pytest tests/ |
| 150 | + ``` |
| 151 | + |
| 152 | +### Best Practices |
| 153 | + |
| 154 | +- Use the src-based directory structure to prevent import confusion |
| 155 | +- Develop with an editable install using `uv pip install -e .` |
| 156 | +- Keep commands modular in the `src/mcpm/commands/` directory |
| 157 | +- Add tests for new functionality in the `tests/` directory |
| 158 | +- Use the `test_cli.py` script for quick development testing |
33 | 159 |
|
34 | 160 | ## License |
35 | 161 |
|
|
0 commit comments