
ToolHive review
Runs each MCP server in its own container, locally or on Kubernetes, with a virtual MCP gateway, a registry server and Cedar policies per tool
Chandan Kumar is a founder of Geekflare. He is a technology enthusiast and entrepreneur who loves to help businesses and people around the world. Chandan has worked at BNP Paribas, Citibank, Deutsche Bank, Motorola, and HP. He’s got an in-depth understanding of business software and IT infrastructure.
Verdict
ToolHive is a good fit for running untrusted or local MCP servers: each one gets its own container with network isolation on by default, and on Kubernetes the operator adds a virtual MCP gateway, Cedar rules per tool and audit logs. The catch is that the free version has no admin console, so access is set through CRDs, CLI flags and Cedar files, and the pre-1.0 project ships several releases a week alongside a long list of security advisories.
Best for
Platform teams that run MCP servers on Kubernetes and want containers and policy as code
Not for
Teams that want a web console to manage users, catalog and access without Kubernetes
Pros
- Every server runs in its own container with network isolation on by default
- Virtual MCP server combines many servers behind one endpoint, on Kubernetes or locally
- Cedar policies can allow or deny single tools by user, role or group claim
- Gateway, registry, operator and auth are all in the Apache 2.0 version
Cons
- No admin console in the free version; configuration is CLI flags, CRDs and policy files
- Over 40 security advisories in September and October 2026, one of them a critical auth bypass
- Pre-1.0 with several releases a week and no supported older versions outside Enterprise
Is ToolHive right for your project?
Describe what you need and AI will check the fit against this review.
ToolHive features and capabilities
Containers with network isolation
Each MCP server runs in a container behind an egress proxy and DNS filter, so a server can only reach the hosts and files its permission profile allows.
Virtual MCP server
Local containers and remote SaaS MCP servers sit behind one endpoint with one sign-in, and teams can rename, filter or wrap tools and build multi-step workflows across them.
Cedar policies and webhooks
Rules written in Cedar decide which users, roles or groups may call each tool, and a webhook can hand the decision to an external policy service.
Registry Server
A PostgreSQL-backed catalog of approved MCP servers and skills that syncs from the official MCP registry or Git, so developers install vetted servers by name.
Kubernetes operator
MCP servers, remote proxies and gateways are declared as Kubernetes resources with rate limits per user, OpenTelemetry traces and audit logs.
- One endpointCombines tools from several MCP servers behind one URL
- YesVirtual MCP server, on Kubernetes or via the CLI
- Client authOAuth, OIDC or keys for the agents and users calling the gateway
- YesOAuth 2.1 and OIDC; virtual API keys are Enterprise
- Per-tool accessAllows or denies individual tools per user, team or key
- YesCedar rules per tool on user, role or group claims
- Server catalogA registry of approved MCP servers that teams can pick from
- YesRegistry Server; org-wide catalog policies are Enterprise
- API to MCPTurns existing REST or OpenAPI APIs into MCP tools
- No
- Sandboxed serversRuns local MCP servers in containers or another sandbox
- YesContainer per server, network isolation on by default
- GuardrailsChecks tool calls for prompt injection, secrets or PII
- PartlyWebhooks and argument rules; no built-in scanner
At a glance
- Type
- MCP server manager and gateway
- Stack
- Go
- Databases
- PostgreSQL, Redis
- Licence terms
- ToolHive itself is Apache 2.0, including the CLI, desktop app, operator, vMCP and Registry Server. The admin console, Connector Gateway, AI Gateway, turnkey Okta and Entra ID setup, group-to-role mapping and long-term supported versions are only in Stacklok Enterprise, a separate paid platform.
- SSO
- Free edition
- Roles and permissions
- Free edition
- Audit logs
- Free edition
Free vs paid editions
What you get when you self-host, and what needs a paid plan.
ToolHive is free under Apache 2.0, with the CLI, desktop app, Kubernetes operator, virtual MCP server, Registry Server, OIDC authentication, Cedar policies and audit logging. Stacklok Enterprise is a separate self-hosted platform that adds an admin console, a Connector Gateway and an AI Gateway, ready-made Okta and Entra ID setup, mapping of IdP groups to roles, central audit reporting, supported release lines and SLA support.
Self-hosting ToolHive
ToolHive gives no minimum requirements and says they depend on the MCP servers you run; it needs Docker, Podman, Colima or Rancher Desktop locally, or a supported Kubernetes version for the operator.
New cloud server to ready
10 s
Memory in use at idle
654 MB of 4 GB
Median tool call
13.4 ms
Calls/s, 8 sessions
154
Peak memory
654 MB
Version tested
0.59.0 · Oct 30, 2026
- The CLI pulled the reference server from its registry and started it with an egress proxy and a DNS container beside it, and a local vMCP was serving both servers about 10 seconds after I downloaded thv.
- thv run treated Geekflare's remote server as needing OAuth and waited for a browser login, so I added it to the vMCP config as a backend instead.
- When I named my workload everything, ToolHive deleted an existing container with that name that it had not created and put its own in its place, without asking. Check names before you run it on a shared Docker host.
- Tool calls through vMCP took a median of 13 ms and 8 sessions made 154 calls a second. The idle total was 654 MB, about 225 MB of it the thv proxy process for one server, and a per-workload filter cut the list to the two tools I named.
thv group create gw
thv run --group gw --name everything io.github.stacklok/everything # runs in a container
thv vmcp init --group gw --output vmcp.yaml
# then added Geekflare as a remote backend and a tool filter:
# backends:
# - name: geekflare
# url: https://mcp.geekflare.com/<API_KEY>/mcp
# transport: streamable-http
# aggregation:
# tools:
# - workload: everything
# filter: ["echo"]
thv vmcp serve --config vmcp.yaml # http://127.0.0.1:4483/mcp{
"timestamp": 1793385307315,
"apiStatus": "success",
"apiCode": 200,
"meta": {
"url": "geekflare.com",
"test": {
"id": "f66e64da-cb63-4763-ae9d-a36d71d3a492"
}
},
"data": {
"A": [
"104.26.0.30",
"104.26.1.30",
"172.67.72.144"
],
"AAAA": [
"2606:4700:20::ac43:4890",
"2606:4700:20::681a:1e",
"2606:4700:20::681a:11e"
],
"MX": [ … ],
…What you can do with ToolHive
Safe local MCP servers for developers
Run npm, PyPI and Docker MCP servers from the desktop app in containers that can reach only the hosts each server needs.
One MCP endpoint per team on Kubernetes
Deploy servers with the operator and put a virtual MCP server in front, with OIDC sign-in and Cedar rules for each team's tools.
Approved server catalog
Run the Registry Server with a list of vetted MCP servers so developers install those instead of copying configs from the internet.