Skip to main content
Glama

MCP Hub — All-in-One-MCP-Server- und Connector-Ökosystem

Selbst gehosteter Hub, der MCP-Connectors (Model Context Protocol) in einem einzigen Endpunkt für Ihre KI-Clients bündelt – mit einer App-Store-ähnlichen Weboberfläche, Ein-Klick-Installationen, Live-Logs und Health-Monitoring.

Claude Desktop / Cursor ──Bearer key──▶  ┌─────────────────────┐
                                        │   MCP Hub (:3000)    │──▶ github (npx)
                                        │  /mcp   /api  Web UI │──▶ postgres (npx)
Web browser ──session cookie──▶         └─────────┬───────────┘──▶ slack (npx) …
                                                  ▼
                                            PostgreSQL 16

Quick start

A. Lokal / einfaches Docker

cp .env.example .env
# edit .env — set POSTGRES_PASSWORD (and optionally MASTER_ENCRYPTION_KEY / SESSION_SECRET)
docker compose up -d --build

B. Portainer (Web-Editor)

  1. Stacks → Add stack → Web editor und fügen Sie portainer-stack.yml ein.

  2. Fügen Sie eine Umgebungsvariable POSTGRES_PASSWORD hinzu (unter Umgebungsvariablen), bevor Sie bereitstellen.

  3. Bereitstellen – das Image wird von Docker Hub (xeniak10/mcp-hub:latest) gezogen, kein Build erforderlich.

Öffnen Sie http://:3000 – beim ersten Besuch werden Sie aufgefordert, das Administratorkonto zu erstellen (Bootstrap). Dann:

  1. Gehen Sie zu Marketplace, installieren Sie z. B. GitHub, fügen Sie ein Token ein → der untergeordnete Prozess des Connectors startet im Hintergrund.

  2. Gehen Sie zu Settings → erstellen Sie einen API-Schlüssel.

  3. Richten Sie Ihren KI-Client auf den Hub aus:

{
  "mcpServers": {
    "hub": {
      "url": "http://localhost:3000/mcp",
      "headers": { "Authorization": "Bearer mcp_YOUR_KEY" }
    }
  }
}

Alle Connector-Tools erscheinen mit Namensraum wie github__create_issue, postgres__query, …

Related MCP server: CbetaMCP

