October 13, 2026
MCP Yard: one door for all my MCP servers
My agents talk to a lot of things. Mail, calendar and contacts, Home Assistant, the UniFi controller, a chat server. Each of those is an MCP server, and each client (Claude Code, llooma, whatever comes next) wanted its own list of them, its own credentials and its own idea of which version was running.
So I put a yard in front of them. MCP Yard is a small,
self-hosted MCP hub. Clients connect to a single /mcp endpoint. The hub starts and supervises the
upstream servers, merges their tools, and only lets each client reach what its key allows.
The name comes from a switchyard, where trains are sorted onto the right track and only cleared ones get through. That is the whole job.
Why not an existing hub
I ran MCPHub for a while. It does the job, but it carries a lot: a marketplace, smart routing, a database for OIDC, a large UI. The lighter proxies go the other way and expose one route per server, so every client still has to declare every server. 1MCP merges everything into one endpoint, but has no web UI behind single sign-on and is still 0.x.
What I wanted sat in the small gap between them.
What it does
- One merged endpoint.
/mcpserves the tools of every server the key may see. - Known versions. Each server runs a package version the hub installed itself, not whatever
npx -yhappens to have cached. The UI shows when a newer one exists, updates it in one click, and rolls back if it fails to start. Pin a version in the file to freeze it. - Scoped keys. One bearer key per client, limited to a set of servers and tools.
- OIDC first. The web UI sits behind your identity provider (PocketID, Authelia, Keycloak). There is no local password.
- One file. Runtime settings come from the environment, servers from a single YAML file you can keep in git.
- Manageable over MCP. Keys you allow get the hub’s own
yard-*tools: read status and versions, restart or update a server, reload the configuration. An agent can look after the hub it runs through.
It ships as one small Docker image, built by GitHub Actions.
What it will not do
No marketplace, no semantic tool search, no multi-tenant user management, no database server. If a feature needs one of those, MCPHub is the better tool.
Try it
A local trial, reachable only from your machine and without sign-in:
# mcpyard.yaml
servers:
time:
package: { pypi: mcp-server-time }
memory:
package: { npm: "@modelcontextprotocol/server-memory", version: "2026.8.31" }
docker run -d --name mcpyard -p 127.0.0.1:3000:3000 -e MCPYARD_UI_AUTH=none \
-v ./mcpyard.yaml:/config/mcpyard.yaml -v mcpyard-data:/data \
ghcr.io/cedhuf/mcpyard:latest
Open http://localhost:3000, create a key, then point a client at /mcp:
claude mcp add --transport http mcpyard http://localhost:3000/mcp \
--header "Authorization: Bearer yard_..."
For a real deployment behind Caddy and an identity provider, the documentation covers the rest.
It is early. Everything above works, and I use it every day, but expect rough edges before 1.0. The source is on GitHub, under the MIT license.