How to aggregate MCP servers with a personal hub

If you use more than one AI coding tool, you've felt this pain. An MCP hub solves it by making you configure each server exactly once.

Published · Updated

The problem: MCP configuration is per-tool

The Model Context Protocol is great at what it does — it lets any AI agent call any tool as long as they speak the protocol. But the configuration model assumes each AI client manages its own list of servers.

In practice, if you use a filesystem MCP server, a database MCP server, a web scraper MCP server, and a screenshot MCP server across four different AI coding tools, you end up with this:

Sixteen entries total, all hand-maintained. When one of those servers updates its API key or args, you have four places to fix.

What a personal MCP hub does

A personal MCP hub is itself an MCP server — but instead of exposing its own tools, it aggregates the tools of other MCP servers and re-exposes them behind one endpoint. You configure all your upstream servers in the hub, then point each AI tool at the hub.

From the AI tool's perspective, it's connected to exactly one MCP server. From your perspective, you have one place to add, remove, or reconfigure servers.

Configure once, use everywhere

Add a new MCP server to your hub. Every AI tool you use immediately has access. Revoke it. Every AI tool loses access. No hunting through four config files.

How AppContext's MCP Hub works

AppContext's built-in MCP Hub is a free feature that ships with the core app. Here's how it's structured:

Upstream connections

You register upstream MCP servers in ~/.appcontext/servers.json or via the Servers tab in the app window. Each entry has a transport:

Most local MCP servers are stdio, which is still one of the two standard transports in the current MCP specification (revision 2026-07-28); the other is Streamable HTTP. AppContext connects to remote upstreams over SSE, and it serves its own endpoint at http://localhost:7777/sse over SSE as well — a transport Claude Code and Cursor still support, and which Claude Code now labels deprecated in favour of HTTP where a server offers both.

Tool aggregation with namespacing

When an upstream server exposes a tool like read_file, AppContext re-exposes it as filesystem:read_file (using the server name as a prefix). This avoids collisions when multiple upstream servers define tools with the same name.

When your AI agent calls filesystem:read_file, AppContext routes the call to the right upstream server, waits for the response, and returns it. The AI doesn't know or care that there's a hub in the middle.

Crash recovery

If an upstream server crashes (stdio server segfaults, SSE connection drops), AppContext reconnects automatically with exponential backoff. When it's back, AppContext emits an MCP tools/list_changed notification so connected AI clients refresh their tool list.

One-click import

If you already have MCP servers configured in Claude Code, Cursor, or Claude Desktop, AppContext can import them in a single click from the Servers tab — no hand-editing of JSON.

Setting up the hub

1. Install AppContext

Download from appcontext.dev, install to /Applications, sign in.

2. Add your upstream servers

Open the app window, go to Servers, and either:

3. Point your AI tools at AppContext

Add AppContext as the only MCP server in each of your AI tools:

{
  "mcpServers": {
    "appcontext": {
      "url": "http://localhost:7777/sse",
      "type": "sse"
    }
  }
}

Your AI tools now have access to every MCP server you added to AppContext, plus AppContext's own visual-context tools.

Inspecting the hub

Three built-in tools give you programmatic visibility:

You can ask any connected AI agent "what's in my MCP hub?" and it will call hub_status for you.

Why the hub is free

Running the hub itself costs AppContext nothing — it's local process orchestration on your machine. The Pro tier on AppContext gates the visual-context features (Live View, Metro log streaming, advanced policies), not hub aggregation. The hub is valuable on its own, and we don't want to put a paywall in front of the core "configure once, use everywhere" workflow.

What comes next

An MCP hub is the natural place to enforce authorization. Because every tool call from every AI agent routes through the hub, you have one chokepoint to say "this tool is off-limits" or "this tool can only be called 5 times per minute." That's covered in the AuthZ for MCP servers guide.

Frequently asked questions

What is a personal MCP hub?

A personal MCP hub is itself an MCP server that aggregates the tools of other MCP servers and re-exposes them behind a single endpoint. You register your upstream servers once in the hub, then point every AI coding tool at the hub instead of maintaining a separate server list per tool.

How does a hub avoid tool name collisions between servers?

AppContext namespaces every proxied tool with its server name, so a read_file tool from a server named filesystem is re-exposed as filesystem:read_file. Calls are routed back to the originating upstream server.

Is the MCP Hub free?

Yes. Aggregating servers, importing them from Claude Code, Cursor, or Claude Desktop, and starting or stopping them are all free. AppContext's Pro tier covers the visual-context features — Live View screenshots, browser console and Metro logs — and the advanced authorization controls.

One config. Every AI tool.

Download AppContext and move your MCP server list out of four config files and into one place.

Get AppContext Free