View as Markdown

Twitch Integration

Manage Twitch users, streams, channels, clips, videos, games, follows, and subscriptions

The Twitch integration provides access to manage Twitch users, streams, channels, clips, videos, games, follows, and subscriptions through the Integrate MCP server.

Installation

The Twitch integration is included with the SDK:

import { twitchIntegration } from "integrate-sdk/server";

Setup

1. Create a Twitch OAuth App

  1. Create an OAuth application for Twitch
  2. Configure your redirect URI
  3. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Twitch integration to your server configuration. The integration automatically reads TWITCH_CLIENT_ID and TWITCH_CLIENT_SECRET from your environment variables:

import { createMCPServer, twitchIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    twitchIntegration({
      scopes: ["user:read:email", "channel:read:subscriptions", "clips:edit", "channel:manage:broadcast", "user:read:follows"], // Optional
    }),
  ],
});

You can override the environment variables by passing explicit values:

twitchIntegration({
  clientId: process.env.CUSTOM_TWITCH_ID,
  clientSecret: process.env.CUSTOM_TWITCH_SECRET,
      scopes: ["user:read:email", "channel:read:subscriptions", "clips:edit", "channel:manage:broadcast", "user:read:follows"], // Optional
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("twitch");
const result = await client.twitch.getUsers({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, twitchIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [twitchIntegration()],
});

Configuration Options

export interface TwitchIntegrationConfig {
  clientId?: string;

Default Scopes

These defaults are applied unless you override scopes in the integration config:

  • user:read:email
  • channel:read:subscriptions
  • clips:edit
  • channel:manage:broadcast
  • user:read:follows

Tools

twitch_get_users

Get users

export interface TwitchGetUsersParams { id?: string;

twitch_get_streams

Get streams

export interface TwitchGetStreamsParams { user_id?: string;

twitch_get_channels

Get channels

export interface TwitchGetChannelsParams { broadcaster_id?: string }

twitch_modify_channel

Modify channel

export interface TwitchModifyChannelParams { broadcaster_id?: string;

twitch_create_clip

Create clip

export interface TwitchCreateClipParams { broadcaster_id?: string;

twitch_get_videos

Get videos

export interface TwitchGetVideosParams { id?: string;

twitch_get_games

Get games

export interface TwitchGetGamesParams { id?: string;

twitch_get_channel_followers

Get channel followers

export interface TwitchGetChannelFollowersParams { broadcaster_id?: string;

twitch_get_broadcaster_subscriptions

Get broadcaster subscriptions

export interface TwitchGetBroadcasterSubscriptionsParams { broadcaster_id?: string;

Notes

  • Category: Entertainment
  • Authentication mode: OAuth