Berghain Events MCP Server
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 archivoRelated MCP server: DynamoDB Read-Only 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 ):
uv run python mcp_local.pyЭто запустит агент PydanticAI, который попытается подключиться к развернутому MCP и выполнить запрос.
Лицензия
Массачусетский технологический институт
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted persistent memory with semantic search, importance and TTL for AI agents.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
The Ferryhopper MCP server is a connector for LLMs and AI Agents in maritime travel that exposes ferry routes, schedules, and booking options. It enables AI assistants to search ports and connections across 33 countries and 190+ ferry operators, provide real-time ferry itineraries with indicative prices, and assist users with planning island-hopping or multi-leg journeys by processing natural language queries about ferry times, passenger counts, and travel durations.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- FlicenseBqualityDmaintenanceThis 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.12-
- AlicenseBqualityDmaintenanceA server that enables LLMs like Claude to query AWS DynamoDB databases through natural language requests, supporting table management, data querying, and schema analysis.7152MIT
- FlicenseAqualityDmaintenanceAn MCP server that gives LLM agents full access to Amazon DynamoDB, supporting table management, querying, scanning, and item CRUD operations.11-
- AlicenseNot gradedqualityCmaintenanceMCP server that exposes aggregated Shotgun event sales, net revenue, ticket quotas, and audience stats to AI assistants via natural language queries.MIT