Skip to main content
Glama
alejofig

Berghain Events MCP Server

by alejofig

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 archivo

Related MCP server: Eventbrite MCP Server

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

  1. Klonen Sie dieses Repository:

    git clone <repository-url> cd berghain-api
  2. Erstellen und aktivieren Sie eine virtuelle Umgebung mit uv :

    uv venv source .venv/bin/activate # En Linux/macOS # .venv\\Scripts\\activate # En Windows
  3. Installieren 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.py kü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:8000
  • Daten in die Tabelle laden: Das Skript scripts/load_data.py lä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 events

    Stellen Sie sicher, dass app/core/config.py (importiert von load_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. in app/api/endpoints/events.py ).

  • Die Datei app/main.py ist 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 die custom_maps in app/main.py um zu sehen, wie GET-Routen RouteType.TOOL zugeordnet 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)

  1. 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.com
  2. Erstellen Sie ein Repository in ECR (falls es nicht vorhanden ist):

    aws ecr create-repository --repository-name berghain-mcp-api --region tu-region-aws
  3. Erstellen Sie Ihr Docker-Image:

    docker build -t berghain-mcp-api .
  4. Markieren Sie Ihr Bild:

    docker tag berghain-mcp-api:latest tu-aws-account-id.dkr.ecr.tu-region-aws.amazonaws.com/berghain-mcp-api:latest
  5. Laden Sie das Bild zu ECR hoch:

    docker push tu-aws-account-id.dkr.ecr.tu-region-aws.amazonaws.com/berghain-mcp-api:latest

    Ersetzen Sie tu-region-aws und tu-aws-account-id durch Ihre Werte.

C. Bereitstellen der Infrastruktur mit Terraform

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

  2. Navigieren Sie zum Terraform-Verzeichnis:

    cd terraform
  3. Terraform initialisieren:

    terraform init
  4. Wenden Sie die Terraform-Konfiguration an:

    terraform apply

    Überprüfen Sie den Plan und bestätigen Sie die Anwendung. Terraform stellt die Ressourcen bereit.

  5. 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.py

Dadurch wird der PydanticAI-Agent ausgeführt, der versucht, eine Verbindung zu Ihrem bereitgestellten MCP herzustellen und die Abfrage auszuführen.

Lizenz

MIT

-
security - not tested
F
license - not found
-
quality - not tested

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/alejofig/mcp-berghain'

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