Skip to main content
Glama
alejofig

Berghain Events MCP Server

by alejofig

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

Related MCP server: Eventbrite MCP Server

Требования

  • Питон 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 и выполнить запрос.

Лицензия

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

-
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