Berghain Events MCP Server
Berghain Events API & MCP-Implementierung
Projektstruktur
berghain-api/
├── app/ # Aplicación principal FastAPI
│ ├── api/ # Rutas de la API
│ ├── core/ # Configuración y componentes centrales
│ ├── db/ # Capa de acceso a datos (DynamoDB)
│ └── main.py # Punto de entrada de la aplicación y FastMCP server
├── scripts/ # Scripts para creación de tabla y carga de datos en DynamoDB
│ ├── create_table.py
│ └── load_data.py
├── events/ # Directorio para los JSON extraídos de Firecrawl
├── Dockerfile # Dockerfile para despliegue
├── requirements.txt # Dependencias del proyecto (para uv)
└── README.md # Este archivoRelated MCP server: DynamoDB Read-Only MCP
Anforderungen
Python 3.10+
uv (für Abhängigkeitsmanagement und virtuelle Umgebung)
AWS-Konto (für DynamoDB und App Runner)
Firecrawl-API-Schlüssel
Einrichtung
Klonen Sie dieses Repository:
git clone <repository-url> cd berghain-apiErstellen und aktivieren Sie eine virtuelle Umgebung mit
uv:uv venv source .venv/bin/activate # En Linux/macOS # .venv\\Scripts\\activate # En WindowsInstallieren Sie Abhängigkeiten mit
uv:uv pip install -r requirements.txt
Detaillierter Prozess
1. Datenextraktion mit Firecrawl
Firecrawl MCP auf Cursor einstellen: Stellen Sie sicher, dass Sie Ihren Firecrawl-API-Schlüssel haben. Fügen Sie in der Cursor-MCP-Konfiguration Folgendes hinzu:
"firecrawl-mcp": { "command": "npx", "args": [ "-y", "firecrawl-mcp" ], "env": { "FIRECRAWL_API_KEY": "fc-YOUR_FIRECRAWL_API_KEY" } }Führen Sie die Extraktion aus: Verwenden Sie einen Agenten in Cursor (oder einem ähnlichen Tool), um das Firecrawl MCP aufzurufen und es aufzufordern, Ereignisse von
https://www.berghain.berlin/en/program/zu extrahieren.Daten speichern: Die extrahierten Daten sollten als JSON-Dateien im Verzeichnis
events/gespeichert werden. Beispiel:events/berghain_events_YYYY-MM-DD.json.
2. Daten in DynamoDB laden
Erstellen Sie die Tabelle in DynamoDB: Das Skript
scripts/create_table.pykümmert sich darum. Führen Sie es aus (passen Sie die Parameter gegebenenfalls an):uv run python scripts/create_table.py --table berghain_events --region tu-region-aws # Para desarrollo local con DynamoDB Local (ej. docker run -p 8000:8000 amazon/dynamodb-local): # uv run python scripts/create_table.py --table berghain_events --region localhost --endpoint-url http://localhost:8000Daten in die Tabelle laden: Das Skript
scripts/load_data.pylädt Ereignisse aus JSON-Dateien.uv run python scripts/load_data.py --table berghain_events --region tu-region-aws --path events # Para desarrollo local: # uv run python scripts/load_data.py --table berghain_events --region localhost --endpoint-url http://localhost:8000 --path eventsStellen Sie sicher, dass
app/core/config.py(importiert vonload_data.py) über die erforderlichen Konfigurationen verfügt, wenn Sie diese nicht als Argumente übergeben.
3. API mit FastAPI und MCP Server
Die API-Logik befindet sich im Verzeichnis
app/, wobei die Endpunkte definiert sind (z. B. inapp/api/endpoints/events.py).Die Datei
app/main.pyist so konfiguriert, dass die FastAPI-Anwendung und der FastMCP-Server gestartet werden und die API-Endpunkte als Tools für KI-Modelle verfügbar gemacht werden. Überprüfen Sie diecustom_mapsinapp/main.pyum zu sehen, wie GET-RoutenRouteType.TOOLzugeordnet werden.
Bereitstellung auf AWS
Zu. Dockerfile
Stellen Sie sicher, dass Ihr Dockerfile richtig für die Verwendung uv konfiguriert ist und führen Sie app/main.py aus:
B. Erstellen und Hochladen eines Images in Amazon ECR (Elastic Container Registry)
Docker mit ECR authentifizieren:
aws ecr get-login-password --region tu-region-aws | docker login --username AWS --password-stdin tu-aws-account-id.dkr.ecr.tu-region-aws.amazonaws.comErstellen Sie ein Repository in ECR (falls es nicht vorhanden ist):
aws ecr create-repository --repository-name berghain-mcp-api --region tu-region-awsErstellen Sie Ihr Docker-Image:
docker build -t berghain-mcp-api .Markieren Sie Ihr Bild:
docker tag berghain-mcp-api:latest tu-aws-account-id.dkr.ecr.tu-region-aws.amazonaws.com/berghain-mcp-api:latestLaden Sie das Bild zu ECR hoch:
docker push tu-aws-account-id.dkr.ecr.tu-region-aws.amazonaws.com/berghain-mcp-api:latestErsetzen Sie
tu-region-awsundtu-aws-account-iddurch Ihre Werte.
C. Bereitstellen der Infrastruktur mit Terraform
Bereiten Sie Ihre Terraform-Dateien vor: Stellen Sie sicher, dass Sie Ihre Terraform-Konfigurationsdateien (z. B.
main.tf,variables.tf,outputs.tf) in einem Verzeichnis (z. B.terraform/) haben. Diese Dateien sollten die erforderlichen AWS-Ressourcen definieren, z. B. den AWS App Runner-Dienst, den das ECR-Image verwenden wird, und die DynamoDB-Tabelle (sofern sie auch von Terraform verwaltet wird). Ihre App Runner-Konfiguration in Terraform muss auf das in ECR hochgeladene Bild verweisen.Navigieren Sie zum Terraform-Verzeichnis:
cd terraformTerraform initialisieren:
terraform initWenden Sie die Terraform-Konfiguration an:
terraform applyÜberprüfen Sie den Plan und bestätigen Sie die Anwendung. Terraform stellt die Ressourcen bereit.
Holen Sie sich die Service-URL: Nach der Anwendung sollte Terraform die definierten Ausgaben anzeigen, einschließlich der App Runner-Service-URL. Notieren Sie sich diese URL (z. B.
https://<id-servicio>.<region>.awsapprunner.com).
Testen der bereitgestellten Lösung
Zu. Lokales Testskript anpassen ( mcp_local.py )
Legen Sie die Datei mcp_local.py im Stammverzeichnis Ihres Projekts fest
Wichtig: Aktualisieren Sie die Variable mcp_server_url in mcp_local.py mit der URL, die Sie aus der Terraform-Ausgabe erhalten haben.
B. Test ausführen
Vom Stammverzeichnis Ihres Projekts (oder wo auch immer Sie mcp_local.py gespeichert haben):
uv run python mcp_local.pyDadurch wird der PydanticAI-Agent ausgeführt, der versucht, eine Verbindung zu Ihrem bereitgestellten MCP herzustellen und die Abfrage auszuführen.
Lizenz
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted persistent memory with semantic search, importance and TTL for AI agents.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
The Ferryhopper MCP server is a connector for LLMs and AI Agents in maritime travel that exposes ferry routes, schedules, and booking options. It enables AI assistants to search ports and connections across 33 countries and 190+ ferry operators, provide real-time ferry itineraries with indicative prices, and assist users with planning island-hopping or multi-leg journeys by processing natural language queries about ferry times, passenger counts, and travel durations.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- FlicenseBqualityDmaintenanceThis server integrates with the Ticketmaster API to provide AI agents with real-time concert and event data, enabling dynamic fetching and formatting for ease of interpretation.12-
- AlicenseBqualityDmaintenanceA server that enables LLMs like Claude to query AWS DynamoDB databases through natural language requests, supporting table management, data querying, and schema analysis.7152MIT
- FlicenseAqualityDmaintenanceAn MCP server that gives LLM agents full access to Amazon DynamoDB, supporting table management, querying, scanning, and item CRUD operations.11-
- AlicenseNot gradedqualityCmaintenanceMCP server that exposes aggregated Shotgun event sales, net revenue, ticket quotas, and audience stats to AI assistants via natural language queries.MIT