Zwei bytebase/dbhub MCP-Server-Instanzen für den Datenbankzugriff via Claude.ai.
Claude.ai
│
│ OAuth 2.1 (Cloudflare Access übernimmt den kompletten Auth-Flow)
▼
Cloudflare Access (Typ: MCP)
│
│ Authentifizierte Requests (via Email-Login)
▼
Cloudflare Tunnel "Nils-VPS"
│
├──► http://dbhub-henx:8080 (Docker, shared-ai-network)
└──► http://dbhub-nils:8080 (Docker, shared-ai-network)
| Instanz | Claude.ai Connector-URL | Datenbanken |
|---|---|---|
henx |
https://dbhub-henx-mcp.nilskaltschmidt.me/mcp |
henx-bi-zistemo, henx-bi |
nils |
https://dbhub-nils-mcp.nilskaltschmidt.me/mcp |
nils_fin (Firefly) |
Alles unter dash.cloudflare.com → Zero Trust.
Zwei Anwendungen vom Typ MCP:
| Name | Domain | Typ |
|---|---|---|
| DBHub VPS HENX-BI | dbhub-henx-mcp.nilskaltschmidt.me |
MCP |
| DBHub VPS Nils_Fin | dbhub-nils-mcp.nilskaltschmidt.me |
MCP |
Jede App hat eine Policy, die den Zugang auf eine bestimmte Email-Adresse beschränkt. Cloudflare Access stellt dabei den kompletten OAuth 2.1 Flow bereit (kein eigener Auth-Code nötig).
Der Tunnel Nils-VPS mappt die Domains auf die Docker-Container im shared-ai-network:
| Domain | Pfad | Ziel-Service |
|---|---|---|
dbhub-henx-mcp.nilskaltschmidt.me |
* |
http://dbhub-henx:8080 |
dbhub-nils-mcp.nilskaltschmidt.me |
* |
http://dbhub-nils:8080 |
Der Tunnel-Container (mcp-tunnel) läuft auf dem VPS im selben Docker-Netzwerk wie die DBHub-Container und ist so direkt per Container-Name erreichbar.
docker-compose.yml startet zwei DBHub-Instanzen ohne Token-Auth (Cloudflare Access schützt den Zugang):
docker compose up -d
docker compose logs -f dbhub-henxDer Tunnel läuft in einem separaten Stack (z.B. /home/nils/apps/mcp-tunnel/docker-compose.yml):
version: '3.8'
services:
cloudflared:
image: cloudflare/cloudflared:latest
container_name: mcp-tunnel
restart: unless-stopped
command: tunnel --no-autoupdate run
environment:
- TUNNEL_TOKEN=${TUNNEL_TOKEN}
networks:
- shared-ai-network
networks:
shared-ai-network:
external: trueTUNNEL_TOKEN kommt aus dem Cloudflare Dashboard (Tunnels → Nils-VPS → Configure).
henx.toml — Datenbankquellen für die HENX-Instanz:
[[sources]]
id = "henx-bi-zistemo"
dsn = "mysql://user:password@host:3306/henx-bi-zistemo"
[[sources]]
id = "henx-bi"
dsn = "mysql://user:password@host:3306/henx-bi"nils.toml — Datenbankquellen für die Nils-Instanz:
[[sources]]
id = "nils_fin"
dsn = "mysql://user:password@host:3306/firefly"Unter claude.ai → Settings → Integrations → Add integration:
https://dbhub-henx-mcp.nilskaltschmidt.me/mcphttps://dbhub-nils-mcp.nilskaltschmidt.me/mcp
Beim ersten Verbinden startet der OAuth-Flow → Email-Login über Cloudflare Access → danach aktiv.
.
├── docker-compose.yml # DBHub Container (VPS)
├── henx.toml # DB-Quellen HENX (nicht im Git, enthält Credentials)
└── nils.toml # DB-Quellen Nils (nicht im Git, enthält Credentials)