Berghain Events MCP Server

by alejofig
  • Linux
  • Apple

Integrations

  • Implements a FastAPI server that exposes Berghain events data as API endpoints and MCP tools for AI agents

  • Uses PydanticAI for agent implementation when testing the MCP server capabilities

  • Built on Python for server implementation, data processing, and API functionality

API событий Berghain и реализация MCP

Структура проекта

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

Требования

  • Питон 3.10+
  • uv (для управления зависимостями и виртуальной средой)
  • Аккаунт AWS (для DynamoDB и App Runner)
  • API-ключ Firecrawl

Средство

  1. Клонируйте этот репозиторий:
    git clone <repository-url> cd berghain-api
  2. Создайте и активируйте виртуальную среду с помощью uv :
    uv venv source .venv/bin/activate # En Linux/macOS # .venv\\Scripts\\activate # En Windows
  3. Установите зависимости с помощью uv :
    uv pip install -r requirements.txt

Подробный процесс

1. Извлечение данных с помощью Firecrawl

  • Установите Firecrawl MCP на курсор: убедитесь, что у вас есть ключ API Firecrawl. В конфигурации Cursor MCPs добавьте:
    "firecrawl-mcp": { "command": "npx", "args": [ "-y", "firecrawl-mcp" ], "env": { "FIRECRAWL_API_KEY": "fc-YOUR_FIRECRAWL_API_KEY" } }
  • Запустите извлечение: используйте агент в Cursor (или аналогичный инструмент), чтобы вызвать Firecrawl MCP и попросить его извлечь события из https://www.berghain.berlin/en/program/ .
  • Сохраните данные: Извлеченные данные следует сохранить в виде файлов JSON в каталоге events/ . Например, events/berghain_events_YYYY-MM-DD.json .

2. Загрузка данных в DynamoDB

  • Создайте таблицу в DynamoDB: этим занимается скрипт scripts/create_table.py . Запустите его (при необходимости настройте параметры):
    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
  • Загрузка данных в таблицу: Скрипт scripts/load_data.py загружает события из файлов JSON.
    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
    Убедитесь, что app/core/config.py (импортированный load_data.py ) имеет необходимые конфигурации, если вы не передаете их в качестве аргументов.

3. API с FastAPI и MCP Server

  • Логика API находится в каталоге app/ , а конечные точки определены (например, в app/api/endpoints/events.py ).
  • Файл app/main.py настроен на запуск приложения FastAPI и сервера FastMCP, предоставляя конечные точки API в качестве инструментов для моделей ИИ. Проверьте custom_maps в app/main.py чтобы увидеть, как маршруты GET сопоставляются с RouteType.TOOL .

Развертывание на AWS

к. Dockerfile

Убедитесь, что ваш Dockerfile правильно настроен для использования uv и запуска app/main.py :

б. Создание и загрузка образа в Amazon ECR (Elastic Container Registry)

  1. Аутентификация Docker с помощью ECR:
    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. Создайте репозиторий в ECR (если его нет):
    aws ecr create-repository --repository-name berghain-mcp-api --region tu-region-aws
  3. Создайте свой образ Docker:
    docker build -t berghain-mcp-api .
  4. Отметьте свое изображение:
    docker tag berghain-mcp-api:latest tu-aws-account-id.dkr.ecr.tu-region-aws.amazonaws.com/berghain-mcp-api:latest
  5. Загрузите изображение в ECR:
    docker push tu-aws-account-id.dkr.ecr.tu-region-aws.amazonaws.com/berghain-mcp-api:latest
    Замените tu-region-aws и tu-aws-account-id своими значениями.

в. Развертывание инфраструктуры с помощью Terraform

  1. Подготовьте файлы Terraform: убедитесь, что файлы конфигурации Terraform (например, main.tf , variables.tf , outputs.tf ) находятся в каталоге (например, terraform/ ). Эти файлы должны определять необходимые ресурсы AWS, такие как служба AWS App Runner, которую будет использовать образ ECR, и таблица DynamoDB (если Terraform также управляет ею). Ваша конфигурация App Runner в Terraform должна ссылаться на изображение, загруженное в ECR.
  2. Перейдите в каталог Terraform:
    cd terraform
  3. Инициализация Terraform:
    terraform init
  4. Примените конфигурацию Terraform:
    terraform apply
    Ознакомьтесь с планом и подтвердите заявку. Terraform предоставит ресурсы.
  5. Получите URL-адрес службы: после применения Terraform должен отобразить определенные выходные данные, включая URL-адрес службы App Runner. Запишите этот URL-адрес (например https://<id-servicio>.<region>.awsapprunner.com ).

Протестируйте развернутое решение

к. Настройте локальный тестовый скрипт ( mcp_local.py )

Установите файл mcp_local.py в корневой каталог вашего проекта.

Важно: обновите переменную mcp_server_url в mcp_local.py , указав URL-адрес, полученный из выходных данных Terraform.

б. Выполнить тест

Из корня вашего проекта (или там, где вы сохранили mcp_local.py ):

uv run python mcp_local.py

Это запустит агент PydanticAI, который попытается подключиться к развернутому MCP и выполнить запрос.

Лицензия

Массачусетский технологический институт

Related MCP Servers

  • A
    security
    F
    license
    A
    quality
    This 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.
    Last updated -
    1
    Python
  • A
    security
    A
    license
    A
    quality
    An unofficial server that allows AI assistants to access Fathom Analytics data, enabling users to retrieve account information, site statistics, events, aggregated reports, and real-time visitor tracking.
    Last updated -
    5
    8
    1
    TypeScript
    MIT License
  • A
    security
    A
    license
    A
    quality
    This server provides tools for AI assistants to interact with the Eventbrite API, allowing users to search for events, get event details, retrieve venue information, and list event categories.
    Last updated -
    4
    2
    1
    JavaScript
    MIT License
    • Apple
  • -
    security
    A
    license
    -
    quality
    A Server-Sent Events implementation using FastAPI framework that integrates Model Context Protocol (MCP), allowing AI models to access external tools and data sources like weather information.
    Last updated -
    9
    Python
    MIT License

View all related MCP servers

ID: rhukrg7s0i