Skip to main content
Glama

eventos MCP Server

eventos APIと統合するためのModel Context Protocol (MCP)サーバー実装です。

概要

このMCPサーバーは、eventos イベント管理プラットフォームのAPIと通信し、AIアシスタントがイベントやチケットの管理を行えるようにします。

Related MCP server: Othos MCP

機能

  • 🔐 認証管理: APIキーによる自動認証とトークン管理

  • 🎫 チケット管理: チケットの作成、取得、更新、削除

  • 📋 一覧取得: チケット一覧の取得(ページネーション対応)

セットアップ

必要条件

  • Node.js 20以上

  • npm または yarn

  • eventos APIキー

インストール

# リポジトリのクローン
git clone https://github.com/bsj-m-takigawa/eventos-mcp.git
cd eventos-mcp

# 依存関係のインストール
npm install

# ビルド
npm run build

環境変数の設定

.envファイルを作成し、以下の情報を設定してください:

# eventos設定
EVENTOS_TENANT=your-subdomain(今後指定のドメイン対応できるようにする/認証方式を変えてロールによって取得範囲が変わるとかも検討)
EVENTOS_API_KEY=your-api-key-here
EVENTOS_API_URL=https://public-api.eventos.tokyo

使用方法

MCPサーバーの起動

npm start

MCP設定 (Claude Desktop)

Claude Desktopの設定ファイル(claude_desktop_config.json)に以下を追加:

{
  "mcpServers": {
    "eventos": {
      "command": "node",
      "args": ["/path/to/eventos-mcp/dist/cli/server.js"],
      "env": {
        "EVENTOS_API_KEY": "your-api-key-here"
      }
    }
  }
}

利用可能なMCPツール

認証

eventos_authenticate

eventos APIの認証を行い、アクセストークンを取得します。

{
  "name": "eventos_authenticate",
  "arguments": {}
}

チケット管理

eventos_list_tickets

チケット一覧を取得します。

{
  "name": "eventos_list_tickets",
  "arguments": {
    "content_id": "101103",
    "limit": 10,
    "offset": 0
  }
}

eventos_get_ticket

特定のチケット情報を取得します。

{
  "name": "eventos_get_ticket",
  "arguments": {
    "ticketId": "661431",
    "content_id": "101103"
  }
}

eventos_create_ticket

新しいチケットを作成します。

{
  "name": "eventos_create_ticket",
  "arguments": {
    "content_id": "101103",
    "eventId": "event-001",
    "type": "general",
    "name": "一般チケット",
    "description": "イベント参加用チケット",
    "price": 5000,
    "currency": "JPY",
    "quantity": 100
  }
}

eventos_update_ticket

既存のチケットを更新します。

{
  "name": "eventos_update_ticket",
  "arguments": {
    "ticketId": "661431",
    "content_id": "101103",
    "eventId": "event-001",
    "type": "general",
    "name": "更新後のチケット名",
    "price": 3000,
    "currency": "JPY",
    "quantity": 50
  }
}

eventos_delete_ticket

チケットを削除します。

{
  "name": "eventos_delete_ticket",
  "arguments": {
    "ticketId": "661431",
    "content_id": "101103"
  }
}

API仕様

認証方式

  • エンドポイント: GET /api/v1/token

  • ヘッダー: x-api-key: {API_KEY}

  • レスポンス: { "access_token": "...", "expired_at": "..." }

チケットAPI

  • ベースURL: https://public-api.eventos.tokyo/api/v1/ticket/normal/master/{content_id}

  • 認証ヘッダー:

    • X-API-Key: {API_KEY}

    • Token: {ACCESS_TOKEN}

チケットデータ形式

チケットは複雑な構造を持ちます:

{
  "ticket": {
    "common": {
      // 共通設定(販売期間、価格、在庫数など)
    },
    "language_data": [
      // 言語別の情報(タイトル、説明など)
    ],
    "multiple_prices": [
      // 複数価格設定(オプション)
    ]
  }
}

開発

テストの実行

# 全テストの実行
npm test

# 単体テストのみ
npm test -- tests/unit/

# MCPサーバーの動作確認
node test-mcp-server.cjs

ビルド

npm run build

開発モード

npm run dev

サーバーの起動確認

# MCPサーバーを直接起動
npm start

# 別ターミナルでテストスクリプトを実行
node test-mcp-server.cjs

トラブルシューティング

403 Forbidden エラー

  • APIキーが正しいか確認してください

  • APIキーの有効期限を確認してください

422 Unprocessable Entity エラー

  • enable_multiple_priceは作成後変更できません

  • 必須フィールドがすべて含まれているか確認してください

content_idが必要

  • eventos APIのチケット操作にはcontent_idが必須です

  • 正しいcontent_idを使用しているか確認してください

ライセンス

MIT

貢献

プルリクエストを歓迎します。大きな変更の場合は、まずissueを開いて変更内容を議論してください。

サポート

問題が発生した場合は、GitHubのissueを作成してください。

Related MCP Connectors

Related MCP Servers