Skip to main content
Glama
intern-analytics

Brand MCP Server

MCP für GBL

Ein sicherer, mandantenfähiger Model Context Protocol (MCP)-Server für den Zugriff auf markenspezifische Postgres-Datenbanken. Dieser Server unterstützt sowohl die lokale Ausführung als auch den authentifizierten Remote-Zugriff über HTTP/SSE.

🔐 Authentifizierung & Sicherheit

Dieser Server verwendet Bearer-Token-Authentifizierung. Der Zugriff auf die Endpunkte /sse und /messages erfordert einen gültigen API-Schlüssel mit dem Präfix gbl-.

Key Management CLI

Verwalten Sie Ihre Schlüssel lokal oder auf EC2 mithilfe des integrierten Auth-Moduls:

# Activate your environment first
source .venv/bin/activate  # Linux/EC2
.\.venv\Scripts\activate   # Windows

### 6. Manage Multi-Tenant API Keys (Admin API)
To provision unique database tenants to separate keys, we host an internal Admin REST API.
This API handles secrets, so it should **only** be accessed from localhost on your EC2 instance (binds to `:8001`).

### Option A: Use it securely locally via SSH Tunneling (Recommended)
You can build a secure tunnel from your Windows PC directly to your EC2 instance so you can interact with the Admin API from your own local browser (like Swagger UI) or local terminal smoothly:
```powershell
# Run this on your local Windows PC
ssh -i "path/to/your/key.pem" -L 8001:127.0.0.1:8001 ubuntu@YOUR_EC2_IP

Jetzt können Sie direkt von Ihrem lokalen Rechner aus mit der API interagieren oder die Swagger-UI aufrufen: http://127.0.0.1:8001/docs

Option B: Direkte Verwendung auf EC2

So starten Sie die Admin-API auf EC2:

python3 -m src.admin_api

Sobald die Admin-API läuft, können Sie in einem anderen EC2-Terminalfenster einen neuen Mandantenschlüssel für eine Marke erstellen:

curl -X POST http://127.0.0.1:8001/keys/generate \
     -H "Content-Type: application/json" \
     -d '{"db_user": "brand_a_user", "db_pass": "supersecret"}'

(Die Antwort enthält den api_key, der brand_a_user zugewiesen wurde.)

Weitere Hilfs-Endpunkte:

  • Mandanten auflisten: curl http://127.0.0.1:8001/keys

  • Mandanten widerrufen: curl -X DELETE http://127.0.0.1:8001/keys/brand_a_user


Related MCP server: PostgreSQL MCP Server for Claude Desktop

🖥️ EC2-Bereitstellung (Persistenz mit systemd)

Für die Produktion verwenden wir systemd, um sicherzustellen, dass der Server beim Neustart automatisch startet und bei einem Absturz neu gestartet wird.

1. Projekteinrichtung

git clone https://github.com/intern-analytics/MCPforGBL.git
cd MCPforGBL
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

2. Konfiguration

Erstellen Sie eine .env-Datei für Datenbankanmeldedaten (gitignored):

nano .env
# Add DB_USER, DB_PASS, DB_HOST, etc.

3. Erstellen des Systemdienstes

Erstellen Sie eine Dienstdatei:

sudo nano /etc/systemd/system/mcp-server.service

Fügen Sie Folgendes ein (passen Sie die Pfade bei Bedarf an):

[Unit]
Description=Brand MCP FastAPI Server
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/projects/MCPforGBL
ExecStart=/home/ubuntu/projects/MCPforGBL/.venv/bin/python -m src.server2
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

4. Aktivieren und Starten

sudo systemctl daemon-reload
sudo systemctl enable mcp-server
sudo systemctl start mcp-server
sudo systemctl status mcp-server

🤖 Verbindung zu Claude

Option A: Verwendung von Claude.ai (Web-App)

Da dieser Server öffentlich über Nginx zugänglich ist und durch ein Let's Encrypt HTTPS-Zertifikat geschützt wird, können Sie sich direkt in Ihrem Browser verbinden.

  1. Gehen Sie zu Claude.ai Einstellungen -> Developer / Connectors.

  2. Klicken Sie auf Add custom connector.

  3. Fügen Sie Ihre sichere URL ein: https://mcpforgbl.duckdns.org/sse?token=gbl-YOUR_KEY_HERE

  4. Verbinden und abfragen!

Option B: Verwendung der Claude Desktop App (HTTPS)

Aktualisieren Sie Ihre %APPDATA%\Claude\claude_desktop_config.json unter Windows.

[!IMPORTANT] Verwenden Sie C:\\PROGRA~1\\nodejs\\npx.cmd, um Probleme mit Leerzeichen im Windows-Dateipfad zu vermeiden.

{
  "mcpServers": {
    "gbl-data-lake": {
      "command": "C:\\PROGRA~1\\nodejs\\npx.cmd",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcpforgbl.duckdns.org/sse?token=gbl-YOUR_KEY_HERE"
      ]
    }
  }
}

Option C: Verwendung der Claude Desktop App (HTTP IP-Adresse & Bearer-Header)

Wenn Sie sich lieber direkt mit der IP-Adresse der EC2-Instanz verbinden möchten, ohne die DuckDNS-URL zu verwenden, oder das Token als Header statt als URL-Parameter übergeben möchten, verwenden Sie diese Konfiguration:

{
  "mcpServers": {
    "gbl-data-lake": {
      "command": "C:\\PROGRA~1\\nodejs\\npx.cmd",
      "args": [
        "-y",
        "mcp-remote",
        "http://YOUR-EC2-PUBLIC-IP:8000/sse",
        "--allow-http",
        "--header",
        "Authorization: Bearer gbl-YOUR_KEY_HERE"
      ]
    }
  }
}

📈 Skalierbarkeits-Roadmap

Unsere Plattform ist darauf ausgelegt, durch ein robustes, rollenbasiertes Zugriffskontrollsystem sicher und effizient zu skalieren.

Wir planen, die Benutzerverwaltung durch die Generierung separater, dedizierter API-Schlüssel für jeden Benutzer/Mandanten zu skalieren. In unserer Architektur fungiert der API-Schlüssel nicht nur als Authentifizierungs-Token, sondern definiert inhärent das vollständige Berechtigungsprofil eines Benutzers. Der Schlüssel selbst teilt dem Server genau mit, wie viel Zugriff der Benutzer hat.

Dieser Ansatz ermöglicht es uns, Datenbankinteraktionen und die Verfügbarkeit von Tools basierend auf Konten mit eingeschränktem Zugriff und angepassten Skill-Dateien strikt durchzusetzen, wodurch sichergestellt wird, dass jeder Benutzer nur mit den Daten und Funktionen interagiert, für die er explizit autorisiert ist.


🛠️ Entwicklung

  • Lokaler Server: python -m src.server (Standard stdio)

  • SSE-Server: python -m src.server2 (HTTP/SSE über FastAPI)

  • Auth-Utils: src/auth.py

  • Datenbanklogik: src/db.py

F
license - not found
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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
    Enables interaction with PostgreSQL databases through a production-ready MCP server with global connection pooling, automatic AWS password rotation, and comprehensive SQL operations. Supports multiple concurrent Claude sessions while maintaining efficient connection limits to the database.
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude Desktop to interact with PostgreSQL databases through natural language for schema exploration, data analysis, and query execution. Users can search schemas, describe tables, and perform read or write operations without needing to write manual SQL.
  • A
    license
    Not graded
    quality
    C
    maintenance
    A production-ready MCP server for PostgreSQL — built for Claude Desktop, Claude Code, and any MCP-compatible AI agent.
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables Claude Desktop to connect to PostgreSQL databases, allowing users to query, explore schemas, and analyze data using plain English without writing SQL.

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/intern-analytics/MCPforGBL'

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