mcpstore: an MCP service manager built with Rust
mcpstore
A Rust manager that brings MCP services under one daemon: a CLI, a web UI, an HTTP API and SDKs for Python and Rust
- 432 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The manager starts a service with a launch command as a process on your machine, so add only trusted commands
- The HTTP API from `mcpstore api` manages services and exposes their tools to anyone who can reach the port
Install
In your terminal, with SkillFoxx CLI
npx skillfoxx add cli/mcpstoreDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The manager starts a service with a launch command as a process on your machine, so add only trusted commands
- The HTTP API from `mcpstore api` manages services and exposes their tools to anyone who can reach the port
This is third-party code. Review the repository files before installing.
What it does
mcpstore connects MCP services, tracks their state and hands their tools to agents and applications. One daemon keeps the configuration, telemetry, gateway and plugins in `~/.mcpstore`, and the CLI, the desktop app and the HTTP API work as shells over it. The architecture resembles the control and data planes of Kubernetes: the control plane orchestrates services and the data plane handles invocations. From the terminal a service is added with `mcpstore add wiki https://example.com/mcp`, then inspected with `mcpstore list`, attached with `mcpstore connect wiki` and removed with `mcpstore remove wiki`. `mcpstore config show` prints the local configuration, `mcpstore web` opens the web UI and `mcpstore api --host 127.0.0.1 --port 1820` starts the HTTP API. On a weak machine you can attach only the data plane and call already shared MCP services without local maintenance. The Python SDK (`pip install mcpstore`) and the Rust library (`cargo add mcpstore`) embed the manager in an application. Tools can be fetched in the form for LangChain, LangGraph, OpenAI, AutoGen, CrewAI and LlamaIndex, and `for_agent(agent_id)` creates an independent service space per agent. The desktop app, in beta, shows services, their tools and parameters and offers trial calls.
Who it is for. Agent developers and platform teams with many MCP services who need to manage them from one place.
Good fit when
- There are many MCP services and their list, state and restarts have to be handled with `list`, `connect` and `remove`
- Each agent needs its own set of services, as with `for_agent(agent_id)` in the Python SDK
- An agent on LangChain or CrewAI gets MCP tools through ready adapters
- A weak machine needs only the data plane while the services run on another node
- An HTTP API for managing services from other programs is needed
Not a fit when
- You only need to attach one server to Claude Code: an entry in the client settings is enough
- A catalog for finding and installing MCP servers is needed: mcpstore manages services you have already chosen
- Neither the npm package nor a binary release exists for your platform: ready builds cover macOS on arm64, Linux x64 and arm64 and Windows x64
Example request
Add a wiki service at https://example.com/mcp to mcpstore, connect it and show the list of its toolsLimitations
The desktop app is marked beta. The README writes the installation as `npm install -g ip2a@mcpstore`, while `npm/packages/mcpstore/package.json` names the package `@ip2a/mcpstore`, so use the second name or the `install.sh` script.
When a service with a launch command is added, for example `npx -y @modelcontextprotocol/server-github`, the manager starts that process on your machine. For the HTTP API the README example uses the address `127.0.0.1` and port `1820`; the README says nothing about built-in API authorization.
How to disable. Remove services with `mcpstore remove`, stop the daemon and uninstall the package with `npm uninstall -g @ip2a/mcpstore`. The state lives in `~/.mcpstore`.
FAQ
How do I install mcpstore?
Run `npm install -g @ip2a/mcpstore` or `curl -fsSL https://raw.githubusercontent.com/ip2a/mcpstore/main/install.sh | bash`. The README says `ip2a@mcpstore`, but the npm package in the repository is named `@ip2a/mcpstore`.
Which commands matter most?
`mcpstore add`, `list`, `connect` and `remove` manage services, `config show` prints the configuration, `web` opens the web UI and `api --host 127.0.0.1 --port 1820` starts the HTTP API.
Can mcpstore be used from Python?
Yes, through the SDK: `pip install mcpstore`, then `MCPStore.setup_store()` and `store.for_store().add_service(...)`. Tools are available in the form for LangChain, LangGraph, OpenAI, AutoGen, CrewAI and LlamaIndex.
Is there a desktop app?
Yes, in beta. It attaches to a running local daemon or starts the bundled binary and then loads its web UI. Builds for macOS, Windows and Linux are in GitHub Releases.
How do I separate services between agents?
With `store.for_agent("agent1")`: each agent gets its own space of services and tools. The shared space stays in `store.for_store()`.
Discussion
No questions or reviews yet.
Related
CLI toolsA universal MCP CLI client from Apify: persistent sessions, OAuth, JSON output for scripts and shell access to any MCP server for agents
A mail server for agents sharing one repository: messages, threads, file reservations and a 16-screen TUI
A CLI for any MCP server: list and call tools, resources and prompts, run mock and proxy modes, guard access and manage agent configs
A CLI that turns any MCP server, OpenAPI spec or GraphQL endpoint into commands at runtime, with no codegen
A zero-dependency Python CLI: one catalog of MCP servers and skills for every agent, with only a compact index in context
An MCP bridge: a single run_python tool runs code in a container and calls your MCP servers
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Repository stars | Main difference |
|---|---|---|---|
| mcpstore: an MCP service manager built with Rust (this card) | no | 432 | |
| MCPM | no | 1,021 | an MCP package manager and registry that finds, adds and configures servers for clients; this one is a daemon with control and data planes, an HTTP API and SDKs for embedding |
| MCPorter | no | 5,108 | calls MCP servers from a terminal and scripts; this one is a persistent daemon that keeps service state and hands tools to agents |
README in short
The README briefly explains the architecture with control and data planes and gives installation commands, CLI examples, a description of the desktop app and detailed Python and Rust SDK examples with a table of common APIs. MIT license.