Skip to content

nnachname90/n-dbhub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DBHub MCP Setup

Zwei bytebase/dbhub MCP-Server-Instanzen für den Datenbankzugriff via Claude.ai.

Architektur

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)

Cloudflare-Konfiguration (Dashboard)

Alles unter dash.cloudflare.com → Zero Trust.

1. Access → Applications

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).

2. Networks → Tunnels → Nils-VPS → Published application routes

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.


VPS-Konfiguration

Docker Compose: DBHub-Container

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-henx

Docker Compose: Cloudflare Tunnel

Der 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: true

TUNNEL_TOKEN kommt aus dem Cloudflare Dashboard (Tunnels → Nils-VPS → Configure).

DB-Konfigurationen (nicht im Git)

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"

Claude.ai konfigurieren

Unter claude.ai → Settings → Integrations → Add integration:

  • https://dbhub-henx-mcp.nilskaltschmidt.me/mcp
  • https://dbhub-nils-mcp.nilskaltschmidt.me/mcp

Beim ersten Verbinden startet der OAuth-Flow → Email-Login über Cloudflare Access → danach aktiv.


Repo-Struktur

.
├── 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)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors