API событий Berghain и реализация MCP
Структура проекта
Требования
Питон 3.10+
uv (для управления зависимостями и виртуальной средой)
Аккаунт AWS (для DynamoDB и App Runner)
API-ключ Firecrawl
Средство
Клонируйте этот репозиторий:
git clone <repository-url> cd berghain-apiСоздайте и активируйте виртуальную среду с помощью
uv
:uv venv source .venv/bin/activate # En Linux/macOS # .venv\\Scripts\\activate # En WindowsУстановите зависимости с помощью
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)
Аутентификация 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Создайте репозиторий в ECR (если его нет):
aws ecr create-repository --repository-name berghain-mcp-api --region tu-region-awsСоздайте свой образ Docker:
docker build -t berghain-mcp-api .Отметьте свое изображение:
docker tag berghain-mcp-api:latest tu-aws-account-id.dkr.ecr.tu-region-aws.amazonaws.com/berghain-mcp-api:latestЗагрузите изображение в 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
Подготовьте файлы Terraform: убедитесь, что файлы конфигурации Terraform (например,
main.tf
,variables.tf
,outputs.tf
) находятся в каталоге (например,terraform/
). Эти файлы должны определять необходимые ресурсы AWS, такие как служба AWS App Runner, которую будет использовать образ ECR, и таблица DynamoDB (если Terraform также управляет ею). Ваша конфигурация App Runner в Terraform должна ссылаться на изображение, загруженное в ECR.Перейдите в каталог Terraform:
cd terraformИнициализация Terraform:
terraform initПримените конфигурацию Terraform:
terraform applyОзнакомьтесь с планом и подтвердите заявку. Terraform предоставит ресурсы.
Получите 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
):
Это запустит агент PydanticAI, который попытается подключиться к развернутому MCP и выполнить запрос.
Лицензия
Массачусетский технологический институт
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Сервер, который позволяет агентам ИИ запрашивать и извлекать информацию о предстоящих событиях в ночном клубе Berghain через службу FastAPI, поддерживаемую DynamoDB.
Related MCP Servers
- AsecurityFlicenseAqualityThis 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 -12
- AsecurityAlicenseAqualityThis 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.
- -securityAlicense-qualityIntegrates with the Eventbrite API to provide AI-assisted event management capabilities for viewing events, tracking attendees, and generating analytics reports.Last updated -01MIT License
- -securityAlicense-qualityA powerful server that enables AI agents to interact with MySQL databases, execute SQL queries, and manage database content through a simple interface.Last updated -4396MIT License