API событий Berghain и реализация MCP
Структура проекта
Related MCP server: Eventbrite MCP Server
Требования
Питон 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 и выполнить запрос.
Лицензия
Массачусетский технологический институт