Single-container FastAPI + React UI plus mongo:7. Image bundles Node 20 + uv/uvx so npx/uvx MCP servers run; package caches persisted under app-data. 127.0.0.1 /api healthcheck; admin email/password form fields + auto-generated JWT secret.
2.1 KiB
2.1 KiB
MCP Manager
A self-hosted control panel for your Model Context Protocol (MCP) servers. Add, edit, run and monitor servers from one dashboard, then export a ready-to-paste Claude configuration.
Why this exists
MCP servers are scattered across npx, uvx, and one-off HTTP/SSE endpoints, and wiring them into Claude by hand is tedious. MCP Manager keeps them in one place behind a login and turns any local stdio server into an HTTPS-reachable SSE endpoint you can drop straight into a Claude config.
Features
- Add stdio, SSE, and HTTP MCP servers with custom command, args, and env
- Launch and stop stdio servers as managed processes, with live status
- Built-in SSE bridge — exposes each stdio server over HTTPS:
GET https://<domain>/api/mcp/<name>/sse?token=<token>POST https://<domain>/api/mcp/<name>/messages?session_id=...&token=<token>
- Per-server auto-generated
access_token; unauthenticated requests get401 - Claude Config tab emits copy-paste-ready stdio and HTTPS/SSE blocks
- Admin login (JWT cookie); config snapshot + running state persisted to disk
- Single container + MongoDB; the React UI and the
/apiare served on one port
Runtime
- Node 20 and uv / uvx ship inside the image, so the common npx- and uvx-based MCP servers run out of the box.
- All package caches and installs (
npm,npx,uvtools, global npm prefix, pip) live under/data, which is mounted to Runtipi app-data — so servers download once and survive container restarts and updates.
First run
- Install and set Admin email + Admin password (the JWT secret is generated).
- Toggle Expose app and assign a domain — Traefik issues TLS automatically.
- Add your MCP servers, start the stdio ones, and copy the generated Claude config.
Backup
Everything needed to rebuild lives under app-data:
servers.json— full server configuration snapshot (re-seeded if the DB is empty on boot)running_state.json— which stdio servers were running (auto-restarted on boot)- the MongoDB volume — accounts and live server records