Was Sie bekommen

  • Marketplace — 71 integrierte Connectors für Entwickler (GitHub, GitLab, Postgres, Kubernetes, Sentry…) und Business-Teams – CRM (Salesforce, HubSpot, Pipedrive), ERP/Buchhaltung (Odoo, QuickBooks, Xero), Helpdesk (Zendesk, Freshdesk, ServiceNow), Kommunikation (Microsoft 365, E-Mail IMAP/SMTP, Twilio, Slack, Teams-Dateien), Produktivität (Google Sheets, Notion, Airtable) und Observability (Dynatrace). Ein-Klick-Installation, schema-basiertes Konfigurationsformular, Hintergrund-Start von Abhängigkeiten über npx/uvx im Hub-Container. Suche, Kategoriefilter und Sortierung (offizielle zuerst / am häufigsten installiert / Name).

  • Community-Connector-Repos – fügen Sie eine öffentliche GitHub-Repo-URL im Marketplace ein (Abschnitt „Community repos“) und jedes gültige Connector-Manifest darin wird abgerufen, validiert und in Ihren Katalog übernommen (mit Namensraum community:owner/repo/<id>, offline im Datenvolumen zwischengespeichert). Eine index.json im Repo-Stammverzeichnis listet Dateien explizit auf; andernfalls werden *.json auf Stammebene geprüft. Neue Einträge erscheinen nach einem Hub-Neustart.

  • Benutzerdefinierte Connectors – legen Sie ein JSON-Manifest in ./connectors/ (oder das connectors-Volume) und es erscheint nach einem Neustart im Marketplace. Siehe connectors/example.json.example.

  • Dashboard – Live-Status-Badges (läuft / startet / Fehler / gestoppt), Statistik-Kacheln, Instanzsuche, Bulk-Restart all / Stop all mit Bestätigung.

  • Connector-Detail – Instanzen inline umbenennen, visueller Konfigurationseditor, Live-Tool-Vorschau (tools/list über den laufenden Prozess) mit Klick-zum-Kopieren von Toolnamen, Echtzeit-Log-Viewer (WebSocket-Tail) mit Level-/Textfiltern, Follow-Modus und Log-Download.

  • Helles & dunkles Design – Umschalter in der Seitenleiste; wird pro Browser gespeichert.

  • Tastaturkürzel/ fokussiert die Suche · g d Dashboard · g m Marketplace · g s Einstellungen · Esc schließt Dialoge/entfokussiert die Suche.

  • PWA-bereit – installierbares Manifest + SVG-Favicon.

  • Backup & Wiederherstellung – Ein-Klick-Export aller installierten Connectors + Konfigurationen in eine JSON-Datei; Import stellt sie auf einer frischen Instanz wieder her (Einstellungen-Seite).

  • Kontoverwaltung – Passwort ändern (meldet alle anderen Geräte ab), aktive Sitzungen mit IP/User-Agent auflisten, beliebige Sitzung widerrufen.

  • Fehlerbenachrichtigungen – setzen Sie ERROR_WEBHOOK_URL und der Hub sendet eine JSON-Benachrichtigung, sobald ein Connector in den Fehlerzustand wechselt (funktioniert mit Slack, Discord, Teams, generischen Empfängern; 5-Minuten-Cooldown pro Connector).

  • Watchdog – abgestürzte Prozesse starten mit exponentiellem Backoff neu; Health-Ping alle 30 s; Boot-Wiederherstellung stellt alles wieder her, was vor dem Neustart aktiviert war.

  • Updates – Einstellungen zeigt Ihre aktuelle Version und prüft GitHub-Releases / Docker-Hub-Tags alle 6 Stunden (oder bei Check now). Wenn eine neue Version veröffentlicht wird, erhalten Sie per Klick eine Kopie des genauen Upgrade-Befehls für Ihren Bereitstellungstyp.

  • Optionale Auto-Updates – aktivieren Sie den Watchtower-Sidecar mit docker compose --profile autoupdate up -d: Er zieht stündlich neuere xeniak10/mcp-hub-Images und erstellt nur den App-Container neu (er ist label-basiert, berührt also nie Ihre Datenbank).

  • Monitoring & Betrieb – nicht authentifiziertes GET /healthz für Uptime-Probes; GET /api/meta meldet Version + Git-Commit (in der Fußzeile der Einstellungen angezeigt); API-Key-Traffic auf /mcp ist auf 120 Anfragen/min pro Schlüssel begrenzt.

  • Sicherheit – AES-256-GCM-verschlüsselte Konfigurationen im Ruhezustand, argon2id-Passwörter, Cookie-Sitzungen, gehashte API-Schlüssel, Login-Rate-Limiting, Audit-Log.

Konfiguration

Variable

Erforderlich

Beschreibung

POSTGRES_PASSWORD

Passwort für das gebündelte PostgreSQL

MASTER_ENCRYPTION_KEY

openssl rand -hex 32. Wird bei Leerheit automatisch nach /app/data/master.key generiert

SESSION_SECRET

Leer = zufällig pro Start (Benutzer werden bei Neustart abgemeldet)

APP_PORT

Host-Port (Standard 3000)

LOG_RETENTION_LINES

Ringpuffergröße pro Connector (Standard 5000)

LOG_RETENTION_DAYS

Log-Altersgrenze (Standard 7)

ERROR_WEBHOOK_URL

URL zum Senden von JSON-Benachrichtigungen, wenn ein Connector in den Fehlerzustand wechselt

Volumes: pgdata (Datenbank), app-data (Master-Schlüssel + Zustand), npx-cache (Connector-Abhängigkeits-Cache – hält Neustarts schnell).

Aktualisierung

Der Hub kann seinen eigenen Container nicht ersetzen, daher sind Updates ein Einzeiler auf dem Host:

docker compose pull app && docker compose up -d --no-deps --force-recreate app

(Einstellungen → Updates kopiert dies für Sie, wenn eine neue Version verfügbar ist. Bei Portainer verwenden Sie Stack → Pull and redeploy.) Möchten Sie es völlig automatisch?

docker compose --profile autoupdate up -d

Das startet Watchtower neben dem Hub; jede Stunde prüft es Docker Hub und erstellt den App-Container neu, wenn ein neueres Image existiert (--cleanup entfernt alte Images). Ihre Daten liegen in Volumes, daher sind Updates verlustfrei.

Entwicklung

npm install
npm run dev        # server (watch) + web (vite dev server on :5173, proxied /api + /mcp)
npm run typecheck  # all workspaces
npm run build      # shared → server → web

Stack: npm workspaces · Fastify 5 · @modelcontextprotocol/sdk · PostgreSQL 16 · Vite + React 18 + Tailwind CSS v4 + TanStack Query.

