Agent MCP
Add Pharos to any MCP-compatible agent with one command. Auto-configures 16 clients across JSON, YAML, and TOML. 6 MCP tools, 133,000+ packages.
What it is
The Pharos MCP Server bridges any MCP-compatible agent to the Pharos registry — a catalog of MCP servers synced from modelcontextprotocol.io / glama.ai / lobehub.com / mcp.so / mcp.directory / Smithery and other registries. Users add it once and their agent can search, install, and call MCP tools. No agent modification needed. The server speaks the MCP protocol natively, so any client that supports MCP servers (Claude Desktop, LibreChat, Cursor, and more) works out of the box. Auto-config detects 16 clients across JSON, YAML, and TOML config formats. Pharos is the install client and protocol layer, not a competing registry. Default /v1/search will hide packages that cannot be installed (no endpoint, command, bin, or runtime+package). That filter lands with the next registry deploy — the live search index may still return incomplete hits until then.
Key features
Zero Agent Changes
Works with any agent that supports MCP servers. No SDK integration needed.
Two Tool Modes
CLI mode (default) exposes pharos_search, pharos_info, pharos_install, pharos_remove, pharos_list, plus daemon/list_tools/call_tool/check_approval. Apps mode (PHAROS_MCP_APPS=true) swaps in pharos_search_apps, pharos_info_apps, pharos_install_apps, pharos_remove_apps, pharos_list_apps, and pharos_publish_apps. Same non-A/B tools in both modes. pharos_connect and pharos_approve are not MCP tools.
Apps UI Resources
Apps mode returns compact tool JSON. Interactive HTML lives on ui://pharos/results/{token}, ui://pharos/approval/{token}, and related resources, rendered in a sandboxed iframe. Not a big html field in the tool payload.
Click-to-Approve Installs
Approval is POST /approve, a custom HTTP route invisible to the model. LibreChat iframes use sandbox="allow-scripts" (no same-origin). The button postMessages the host proxy. After install, the agent polls pharos_check_approval. A physical click is required for end-user chatbots.
CLI Delegation
Install operations delegate to the pharos CLI binary, bundled in the same pip package.
Proven End-to-End
Tested with GLM-5.2 through LibreChat. The agent called pharos_search_apps and got 8 real results.
How it works
- 1
Run pip install pharos-mcp
One command installs the MCP server, the pharos CLI binary, and auto-configures up to 16 detected MCP clients (JSON, YAML, and TOML formats).
- 2
Restart your agent
MCP clients discover servers on launch. Restart your agent and it sees the Pharos tools automatically: CLI mode by default, or Apps mode when PHAROS_MCP_APPS=true.
- 3
Ask for a capability
Natural language in, tools called out. The agent searches, installs, and (in Apps mode) surfaces an Approve/Deny iframe the user must click before the install completes.
Architecture
The MCP server imports PharosClient from the SDK for search and install operations. Install operations delegate to the pharos CLI binary. This means the MCP server is a bridge: it uses the SDK for discovery and the CLI for local installation. Tool results are compact JSON. Interactive HTML for approvals, results, and OAuth lives on ui://pharos/results/{token}, ui://pharos/approval/{token}, and related resources rendered by the host. Not returned as a large html field. Install approval is POST /approve, invisible to the model. After the user clicks, the agent polls pharos_check_approval.
Get started
One command. The server, the CLI, and your agent config, all at once:
pip install pharos-mcp