Berghain Events MCP Server

by alejofig
  • Linux
  • Apple

Integrations

  • Implements a FastAPI server that exposes Berghain events data as API endpoints and MCP tools for AI agents

  • Uses PydanticAI for agent implementation when testing the MCP server capabilities

  • Built on Python for server implementation, data processing, and API functionality

Berghain 이벤트 API 및 MCP 구현

프로젝트 구조

지엑스피1

요구 사항

  • 파이썬 3.10+
  • uv(종속성 관리 및 가상 환경용)
  • AWS 계정(DynamoDB 및 App Runner용)
  • Firecrawl API 키

시설

  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를 커서로 설정: 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.pycustom_maps 확인하여 GET 경로가 RouteType.TOOL 에 어떻게 매핑되는지 확인하세요.

AWS에 배포

에게. Dockerfile

Dockerfileuv 사용하도록 올바르게 구성되었고 app/main.py 실행했는지 확인하세요.

비. Amazon ECR(Elastic Container Registry)에 이미지 빌드 및 업로드

  1. 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.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-awstu-aws-account-id 원하는 값으로 바꾸세요.

기음. Terraform을 사용하여 인프라 배포

  1. Terraform 파일을 준비합니다. Terraform 구성 파일(예: main.tf , variables.tf , outputs.tf )이 디렉토리(예: terraform/ )에 있는지 확인합니다. 이러한 파일은 ECR 이미지가 사용할 AWS App Runner 서비스, DynamoDB 테이블(Terraform에서 관리하는 경우) 등 필요한 AWS 리소스를 정의해야 합니다. Terraform의 App Runner 구성은 ECR에 업로드된 이미지를 참조해야 합니다.
  2. Terraform 디렉토리로 이동합니다.
    cd terraform
  3. Terraform 초기화:
    terraform init
  4. Terraform 구성을 적용합니다.
    terraform apply
    계획을 검토하고 신청을 확인하세요. Terraform이 리소스를 프로비저닝합니다.
  5. 서비스 URL 가져오기: 적용되면 Terraform은 App Runner 서비스 URL을 포함한 정의된 출력을 표시해야 합니다. 이 URL을 기록해 두세요(예 https://<id-servicio>.<region>.awsapprunner.com ).

배포된 솔루션 테스트

에게. 로컬 테스트 스크립트 조정( mcp_local.py )

mcp_local.py 파일을 프로젝트의 루트로 설정하세요.

중요: mcp_local.pymcp_server_url 변수를 Terraform 출력에서 얻은 URL로 업데이트합니다.

비. 테스트 실행

프로젝트의 루트(또는 mcp_local.py 저장한 곳)에서:

uv run python mcp_local.py

이렇게 하면 PydanticAI 에이전트가 실행되어 배포된 MCP에 연결하고 쿼리를 수행합니다.

특허

MIT

Related MCP Servers

  • A
    security
    F
    license
    A
    quality
    This 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 -
    1
    Python
  • A
    security
    A
    license
    A
    quality
    An unofficial server that allows AI assistants to access Fathom Analytics data, enabling users to retrieve account information, site statistics, events, aggregated reports, and real-time visitor tracking.
    Last updated -
    5
    8
    1
    TypeScript
    MIT License
  • A
    security
    A
    license
    A
    quality
    This 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.
    Last updated -
    4
    2
    1
    JavaScript
    MIT License
    • Apple
  • -
    security
    A
    license
    -
    quality
    A Server-Sent Events implementation using FastAPI framework that integrates Model Context Protocol (MCP), allowing AI models to access external tools and data sources like weather information.
    Last updated -
    9
    Python
    MIT License

View all related MCP servers

ID: rhukrg7s0i