Layout

packages/
  shared/   types shared by server & web (manifests, API DTOs, WS events)
  server/   Fastify app: auth, registry (connector manifests), ConnectorManager,
            unified /mcp proxy, log pipeline, SQL migrations
  web/      React SPA served statically by the server in production

Hinzufügen eines Connectors

Ohne Neubau (empfohlen): Kopieren Sie connectors/example.json.example nach connectors/<your-id>.json, füllen Sie das Manifest aus (Befehls-argv mit {env.NAME}-Platzhaltern + JSON-Schema-Konfigurationsformular) und starten Sie den Hub neu. Ungültige Dateien werden mit einer Warnung in den Logs übersprungen; benutzerdefinierte IDs, die mit integrierten kollidieren, werden ignoriert.

Aus einem GitHub-Repo: Marketplace → Community repos → fügen Sie owner/repo (oder eine vollständige github.com-URL) ein. Der Hub ruft eine index.json aus dem Repo-Stammverzeichnis ab (Array von Dateipfaden) oder fällt auf *.json-Dateien auf Stammebene zurück, validiert jede gegen dasselbe Schema wie Volume-Manifeste und speichert sie unter community:owner/repo/<id>-IDs – so können sie niemals integrierte überschatten und funktionieren nach dem ersten Abruf offline weiter. Verwalten/Entfernen Sie Repos im selben Abschnitt; Änderungen gelten beim nächsten Neustart.

Integriert: Erstellen Sie packages/server/src/registry/connectors/<id>.ts, das ein ConnectorManifest exportiert, und registrieren Sie es in src/registry/index.ts. Es erscheint sofort nach dem Neubau im Marketplace.

REST-API-Übersicht

Endpunkt

Authentifizierung

Beschreibung

GET /healthz

Liveness-Probe (nur DB-Ping, keine Details)

POST /api/auth/bootstrap · login · logout

–/session

Erststart-Konto, An-/Abmeldung

GET /api/meta

session

{version, commit} des laufenden Builds

POST /api/auth/change-password

session

Passwort ändern; widerruft alle anderen Sitzungen

GET /api/auth/sessions · DELETE /:id

session

Aktive Sitzungen auflisten/widerrufen

GET /api/marketplace

session

Katalogeinträge mit Installationszahlen

GET/POST /api/community/repos · DELETE /:repo

session

Community-Connector-Repos verwalten

POST /api/connectors · PUT/DELETE /:id

session

Installieren / umbenennen / deinstallieren

PUT /api/connectors/:id/config

session

Verschlüsselte Konfiguration speichern

POST /api/connectors/:id/enable·disable·restart

session

Lebenszyklus

POST /api/connectors/restart-all · stop-all

session

Massenoperationen

GET /api/connectors/:id/tools

session

Live-Tool-Liste aus dem laufenden Prozess

GET /api/logs/:id?after= + WS stream

session

Log-Tail

GET/POST /api/keys · DELETE /:id

session

API-Schlüsselverwaltung

GET /api/backup · POST /api/backup/restore

session

Konfiguration exportieren/importieren

POST /mcp

Bearer-Schlüssel oder Sitzung

Einheitlicher MCP-Endpunkt (120 Anfragen/min pro Schlüssel)

Alle mutierenden Endpunkte schreiben in das Audit-Log.

Hinweise

  • Connectors laufen als untergeordnete Prozesse im Hub-Container (npx -y pkg@version oder uvx). Es ist kein Docker-Socket eingebunden. Python-basierte Connectors benötigen uvx – es ist im Laufzeit-Image installiert.

  • Der MCP-Endpunkt ist zustandsloses Streamable HTTP (/mcp) – jeder HTTP-MCP-Client funktioniert.

  • Ressourcen werden unter connector://<slug>/<original-uri> bereitgestellt.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A modular, extensible FastAPI-based platform that aggregates multiple AI tools and microservices into a unified interface with standardized I/O formats, perfect for frontend integration or LLM system orchestration.
    4
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Intelligent routing service that selects optimal AI models based on capability requirements and normalizes input/output formats across multiple providers like OpenAI, Anthropic, Google, and others.
  • F
    license
    Not graded
    quality
    D
    maintenance
    A unified local API gateway providing caching, rate limiting, and full Model Context Protocol compatibility for AI agent integration. It enables users to aggregate multiple API endpoints into a single gateway with built-in observability and customizable eviction strategies.

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xeniak123/mcp-hub'

If you have feedback or need assistance with the MCP directory API, please join our Discord server