🚀 seatgeek - mcp
SeatGeekのイベント、芸能人、会場、セクション情報、レコメンデーションなどのツールを登録した包括的なMCPサーバーで、TypeScriptライブラリとして提供されます。
🚀 クイックスタート
🔍 デモ

📋 前提条件
- Node.js >= 18.0.0
- npm >= 8.0.0
📦 インストール
npm install seatgeek-mcp
💻 使用例
基本的な使用法
# STDIOトランスポート (デフォルト)
npm start
# HTTPストリーミングトランスポート
MCP_HTTP=1 PORT=8080 npm start
✨ 主な機能
-
find_events: 芸能人、場所、日付、または会場でイベントを検索します。このツールは、ユーザーのクエリに基づいて特定のイベントを見つけるために最適化されています。クエリに芸能人が含まれている場合、まず芸能人を検索し、その芸能人のイベントを見つけます。それ以外の場合は、直接イベントを検索します。会場情報を含む構造化されたイベントデータを返します。 -
find_event_recommendations: 芸能人、イベント、または場所に基づいて、パーソナライズされたイベントのレコメンデーションを取得します。このツールは、まずクエリに基づいて芸能人やイベントを検索し、そのIDを使用して類似したイベントを見つけます。近くのイベントを取得するには、場所のパラメーターを使用します。 -
find_performer_recommendations: 芸能人、イベント、または場所に基づいて、パーソナライズされた芸能人的レコメンデーションを取得します。このツールは、まずクエリに基づいて芸能人やイベントを検索し、そのIDを使用して類似した芸能人を見つけます。 -
retrieve_event_venue_information: 特定のイベントのセクションや列を含む詳細な座席情報を取得します。このツールは、まず提供されたクエリを使用してイベントを検索し、次に詳細な会場レイアウト情報を取得します。
🔧 技術詳細
環境変数
SEATGEEK_CLIENT_ID: SeatGeek APIのクライアントID (必須)SEATGEEK_SECRET: SeatGeek APIのシークレット (オプション)MCP_HTTP: 任意の値に設定すると、STDIOの代わりにHTTPトランスポートが有効になりますPORT: HTTPトランスポートを使用する場合のリッスンポート (デフォルト: 8080)
環境変数の設定
このMCPサーバーを使用するには、ルートディレクトリに.envファイルを作成し、SeatGeek APIの資格情報を設定する必要があります。
.env.exampleファイルを.envにコピーします。
cp .env.example .env
.envファイルを編集し、プレースホルダーの値を実際のSeatGeek APIの資格情報に置き換えます。
SeatGeek APIの資格情報は、SeatGeek Platformにアカウントを作成することで取得できます。
開発
セットアップ
npm install
ビルド
npm run build
開発サーバー
npm run dev
ビルドのクリーンアップ
npm run clean
サーバーのテスト
サーバーをいくつかの方法でテストすることができます。
- HTTPトランスポートを使用する (テストに最適)
MCP_HTTP=1 PORT=8080 npm start
- curlを使用してツールをテストする (適切なMCPプロトコルシーケンス)
MCPプロトコルでは、適切なヘッダーを持つ特定のリクエストシーケンスが必要です。
a. 接続を初期化する (最初の必須ステップ)
curl -v -X POST http://localhost:8080 \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-06-11", "capabilities": {}, "clientInfo": {"name": "curl", "version": "1.0.0"}}}'
b. レスポンスヘッダーからセッションIDを抽出する (mcp - session - idを探します)
c. セッションIDを使用して後続のリクエストを行う
# 利用可能なツールをリストする
curl -X POST http://localhost:8080 \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Mcp-Session-Id: YOUR_SESSION_ID_HERE" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'
# 特定のツールを呼び出す (例)
curl -X POST http://localhost:8080 \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Mcp-Session-Id: YOUR_SESSION_ID_HERE" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "find_events", "arguments": {"q": "concert", "per_page": 5}}}'
完全な動作例については、以下を参照してください。
- examples/curl-example.sh - リクエストの完全なシーケンスを示すシェルスクリプト
- examples/node-example.js - プログラムによる使用方法を示すNode.jsスクリプト
- テストスクリプトを使用する
# シンプルなテストサーバースクリプトを実行する
npm run test-server
# 包括的なツールテストを実行する (サーバーを別途実行する必要があります)
npm run test-tools
このサーバーは、Model Context Protocol (MCP)仕様を実装しているため、MCP互換のクライアントで使用することができます。
📚 ドキュメント
Claude Desktopでの使用方法
前提条件
- Claude Desktopがインストールされている
- 設定 -> 開発者の下にclaude_desktop_config.jsonが追加されている
セットアップ手順
mcpServersリストに追加します。
"seatgeek-mcp": {
"command": "node",
"args": ["/path-to/seatgeek-mcp/dist/server.js"],
"env": {
"SEATGEEK_CLIENT_ID": "your-client-id"
}
}
OpenWebUIでの使用方法
このMCPサーバーは、mcpo (MCP Over HTTP)プロキシを介してOpenWebUIで使用できます。mcpoは、MCPツールスキーマから自動的にOpenAPIドキュメントを生成します。
前提条件
- システムにDockerがインストールされている (uvを使用する場合はオプション)
- OpenWebUIがインストールされ、実行されている
セットアップ手順
- mcpoプロキシを起動する
docker run -p 8000:8000 -v $(pwd):/workspace -w /workspace ghcr.io/open-webui/mcpo:main -- npm start
または
uvx mcpo --port 8000 -- npm start
- プロキシが実行されていることを確認する
- ブラウザを開き、
http://localhost:8000/docsにアクセスして、自動生成されたSwagger UIドキュメントを表示します。 http://localhost:8000/openapi.jsonでOpenAPI仕様を確認することもできます。
- OpenWebUIに接続する
- OpenWebUIを開きます。
- 設定 > ツールと統合に移動します。
- 新しいOpenAPI互換ツールを追加します。
- URLに
http://localhost:8000を使用します。
OpenWebUIでの使用例
接続後、OpenWebUIでこれらのツールを使用して、以下のようなリクエストを行うことができます。
- 芸能人を検索する:
{"q": "washington nationals", "per_page": 5} - 会場を検索する:
{"city": "New York", "per_page": 5}
mcpoプロキシは、OpenAPI RESTインターフェースとMCPプロトコルの間の変換を自動的に処理するため、MCPツールをOpenWebUIが簡単に統合できる標準的なRESTエンドポイントを介してアクセスできます。








