Homebrew for MCP Servers — A CLI package manager for MCP servers
Project description
简体中文 | English
⛭ mcp-pm — Homebrew for MCP Servers
A CLI package manager for the Model Context Protocol ecosystem. Install, search, serve, and manage MCP servers with a single command.
Quick Start • Features • Commands • Architecture • Comparison • Registries
https://github.com/user-attachments/assets/placeholder
✨ Quick Start
# Install
pip install mcp-pm
# Search for MCP servers across 5 registries (Smithery, npm, PyPI, built-in...)
mcp search filesystem
# Install a server
mcp install mcp-server-filesystem
# List installed servers
mcp list
# Explore the Web UI dashboard
mcp explore
# Run a server in an isolated sandbox
mcp sandbox my-server --level docker
# Start an OpenAI-compatible HTTP proxy
mcp serve
No servers installed yet? Run
mcp search databaseto discover servers from the community registry, ormcp exploreto browse them visually.
🚀 Features
| Feature | Description |
|---|---|
| 🔍 Multi-Registry Search | Search across 5 registries simultaneously — Smithery (5,000+ servers), npm, PyPI, built-in curated list |
| 📦 One-Command Install | mcp install <server> — installs from npm, pip, git, or Docker |
| 🔒 Sandbox Isolation | Run untrusted servers in isolated environments (subprocess, Docker) |
| 🌐 Web UI Dashboard | Beautiful dark-themed HTMX dashboard for visual management |
| ⚡ OpenAI Proxy | Expose all installed MCP tools as an OpenAI-compatible API |
🛡️ mcp doctor |
Diagnostic tool that checks your entire MCP setup |
| 🔧 12 Commands | Full lifecycle management — install, uninstall, update, list, search, info, explore, serve, sandbox, config, doctor, run |
| 🌍 Multi-language UI | Web UI supports English and 中文 (Chinese), extensible to any language |
| 📝 YAML Config | Human-readable configuration at ~/.mcp-pm/config.yaml |
| 🎨 Beautiful CLI | Rich terminal output with tables, colors, and progress spinners |
🎮 Commands
| Command | Description | Example |
|---|---|---|
mcp install |
Install an MCP server | mcp install mcp-server-filesystem |
mcp uninstall |
Remove an installed server | mcp uninstall my-server |
mcp update |
Update all installed servers | mcp update |
mcp list |
List installed servers and tools | mcp list |
mcp search |
Search across all registries | mcp search database |
mcp info |
Show detailed server info | mcp info github |
mcp explore |
Launch the Web UI dashboard | mcp explore |
mcp serve |
Start HTTP proxy server | mcp serve |
mcp sandbox |
Run server in sandbox | mcp sandbox my-server --level docker |
mcp config |
Manage configuration | mcp config get servers |
mcp doctor |
Diagnose installation health | mcp doctor |
mcp run |
Run an MCP tool directly | mcp run my-server tool-name |
🏗️ Architecture
┌─────────────────────────────────────────────────────────────┐
│ User Interfaces │
│ ┌──────────┐ ┌────────────┐ ┌──────────┐ ┌──────────┐ │
│ │ CLI │ │ Web UI │ │ VS Code │ │ CI/CD │ │
│ │ Terminal │ │ Dashboard │ │ Ext. │ │ Actions │ │
│ └────┬─────┘ └─────┬──────┘ └────┬─────┘ └────┬─────┘ │
└───────┼──────────────┼──────────────┼──────────────┼────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────────────────────────────────────────────────────┐
│ CLI Core (click + rich) │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ 12 Subcommands: install · uninstall · list · search ││
│ │ info · explore · serve · sandbox · config · update ││
│ │ doctor · run ││
│ └─────────────────────────────────────────────────────────┘│
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────────┐ │
│ │ Installer│ │ Config │ │ Sandbox │ │ HTTP Proxy │ │
│ │ (multi- │ │ (YAML) │ │ (Docker │ │ (OpenAI │ │
│ │ source) │ │ │ │ isol.) │ │ Compat.) │ │
│ └──────────┘ └──────────┘ └──────────┘ └─────────────┘ │
└───────────────────┬─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Registry Integrations │
│ ┌────────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Smithery │ │ npm │ │ PyPI │ │ Built-in │ │
│ │ 5,000+ srvs│ │ Registry │ │ Registry │ │ 27 srvs │ │
│ └────────────┘ └──────────┘ └──────────┘ └──────────┘ │
└───────────────────┬─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Execution Environment │
│ ┌──────────────┐ ┌──────────────┐ ┌───────────────────┐ │
│ │ Subprocess │ │ Docker │ │ OpenAI API Proxy │ │
│ │ Direct Spawn │ │ Sandbox │ │ MCP → OpenAI │ │
│ └──────────────┘ └──────────────┘ └───────────────────┘ │
└─────────────────────────────────────────────────────────────┘
📦 Registry Backends
mcp-pm aggregates servers from 5 registries simultaneously:
| Registry | Status | Servers | Type |
|---|---|---|---|
| Built-in | ✅ Always available | 27 curated | Offline |
| Smithery (smithery.ai) | ✅ Online | 5,000+ | API |
| npm (npmjs.com) | ✅ Online | All mcp-server packages | API |
| PyPI (pypi.org) | ✅ Online | All MCP Python packages | API |
| MCP.so | ⚠️ Deprecated (API retired) | — | Graceful fallback |
| GitHub Registry | ⚠️ Temporarily unavailable | — | Graceful fallback |
All backends are queried in parallel with a 3-second timeout — you always get results fast.
🔄 Comparison
| Feature | mcp-pm | MCP.so | Smithery | GitHub Registry |
|---|---|---|---|---|
| CLI-first | ✅ | ❌ | ❌ | ❌ |
| Offline mode (built-in index) | ✅ | ❌ | ❌ | ❌ |
| Sandbox isolation | ✅ | ❌ | ❌ | ❌ |
| Interactive TUI | ✅ | ❌ | ❌ | ❌ |
| Multi-registry search | ✅ | ❌ | ❌ | ❌ |
| Web UI dashboard | ✅ | ✅ | ✅ | ✅ |
| Auto-config generation | ✅ | ❌ | ❌ | ❌ |
| Open-source + self-hostable | ✅ | ❌ | ❌ | ✅ |
| OpenAI-compatible proxy | ✅ | ❌ | ❌ | ❌ |
| 12 subcommands | ✅ | — | — | — |
🛠️ Development
# Clone and set up
git clone https://github.com/weinotes/mcp-pm.git
cd mcp-pm
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,web]"
# Run tests
python -m pytest tests/ -v --tb=short
# Start Web UI
mcp explore
# Lint
ruff check .
ruff format --check .
🤝 Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
- Bug reports: Open an issue
- Feature requests: Start a discussion
- Security issues: See SECURITY.md
📄 License
MIT License — Copyright (c) 2025-2026 Davey Wong wgwcko@gmail.com
Made with ❤️ by Davey Wong
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_pm-0.1.0.tar.gz.
File metadata
- Download URL: mcp_pm-0.1.0.tar.gz
- Upload date:
- Size: 50.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c25d4091396db5bd7f605c27b13d4e4c49ad6fe37879623b9e1e7c71527abea6
|
|
| MD5 |
1259287168bff484921d697775be208c
|
|
| BLAKE2b-256 |
76b308890305c9e56c1d042d7fbd2804b50ba0cb139575e782f536f1735a2fe6
|
File details
Details for the file mcp_pm-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_pm-0.1.0-py3-none-any.whl
- Upload date:
- Size: 48.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65c8addcd8a9845341f90d7880e8a4b3372de256677d5666b78596faf1e2bb3e
|
|
| MD5 |
24efc2d407dabb2257f2868ba854cd25
|
|
| BLAKE2b-256 |
c6f9e4671dbb67a18f2fb00c5404989b82c143d93d57418c7f07d5445a4dc7ba
|