twitch mcp server

Local 2025-08-31 23:54:17 0

Enables interaction with the Twitch API, allowing users to retrieve comprehensive information about channels, streams, games, and more, with additional support for searching and accessing chat elements like emotes and badges.


A Model Context Protocol (MCP) server that interacts with the Twitch API. This server utilizes the Twitch Helix API to retrieve channel information, stream details, game data, and more.

Features

  • Get channel information (profile, description, creation date, etc.)
  • Get stream information (title, game, viewer count, start time, etc.)
  • Get list of top games
  • Search categories/games
  • Search channels
  • Get live streams (filterable by game and language)
  • Get global emotes
  • Get global chat badges
  • Get user information
  • Get clips from a channel
  • Get chat settings
  • Get videos from a specified channel
  • Get comments from archived videos (using GraphQL API)

Prerequisites

  • Node.js (v18 or higher recommended)
  • Twitch Developer Account
  • Twitch API Client ID and Client Secret
  • Twitch GraphQL Client ID (for video comments feature)

Installation

Install the package using npm:

npm install @mtane0412/twitch-mcp-server

Configuration

  1. Create a new application in the Twitch Developer Console

  2. Set the following environment variables:

# macOS/Linux
export TWITCH_CLIENT_ID="your_client_id"
export TWITCH_CLIENT_SECRET="your_client_secret"

# Windows (PowerShell)
$env:TWITCH_CLIENT_ID="your_client_id"
$env:TWITCH_CLIENT_SECRET="your_client_secret"

Alternatively, you can create a .env file:

TWITCH_CLIENT_ID=your_client_id
TWITCH_CLIENT_SECRET=your_client_secret

Usage

After installation, you can start using the server by running:

npx @mtane0412/twitch-mcp-server

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:

npm run inspect

The Inspector will provide a URL to access debugging tools in your browser.

License

MIT License

[
  {
    "description": "チャンネル情報を取得します",
    "inputSchema": {
      "properties": {
        "channelName": {
          "description": "Twitchチャンネル名",
          "type": "string"
        }
      },
      "required": [
        "channelName"
      ],
      "type": "object"
    },
    "name": "get_channel_info"
  },
  {
    "description": "配信情報を取得します",
    "inputSchema": {
      "properties": {
        "channelName": {
          "description": "Twitchチャンネル名",
          "type": "string"
        }
      },
      "required": [
        "channelName"
      ],
      "type": "object"
    },
    "name": "get_stream_info"
  },
  {
    "description": "人気のゲームのリストを取得します",
    "inputSchema": {
      "properties": {
        "limit": {
          "description": "取得する最大ゲーム数(デフォルト: 20)",
          "maximum": 100,
          "minimum": 1,
          "type": "number"
        }
      },
      "type": "object"
    },
    "name": "get_top_games"
  },
  {
    "description": "特定のゲームの情報を取得します",
    "inputSchema": {
      "properties": {
        "name": {
          "description": "ゲーム名",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "name": "get_game"
  },
  {
    "description": "ゲームやカテゴリーを検索します",
    "inputSchema": {
      "properties": {
        "limit": {
          "description": "取得する最大カテゴリー数(デフォルト: 20)",
          "maximum": 100,
          "minimum": 1,
          "type": "number"
        },
        "query": {
          "description": "検索キーワード",
          "type": "string"
        }
      },
      "required": [
        "query"
      ],
      "type": "object"
    },
    "name": "search_categories"
  },
  {
    "description": "チャンネルを検索します",
    "inputSchema": {
      "properties": {
        "limit": {
          "description": "取得する最大チャンネル数(デフォルト: 20)",
          "maximum": 100,
          "minimum": 1,
          "type": "number"
        },
        "query": {
          "description": "検索キーワード",
          "type": "string"
        }
      },
      "required": [
        "query"
      ],
      "type": "object"
    },
    "name": "search_channels"
  },
  {
    "description": "現在ライブ配信中のストリームを取得します",
    "inputSchema": {
      "properties": {
        "game": {
          "description": "ゲーム名でフィルター",
          "type": "string"
        },
        "language": {
          "description": "言語でフィルター (例: ja, en)",
          "type": "string"
        },
        "limit": {
          "description": "取得する最大ストリーム数(デフォルト: 20)",
          "maximum": 100,
          "minimum": 1,
          "type": "number"
        }
      },
      "type": "object"
    },
    "name": "get_streams"
  },
  {
    "description": "グローバルエモートのリストを取得します",
    "inputSchema": {
      "properties": {},
      "type": "object"
    },
    "name": "get_global_emotes"
  },
  {
    "description": "グローバルチャットバッジのリストを取得します",
    "inputSchema": {
      "properties": {},
      "type": "object"
    },
    "name": "get_global_badges"
  },
  {
    "description": "ユーザーの情報を取得します",
    "inputSchema": {
      "properties": {
        "userNames": {
          "description": "Twitchユーザー名の配列",
          "items": {
            "type": "string"
          },
          "maxItems": 100,
          "type": "array"
        }
      },
      "required": [
        "userNames"
      ],
      "type": "object"
    },
    "name": "get_users"
  },
  {
    "description": "クリップの情報を取得します",
    "inputSchema": {
      "properties": {
        "channelName": {
          "description": "Twitchチャンネル名",
          "type": "string"
        },
        "limit": {
          "description": "取得する最大クリップ数(デフォルト: 20)",
          "maximum": 100,
          "minimum": 1,
          "type": "number"
        }
      },
      "required": [
        "channelName"
      ],
      "type": "object"
    },
    "name": "get_clips"
  },
  {
    "description": "チャット設定を取得します",
    "inputSchema": {
      "properties": {
        "channelName": {
          "description": "Twitchチャンネル名",
          "type": "string"
        }
      },
      "required": [
        "channelName"
      ],
      "type": "object"
    },
    "name": "get_chat_settings"
  },
  {
    "description": "チャンネルのビデオを取得します",
    "inputSchema": {
      "properties": {
        "channelName": {
          "description": "Twitchチャンネル名",
          "type": "string"
        },
        "limit": {
          "description": "取得する最大ビデオ数(デフォルト: 20)",
          "maximum": 100,
          "minimum": 1,
          "type": "number"
        }
      },
      "required": [
        "channelName"
      ],
      "type": "object"
    },
    "name": "get_videos"
  },
  {
    "description": "アーカイブ動画のコメントを取得します",
    "inputSchema": {
      "properties": {
        "cursor": {
          "description": "次のページのカーソル",
          "type": "string"
        },
        "limit": {
          "description": "取得する最大コメント数(デフォルト: 20)",
          "maximum": 100,
          "minimum": 1,
          "type": "number"
        },
        "videoId": {
          "description": "ビデオID",
          "type": "string"
        }
      },
      "required": [
        "videoId"
      ],
      "type": "object"
    },
    "name": "get_video_comments"
  }
]