Skip to main content
Glama
alejofig

Berghain Events MCP Server

by alejofig

ベルグハインイベントAPIと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 archivo

Related MCP server: Eventbrite MCP Server

要件

  • Python 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 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 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. 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

uvを使用し、 app/main.pyを実行するようにDockerfileが正しく構成されていることを確認します。

b.イメージをビルドして 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.tfvariables.tfoutputs.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 に更新します。

b.テストを実行

プロジェクトのルート (またはmcp_local.py保存した場所) から:

uv run python mcp_local.py

これにより、PydanticAI エージェントが実行され、デプロイされた MCP に接続してクエリを実行しようとします。

ライセンス

マサチューセッツ工科大学

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alejofig/mcp-berghain'

If you have feedback or need assistance with the MCP directory API, please join our Discord server