Berghain Events MCP Server
Berghain 이벤트 API 및 MCP 구현
프로젝트 구조
지엑스피1
Related MCP server: DynamoDB Read-Only MCP
요구 사항
파이썬 3.10+
uv(종속성 관리 및 가상 환경용)
AWS 계정(DynamoDB 및 App Runner용)
Firecrawl API 키
시설
이 저장소를 복제하세요:
git clone <repository-url> cd berghain-apiuv사용하여 가상 환경을 만들고 활성화합니다.uv venv source .venv/bin/activate # En Linux/macOS # .venv\\Scripts\\activate # En Windowsuv로 종속성을 설치합니다:uv pip install -r requirements.txt
세부 프로세스
1. Firecrawl을 이용한 데이터 추출
Firecrawl MCP를 커서로 설정: Firecrawl API 키가 있는지 확인하세요. 커서 MCP 구성에서 다음을 추가합니다.
"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/에서 이벤트를 추출하도록 요청합니다.데이터 저장: 추출된 데이터는
events/디렉토리에 JSON 파일로 저장해야 합니다. 예를 들어,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인수로 전달하지 않는 경우,
load_data.py에서 가져온app/core/config.py에 필요한 구성이 있는지 확인하세요.
3. FastAPI 및 MCP 서버를 사용한 API
API 로직은
app/디렉토리에 있으며 엔드포인트는 정의되어 있습니다(예:app/api/endpoints/events.py).app/main.py파일은 FastAPI 애플리케이션과 FastMCP 서버를 시작하도록 구성되어 API 엔드포인트를 AI 모델을 위한 도구로 노출합니다.app/main.py의custom_maps확인하여 GET 경로가RouteType.TOOL에 어떻게 매핑되는지 확인하세요.
AWS에 배포
에게. Dockerfile
Dockerfile 이 uv 사용하도록 올바르게 구성되었고 app/main.py 실행했는지 확인하세요.
비. Amazon ECR(Elastic Container Registry)에 이미지 빌드 및 업로드
ECR로 Docker 인증:
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.comECR에 저장소를 만듭니다(존재하지 않는 경우):
aws ecr create-repository --repository-name berghain-mcp-api --region tu-region-awsDocker 이미지를 빌드하세요.
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:latestECR에 이미지 업로드:
docker push tu-aws-account-id.dkr.ecr.tu-region-aws.amazonaws.com/berghain-mcp-api:latesttu-region-aws과tu-aws-account-id원하는 값으로 바꾸세요.
기음. Terraform을 사용하여 인프라 배포
Terraform 파일을 준비합니다. Terraform 구성 파일(예:
main.tf,variables.tf,outputs.tf)이 디렉토리(예:terraform/)에 있는지 확인합니다. 이러한 파일은 ECR 이미지가 사용할 AWS App Runner 서비스, DynamoDB 테이블(Terraform에서 관리하는 경우) 등 필요한 AWS 리소스를 정의해야 합니다. Terraform의 App Runner 구성은 ECR에 업로드된 이미지를 참조해야 합니다.Terraform 디렉토리로 이동합니다.
cd terraformTerraform 초기화:
terraform initTerraform 구성을 적용합니다.
terraform apply계획을 검토하고 신청을 확인하세요. Terraform이 리소스를 프로비저닝합니다.
서비스 URL 가져오기: 적용되면 Terraform은 App Runner 서비스 URL을 포함한 정의된 출력을 표시해야 합니다. 이 URL을 기록해 두세요(예
https://<id-servicio>.<region>.awsapprunner.com).
배포된 솔루션 테스트
에게. 로컬 테스트 스크립트 조정( mcp_local.py )
mcp_local.py 파일을 프로젝트의 루트로 설정하세요.
중요: mcp_local.py 의 mcp_server_url 변수를 Terraform 출력에서 얻은 URL로 업데이트합니다.
비. 테스트 실행
프로젝트의 루트(또는 mcp_local.py 저장한 곳)에서:
uv run python mcp_local.py이렇게 하면 PydanticAI 에이전트가 실행되어 배포된 MCP에 연결하고 쿼리를 수행합니다.
특허
MIT
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