PermissiveApache-2.0Tested by Geekflare

MCPHub review

Self-hosted MCP gateway that puts many MCP servers behind one endpoint, with groups, scoped keys, per-user credentials and a web dashboard

Data refreshedMethodologyHow we tested
Founder of Geekflare

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

MCPHub puts groups with tool subsets, scoped bearer keys, an OAuth server for clients, OIDC login, per-user credentials, OpenAPI servers and a tool-call log in the free Apache 2.0 build, with no paid edition holding features back. The catch is that roles are only admin or user, the activity log needs PostgreSQL, and the project published a long run of high and critical security advisories in 2026, so stay on the latest release.

Best for

Teams that want a free MCP gateway with a dashboard, scoped keys and OIDC login

Not for

Companies that need fine-grained admin roles or a vendor with a support contract

Pros

  • Groups can expose a chosen subset of tools from each server
  • Scoped bearer keys and a built-in OAuth server for MCP clients
  • OIDC sign-in for the dashboard is free
  • Each user can bind personal API keys to a shared server

Cons

  • Only two roles, admin and user
  • Many high and critical security advisories were fixed between August and October 2026
  • The tool-call activity log only works with PostgreSQL
Ask Sparkian

Is MCPHub right for your project?

Describe what you need and AI will check the fit against this review.

Or try:

MCPHub features and capabilities

Endpoints per group and server

Clients can connect to all servers, one group or one server, so each team or agent only sees the tools it needs.

Scoped keys and OAuth for clients

MCP endpoints require a bearer key by default, keys can be limited to groups or servers, and MCP clients can also sign in through the built-in OAuth server.

Per-user credentials

One shared server definition can run with each user's own API key or OAuth account, stored encrypted, so people do not share a service account.

OpenAPI services as tools

An OpenAPI spec URL or file can be added as a server, and its operations show up as MCP tools without writing a wrapper.

Smart routing

The $smart endpoint lets an agent search tools by meaning instead of loading every tool definition, which keeps the context small when many servers are connected.

One endpointCombines tools from several MCP servers behind one URL
Yes
Client authOAuth, OIDC or keys for the agents and users calling the gateway
YesBearer keys and a built-in OAuth 2.0 server
Per-tool accessAllows or denies individual tools per user, team or key
YesTool subsets per group, keys scoped to groups or servers
Server catalogA registry of approved MCP servers that teams can pick from
YesBuilt-in server market plus the official MCP Registry
API to MCPTurns existing REST or OpenAPI APIs into MCP tools
YesOpenAPI specs
Sandboxed serversRuns local MCP servers in containers or another sandbox
Nostdio servers run as child processes
GuardrailsChecks tool calls for prompt injection, secrets or PII
No

At a glance

Type
MCP gateway and control plane
Stack
TypeScript / Node.js
Databases
PostgreSQL
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.

MCPHub is free under Apache 2.0 with no paid edition, and the pricing page says the self-hosted version has all features, including smart routing, OAuth, groups and unlimited users. They also offer Production Support as a custom-priced pilot that covers architecture review, OAuth and OIDC setup, credential design, security hardening and Kubernetes readiness.

Self-hosting MCPHub

MCPHub gives no minimum requirements, and Smart Routing additionally needs PostgreSQL with pgvector and an embeddings API key.

New cloud server to ready

31 s

Memory in use at idle

121 MB of 4 GB

Median tool call

14.6 ms

Calls/s, 8 sessions

98

Peak memory

274 MB

Version tested

1.1.14 · Oct 30, 2026

  • The documented docker run was ready in 31 seconds and used 121 MB at idle. The groups block copied from its settings docs, an object of groups, crashed 1.1.14 at startup with "object is not iterable"; it started once I removed it.
  • /mcp answered 401 without a bearer key. It blocked my reference server on a private address until I set an admin owner on it, and it probed Geekflare's server for OAuth metadata before connecting normally.
  • Its default limit of 480 MCP requests a minute turned my load test into thousands of 429 errors. With MCP_RATE_LIMIT_MAX raised, tool calls took a median of 15 ms and 8 sessions made 99 calls a second, peaking at 274 MB.
  • Per-tool enabled switches in the settings cut the list from 40 tools to the two I kept.
Command and settings we ran
docker run -d --name mcphub -p 127.0.0.1:3000:3000 -v $PWD/data:/app/data \
  -e ADMIN_PASSWORD=… -e MCP_RATE_LIMIT_MAX=100000 samanhappy/mcphub:1.1.14

# data/mcp_settings.json
{
  "mcpServers": {
    "everything": { "type": "streamable-http", "url": "http://everything:3001/mcp",
                    "owner": "admin" },
    "geekflare":  { "type": "streamable-http", "url": "https://mcp.geekflare.com/<API_KEY>/mcp",
                    "tools": { "geekflare-dnsRecord": { "enabled": true } } }
  }
}
# Clients connect to http://localhost:3000/mcp, or /mcp/<group> and /mcp/<server>
OutputPassed1.1.14 · 40 tools · 0.9 s
Request: tools/call geekflare-dnsRecord with {"url": "geekflare.com"}, through the gateway to Geekflare's hosted MCP server
{
  "timestamp": 1793386432092,
  "apiStatus": "success",
  "apiCode": 200,
  "meta": {
    "url": "geekflare.com",
    "test": {
      "id": "748e5328-1fbd-4b85-b5d0-318794ec0011"
    }
  },
  "data": {
    "A": [
      "172.67.72.144",
      "104.26.1.30",
      "104.26.0.30"
    ],
    "AAAA": [
      "2606:4700:20::681a:11e",
      "2606:4700:20::ac43:4890",
      "2606:4700:20::681a:1e"
    ],
    "MX": [ … ],
    …

What you can do with MCPHub

One MCP endpoint for a team

Connect the team's MCP servers once and give each group of developers its own endpoint and bearer key.

Personal accounts on shared servers

Let each user bind their own GitHub or SaaS token to a shared server so tool calls run as that person.

Internal APIs as tools

Add an internal OpenAPI spec as a server so agents can call those endpoints as MCP tools.