Give compatible AI clients authenticated access to multiple Model Context Protocol (MCP) servers through one gateway. Powered by MCPHub and Caddy, with Streamable HTTP and SSE transports.
The Self-Hosted AI Builder's Guide
Practical guidance for deployment, security, backups, and everyday operation.
AI client → gateway → tools
One connection. Your permitted tools.
CLIENT ENDPOINT
/mcp · Streamable HTTP
SERVER ROUTES
/mcp/fetch · additional servers you configure
MCP
Streamable HTTP
SSE
Bearer auth
Illustrative connection map. A client or agent decides when to call tools; server permissions and external credentials remain your responsibility.
A focused service for your applications
A shared route to your MCP servers.
Connect applications to the tool servers you configure, with gateway authentication and a central place to manage server connections. Keep permissions and approval rules in your client as well.
Multi-server gateway
Connect through the aggregated /mcp endpoint or a per-server route such as /mcp/fetch. Your client must support the chosen transport.
Streamable HTTP and SSE
Expose compatible MCP servers to HTTP clients using Streamable HTTP or SSE. This is an MCP gateway, not a separate LLM inference service.
Persistent authentication
Caddy protects API access with a Bearer token. Fresh starts generate and store a key in the data volume; dashboard administrator credentials are managed separately.
A selection of tool integrations
Packaged integrations include fetch, filesystem, GitHub, Brave Search, Git, PostgreSQL, memory, and sequential thinking. Enable and configure the servers you need.
Configuration and dashboard
Start with an env file and manage persistent server configuration through MCPHub. Dashboard access also needs the gateway’s authentication; see the setup guide.
CPU deployment and storage
Run on amd64 or arm64 Linux hosts. Persistent data retains gateway configuration and credentials. No GPU is required for the gateway itself.
This example binds the gateway to the Docker host. Fetch is enabled by default; additional integrations may need credentials, mounts, or configuration.
Docker on a supported Linux host
At least 512 MB of available RAM, plus capacity for selected tool servers
An MCP client supporting Streamable HTTP and authentication headers
This is an authenticated protocol check. For actual tool use, configure your MCP client with this endpoint and Bearer header and follow its session-handling instructions.
Part of a larger toolkit
Build your Self-Hosted AI Stack
UplinkCrate is also available as part of Self-Hosted AI Stack.
Deploy local models, chat, document processing, voice, and AI tools
together, or choose a smaller configuration for your needs.
The UplinkCrate project is open source under the MIT License. You provide hardware or cloud hosting and pay associated costs. Models, dependencies, and external providers retain their own licenses and terms.
Is UplinkCrate an autonomous agent?
No. It connects MCP clients to tool servers. A client or agent runtime supplies the model, decides which tools to call, and enforces its own approvals and stopping rules.
Which tools work immediately?
The fetch server is enabled by default. Other packaged integrations require the relevant configuration, credentials, or mounted paths. Availability does not grant permission to access arbitrary files or accounts.
Does self-hosting keep every tool request local?
No. Fetch, search, GitHub, databases, and other integrations can contact external systems. Check destinations, credentials, and permissions for each server and client.
How should I grant filesystem access?
Mount only the paths a tool needs, use read-only access when appropriate, and restrict the server’s allowed directories. Avoid exposing your whole host filesystem.
Can I open the dashboard in a browser?
The dashboard sits behind gateway Bearer authentication and has its own administrator credentials. Follow the documented authentication setup rather than assuming a plain browser visit is sufficient.
The image includes optional aggregate usage counts.
See the usage-count documentation;
set MCP_DISABLE_USAGE_COUNTS=1 to disable them.
Connect the tools you need. Keep their permissions deliberate.