Comparison
PHAROS vs mcpm.sh: Which MCP Manager Fits Your Workflow
Both tools solve the same real pain: wiring MCP servers into client configs by hand is tedious and easy to get wrong. mcpm.sh does it well from one curated registry, and it has the community to prove it. Pharos approaches the same problem from a different direction, searching across registries and treating your agent as a client in its own right. This page lays out the difference so you can pick the one that matches how you work.
At a glance
The short version, feature by feature.
| Feature | PHAROS | mcpm.sh |
|---|---|---|
| Language and runtime | Single Go binary. No runtime to install. | Python, installed with pipx, uv, or brew. |
| Registries searched | Federated: modelcontextprotocol.io, glama.ai, lobehub.com, mcp.so, mcp.directory, Smithery, plus Pharos-hosted. | Its own curated registry, one source. |
| Clients supported | 16, including Claude Code, Codex, Gemini CLI, and Aider, across JSON, YAML, and TOML configs. | 10: Claude Desktop, Cursor, Windsurf, VS Code, Cline, Continue, Goose, 5ire, Roo Code, OpenCode. |
| Agent integration | The pharos-discovery MCP server makes the agent a first-class client. Installs are approval-gated. | Agents drive mcpm as a CLI subprocess, with non-interactive env vars. |
| Publishing | Search, install, publish, and manage. Full lifecycle. | Consume only. No publish flow. |
| Config adoption | pharos import adopts existing client configs into pharos.lock. | Client import into the v2.0 global config model. |
| Unique extras | Install receipts: a machine-readable record of exactly what changed in which client config files. | Profiles (named server groups), mcpm run and mcpm inspect for try-before-wire. |
| Install method | curl -fsSL https://getpharos.dev/install | sh | pipx, uv, or brew from the project's Homebrew tap. |
Language and runtime
PHAROS
Single Go binary. No runtime to install.
mcpm.sh
Python, installed with pipx, uv, or brew.
Registries searched
PHAROS
Federated: modelcontextprotocol.io, glama.ai, lobehub.com, mcp.so, mcp.directory, Smithery, plus Pharos-hosted.
mcpm.sh
Its own curated registry, one source.
Clients supported
PHAROS
16, including Claude Code, Codex, Gemini CLI, and Aider, across JSON, YAML, and TOML configs.
mcpm.sh
10: Claude Desktop, Cursor, Windsurf, VS Code, Cline, Continue, Goose, 5ire, Roo Code, OpenCode.
Agent integration
PHAROS
The pharos-discovery MCP server makes the agent a first-class client. Installs are approval-gated.
mcpm.sh
Agents drive mcpm as a CLI subprocess, with non-interactive env vars.
Publishing
PHAROS
Search, install, publish, and manage. Full lifecycle.
mcpm.sh
Consume only. No publish flow.
Config adoption
PHAROS
pharos import adopts existing client configs into pharos.lock.
mcpm.sh
Client import into the v2.0 global config model.
Unique extras
PHAROS
Install receipts: a machine-readable record of exactly what changed in which client config files.
mcpm.sh
Profiles (named server groups), mcpm run and mcpm inspect for try-before-wire.
Install method
PHAROS
curl -fsSL https://getpharos.dev/install | sh
mcpm.sh
pipx, uv, or brew from the project's Homebrew tap.
Where PHAROS wins
Searches everything, not one registry
Pharos queries six external registries plus Pharos-hosted packages and attributes every result to its source. mcpm sees only its own curated list, so a server that exists elsewhere is invisible to it.
The agent is a first-class client
The pharos-discovery MCP server lets an agent search, compare, and install servers itself, with approval gating on every install. mcpm's agent story is a non-interactive CLI subprocess.
One binary, and receipts for every change
There is no Python environment to maintain, and every install writes a machine-readable receipt of exactly what changed in which client config files. Rollbacks and audits read the receipt, not your memory.
Where mcpm.sh wins
17 months of maturity and a real community
mcpm.sh shipped in March 2025 and has collected 995 GitHub stars since. The curated registry reflects that feedback, and the edge cases show it.
The profiles model
Named server groups switch a whole stack between clients at once, on top of the v2.0 global config model. Pharos has no direct equivalent today.
Homebrew tap
Mac and Linux Homebrew users install with one brew command from the project's tap. Pharos installs through curl or go install instead.
Which should you pick
If you run one curated stack by hand, mcpm is the comfortable choice. Its registry is already vetted, its profiles flip a whole set of servers between clients in one move, and the Homebrew tap keeps updates boring. A lot of developers want exactly that, and for them mcpm is the better fit.
Pick Pharos if you want to search every registry instead of one, if your agents install their own servers and you want those installs approval-gated and receipted, or if you publish servers and need the management side, not just consumption. The single binary and the import flow make switching cheap, so trying it costs you one command.
Try Pharos
Install the CLI, then import your existing configs with pharos import so nothing you already set up is lost.
curl -fsSL https://getpharos.dev/install | shFrequently asked questions
Is Pharos free?
Yes. The Pharos CLI is open source under MIT, and every package in the registry installs free. You only need a GitHub-linked account to publish your own servers.
What is the difference between Pharos and mcpm?
Pharos is a single Go binary that searches seven registry sources, installs into 16 clients, publishes packages, and records an install receipt for every change. mcpm is a Python CLI with a curated single registry, 10 supported clients, and a profiles model for switching server groups.
Can Pharos import my existing MCP configs?
Yes. pharos import reads your existing client config files and adopts them into pharos.lock, so nothing you already wired gets lost. The install receipt then tracks every change from that point on.
Comparing against Smithery instead? See PHAROS vs Smithery.