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_IPJetzt 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_apiSobald 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/keysMandanten 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.txt2. 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.serviceFü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.target4. 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.
Gehen Sie zu Claude.ai Einstellungen -> Developer / Connectors.
Klicken Sie auf Add custom connector.
Fügen Sie Ihre sichere URL ein:
https://mcpforgbl.duckdns.org/sse?token=gbl-YOUR_KEY_HEREVerbinden 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.pyDatenbanklogik:
src/db.py
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityDmaintenanceEnables 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
- FlicenseNot gradedqualityDmaintenanceEnables 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.
- AlicenseNot gradedqualityCmaintenanceA production-ready MCP server for PostgreSQL — built for Claude Desktop, Claude Code, and any MCP-compatible AI agent.Apache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables Claude Desktop to connect to PostgreSQL databases, allowing users to query, explore schemas, and analyze data using plain English without writing SQL.
Related MCP Connectors
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
MCP server for managing Prisma Postgres.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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