Skip to main content
Glama

Twitch MCP Server

AI-powered tools for Twitch streamers, exposed via the Model Context Protocol (MCP). Connect your coding/chat assistants (Gemini CLI, Qwen Coder, Claude Code, etc.) to your Twitch chat for moderation, stream management, and engagement.

Quick Start (No Cloning Required)

Prerequisites

  • Node.js 14+ and Java 11+ available on your system PATH

  • A Twitch account with appropriate API credentials

Setup Configuration

Create a config file with your Twitch credentials (use bare access token, no "oauth:" prefix):

Windows: C:/Users/<you>/AppData/Roaming/twitch-mcp/config.json
macOS: ~/Library/Application Support/twitch-mcp/config.json
Linux: ~/.config/twitch-mcp/config.json

Example config.json:

{
  "channel": "YOUR_TWITCH_USERNAME",
  "auth": "YOUR_TWITCH_ACCESS_TOKEN",  
  "clientId": "YOUR_TWITCH_CLIENT_ID",
  "broadcasterId": "YOUR_BROADCASTER_ID",
  "showConnectionMessage": true
}

🥇 Primary Recommendation: Gemini CLI

  • Excellent MCP support with reliable connections

  • Free tier with generous limits

  • Great for day-to-day Twitch moderation and chat management

🥈 Secondary Recommendation: Qwen Coder CLI

  • Strong coding-focused AI with good MCP integration

  • Particularly good for stream development and technical discussions

  • Free and open-source

⚡ For Power Users: Claude Code

  • Most advanced reasoning capabilities

  • Best for complex moderation decisions and nuanced chat analysis

  • Note: Limited credits - save for heavy lifting tasks

Configuration Examples

Gemini CLI Configuration

Add to your Gemini settings:

{
  "mcpServers": {
    "twitch-mcp": {
      "type": "stdio", 
      "command": "npx",
      "args": [
        "-y",
        "twitch-mcp-server@latest",
        "--config",
        "C:/Users/<you>/AppData/Roaming/twitch-mcp/config.json"
      ]
    }
  }
}

Qwen Coder Configuration

Add to your Qwen settings:

{
  "mcpServers": {
    "twitch-mcp": {
      "type": "stdio",
      "command": "npx", 
      "args": [
        "-y",
        "twitch-mcp-server@latest",
        "--config", 
        "C:/Users/<you>/AppData/Roaming/twitch-mcp/config.json"
      ]
    }
  }
}

Related MCP server: Twitch MCP Server

Features

  • Chat Management: Send and read messages, recent chat log, chat analysis

  • Moderation: Timeout/ban users (by username or descriptor keywords)

  • Stream Management: Update title/category, create clips

  • Interactive Tools: Create polls and predictions for viewer engagement

Installation Options

No installation required - your AI tool will automatically fetch the latest version:

npx twitch-mcp-server@latest --config /path/to/config.json

Option 2: Global Install

npm install -g twitch-mcp-server
twitch-mcp-server --config /path/to/config.json

Option 3: Local Development

See README-developers.md for building from source.

Usage Notes

  • Use a bare access token in auth field (no oauth: prefix needed)

  • Only one AI client should connect at a time to avoid conflicts

  • Ensure Node.js and Java are installed on the same system as your AI CLI

  • The server will automatically handle IRC formatting and API authentication

Troubleshooting

Authentication Issues:

  • Confirm auth is a bare token (no oauth: prefix)

  • Verify clientId and scopes match your generated token

  • Ensure broadcasterId matches your channel ID

Connection Problems:

  • Check that both Node.js and Java are in your system PATH

  • Try running java -version and node -version to verify installation

  • For Windows users: Make sure you're not running from WSL if your AI CLI is on Windows

NPX Prompts in Headless Environments:

  • The configurations above use -y flag for non-interactive execution

  • If you encounter prompts, add --yes to the npx command

Support

  • For general usage questions, check the troubleshooting section above

  • For development and contributions, see README-developers.md

  • For Claude-specific integration help, see CLAUDE.md

Available Tools

10 tools
analyzeChatB

Analyze recent Twitch chat messages and provide a summary of topics and activity

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool analyzes and summarizes, but lacks details on what 'recent' means (time window), how the analysis is performed, whether it requires specific permissions, rate limits, or what the output format looks like. This is inadequate for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently conveys the core function without wasted words. It is front-loaded with the main action ('analyze') and resource ('recent Twitch chat messages'), making it easy to scan and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of analysis/summarization, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'topics and activity' entails, how results are formatted, or any behavioral constraints. For a tool that likely involves processing chat data, more context is needed to guide effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing instead on the tool's function. A baseline of 4 is applied since no parameters exist, and the description doesn't add unnecessary param details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('analyze', 'provide') and resources ('recent Twitch chat messages', 'summary of topics and activity'). It distinguishes itself from siblings like 'getRecentChatLog' (which presumably retrieves raw logs) by emphasizing analysis and summarization rather than data retrieval. However, it doesn't explicitly contrast with all siblings, so it falls short of a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a summary of chat topics/activity is needed, but provides no explicit guidance on when to use this versus alternatives like 'getRecentChatLog' for raw data or other tools for chat management. There's no mention of prerequisites, timing considerations, or exclusions, leaving usage context somewhat vague.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

banUserC

Ban a user from the Twitch chat. If no username is provided, it will return the recent chat log for LLM review.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameOrDescriptorYesUsername or descriptor to ban (e.g. 'toxic', 'spammer', or a username)
reasonYesReason for ban (optional)

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It mentions that without a username, it returns chat logs for LLM review, which adds some behavioral context. However, it fails to disclose critical details like permissions required, whether the ban is permanent or temporary, rate limits, or what happens if the user doesn't exist, leaving significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences but poorly structured and front-loaded. The second sentence about returning chat logs without a username is confusing and dilutes the primary purpose, making it inefficient and potentially misleading rather than concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a ban operation with no annotations and no output schema, the description is incomplete. It lacks details on the ban's effects, error handling, or return values, and the chat log return condition adds confusion without clarifying the tool's full behavior, failing to compensate for the missing structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no additional meaning beyond what the schema provides, such as explaining how 'usernameOrDescriptor' values like 'toxic' or 'spammer' function in practice, but the baseline of 3 is appropriate given the high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool bans a user from Twitch chat, which is a specific verb+resource combination. However, it introduces confusion by mentioning that without a username it returns chat logs, which contradicts the primary purpose and doesn't clearly distinguish from sibling tools like 'timeoutUser' or 'getRecentChatLog'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is provided on when to use this tool versus alternatives like 'timeoutUser' or 'getRecentChatLog'. The description implies usage for banning users but offers no context on prerequisites, exclusions, or comparative scenarios with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createTwitchClipB

Create a Twitch clip of the current stream

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It states the tool creates a clip but doesn't reveal critical traits: whether this requires broadcaster permissions, how long the clip is, if it's saved automatically, rate limits, or what happens on failure. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that directly states the tool's function without any fluff or redundant information. Every word earns its place by conveying the essential action and target. It's appropriately sized for a simple tool with no parameters, making it highly efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity as a mutation operation with no annotations and no output schema, the description is incomplete. It lacks details on permissions, clip duration, success/failure responses, and how it interacts with the streaming context. For a tool that modifies state in a live environment, more context is needed to ensure safe and effective use by an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description doesn't add parameter details, which is appropriate since none exist. It implies the tool operates on the current stream without needing inputs, which aligns with the schema. Baseline 4 is given for zero-parameter tools where the description doesn't need to compensate for schema gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('create') and target resource ('Twitch clip of the current stream'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'createTwitchPoll' or 'createTwitchPrediction', but the specificity of 'clip' versus 'poll/prediction' provides inherent distinction. The description avoids tautology by not just restating the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal guidance on when to use this tool, only implying it's for creating clips during a live stream. It doesn't mention prerequisites (e.g., requires an active stream), exclusions (e.g., cannot create clips from VODs), or alternatives among siblings (e.g., when to use this versus other creation tools like polls). Without explicit usage context, the agent must infer timing and constraints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createTwitchPollC

Create a Twitch Poll

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesPoll title
choicesYesComma-separated choices
durationYesDuration in seconds

TDQS

C2.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. 'Create a Twitch Poll' implies a write operation but reveals nothing about authentication requirements, rate limits, side effects, error conditions, or what happens upon success. This is inadequate for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at just three words, with zero wasted language. It's front-loaded with the core action and resource. While under-specified, it earns full marks for brevity and structure efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, what permissions are needed, or how it differs from similar sibling tools. The 100% schema coverage helps with parameters, but overall context for proper tool selection and invocation is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all three parameters clearly documented in the schema. The description adds no parameter information beyond what the schema already provides. According to scoring rules, when schema coverage is high (>80%), the baseline score is 3 even without parameter details in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create a Twitch Poll' is a tautology that restates the tool name without adding specificity. It mentions the resource (Twitch Poll) but doesn't clarify what 'create' entails or distinguish it from sibling tools like createTwitchClip or createTwitchPrediction. This provides minimal value beyond the tool name itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There are no indications of prerequisites, appropriate contexts, or comparisons to sibling tools like createTwitchPrediction (which might serve a similar interactive function). This leaves the agent with no usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createTwitchPredictionC

Create a Twitch Prediction

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesPrediction title
outcomesYesComma-separated outcomes
durationYesDuration in seconds

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure but only states the action 'Create' without detailing permissions, side effects, rate limits, or response format. It fails to inform about mutation risks or operational constraints, which is inadequate for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence, 'Create a Twitch Prediction', which is front-loaded and wastes no words. However, this brevity contributes to under-specification rather than effective communication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity as a creation operation with no annotations and no output schema, the description is incomplete. It lacks necessary context on behavior, usage, and results, failing to compensate for the absence of structured data, which is insufficient for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents parameters like title, outcomes, and duration. The description adds no additional meaning beyond the schema, such as format examples or constraints, resulting in a baseline score of 3 where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create a Twitch Prediction' is a tautology that restates the tool name without adding meaningful context. It specifies the verb 'Create' and resource 'Twitch Prediction', but lacks detail about what a Twitch Prediction is or what this creation entails, making it vague compared to more specific alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like createTwitchPoll or other sibling tools. The description offers no context, prerequisites, or exclusions, leaving the agent without direction for appropriate tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getRecentChatLogB

Get the last 20 chat messages for moderation context

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the tool retrieves messages 'for moderation context', which hints at a read-only, informational purpose, but doesn't disclose behavioral traits such as whether it requires authentication, rate limits, or how it handles errors. This leaves significant gaps in understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose and context without any wasted words. It is front-loaded and appropriately sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but minimal. It covers the basic purpose and context, but for a tool with no annotations, it could benefit from more behavioral details (e.g., response format, error handling) to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't add parameter details, earning a baseline score of 4 for not introducing unnecessary information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('last 20 chat messages'), specifying the exact scope and quantity. However, it doesn't explicitly differentiate from sibling tools like 'analyzeChat' or 'sendMessageToChat', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context ('for moderation context'), suggesting when this tool might be appropriate, but doesn't provide explicit guidance on when to use it versus alternatives like 'analyzeChat' or when not to use it. The context is helpful but lacks specificity about alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendMessageToChatC

Send message to the Twitch Chat

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe message

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like whether this requires broadcaster/moderator permissions, rate limits, message length constraints, or potential side effects (e.g., triggering automod).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool (sending messages implies writing) with no annotations and no output schema, the description is incomplete. It lacks critical context about permissions, rate limits, response format, or error conditions, which are essential for safe and effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single 'message' parameter. The description doesn't add any meaning beyond what the schema provides (e.g., character limits, formatting rules, or content restrictions), meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Send message') and target ('to the Twitch Chat'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'analyzeChat' or 'getRecentChatLog' which also interact with chat, missing explicit distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing chat permissions), appropriate contexts, or exclusions, leaving the agent without usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

timeoutUserC

Timeout a user in the Twitch chat. If no username is provided, it will return the recent chat log for LLM review.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameOrDescriptorYesUsername or descriptor to timeout (e.g. 'toxic', 'spammer', or a username)
reasonYesReason for timeout (optional)

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the main action (timeout) and an edge case (returning chat logs), but fails to cover critical aspects like permissions needed, timeout duration, effects on the user, or error handling. The edge case description is inconsistent with the required parameters, adding confusion rather than clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences but poorly structured: the first sentence states the purpose, while the second introduces a contradictory edge case that undermines clarity. This under-specification wastes space on misleading information rather than being efficiently concise. It fails to front-load essential details effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a moderation action with no annotations or output schema, the description is incomplete. It lacks details on outcomes (e.g., what happens after timeout), error cases, or integration with sibling tools like 'banUser'. The contradictory edge case further reduces completeness, leaving the agent with inadequate context for reliable use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents the two parameters. The description adds no meaningful semantic context beyond what the schema provides (e.g., it doesn't explain how 'usernameOrDescriptor' values like 'toxic' are interpreted or typical 'reason' formats). The mention of 'no username' contradicts the required 'usernameOrDescriptor', offering no useful parameter guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool's purpose ('Timeout a user in the Twitch chat'), which is a clear verb+resource combination. However, it adds a confusing secondary behavior ('If no username is provided, it will return the recent chat log for LLM review') that contradicts the required parameters and muddles the primary purpose. This makes it vague rather than specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'banUser' or 'getRecentChatLog'. It mentions returning chat logs in a specific case, but this is misleading due to parameter requirements. There are no explicit when/when-not instructions or comparisons to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

updateStreamCategoryC

Update the game category of the stream

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYesThe new game category, e.g. 'Fortnite'

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a mutation ('Update') but doesn't specify whether this requires authentication, has side effects, or what the response looks like. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no wasted words, clearly stating the tool's purpose. It is appropriately sized and front-loaded, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's mutation nature and lack of annotations or output schema, the description is incomplete. It doesn't address behavioral aspects like permissions, side effects, or response format, leaving gaps that could hinder an AI agent's ability to use the tool effectively in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'category' parameter documented as 'The new game category, e.g. 'Fortnite''. The description adds no additional parameter details beyond what the schema provides, so it meets the baseline score of 3 for adequate but not enhanced parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update') and the resource ('the game category of the stream'), making the purpose immediately understandable. However, it doesn't explicitly distinguish this tool from its sibling 'updateStreamTitle', which handles a different aspect of stream metadata, leaving room for slight ambiguity in sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as 'updateStreamTitle' for changing the stream title instead of the category. It also lacks context about prerequisites, permissions, or typical use cases, offering minimal usage direction beyond the basic action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

updateStreamTitleC

Update the stream title

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe new title for the stream

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Update' implies a mutation operation, but the description doesn't state whether this requires authentication, what permissions are needed, whether changes are reversible, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves critical behavioral traits unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with just three words: 'Update the stream title'. It's front-loaded with the core action and resource, with zero wasted words. This is an example of efficient communication where every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, what errors might occur, or behavioral constraints. While the schema covers the single parameter well, the overall context for safe and effective use is lacking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the single parameter 'title' documented as 'The new title for the stream'. The description doesn't add any meaning beyond this, such as character limits, formatting rules, or examples. With high schema coverage, the baseline score of 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Update the stream title' clearly states the verb ('Update') and resource ('stream title'), making the basic purpose understandable. However, it doesn't differentiate from sibling tools like 'updateStreamCategory' or provide any specificity about what kind of stream or platform this applies to. The purpose is clear but generic and lacks distinguishing context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing streamer permissions), when it's appropriate (e.g., during a live stream), or how it differs from sibling tools like 'updateStreamCategory'. Without any usage context, the agent must infer when this tool is applicable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 10 tool updates
    • First observedanalyzeChat
    • First observedbanUser
    • First observedcreateTwitchClip
    • First observedcreateTwitchPoll
    • First observedcreateTwitchPrediction
    • First observedgetRecentChatLog
    • First observedsendMessageToChat
    • First observedtimeoutUser
    • First observedupdateStreamCategory
    • First observedupdateStreamTitle

TDQS

B3/5.0
Disambiguation4/5

Most tools have distinct purposes targeting different Twitch functionalities like chat moderation, stream management, and interactive features. However, 'banUser' and 'timeoutUser' have overlapping descriptions when no username is provided, both returning recent chat logs, which could cause confusion in selection.

Naming Consistency3/5

The naming is mixed with some tools using camelCase (e.g., 'analyzeChat', 'banUser') and others using more descriptive phrases (e.g., 'createTwitchClip', 'updateStreamTitle'). While readable, the lack of a uniform pattern reduces predictability and consistency across the toolset.

Tool Count5/5

With 10 tools, the count is well-scoped for a Twitch integration server. Each tool addresses a specific aspect of Twitch functionality, such as chat management, stream updates, and content creation, making the set comprehensive without being overwhelming.

Completeness4/5

The toolset covers key areas like chat moderation, stream configuration, and interactive features (polls, predictions, clips), providing good lifecycle coverage. Minor gaps include missing tools for viewing stream stats or managing followers, but core workflows are adequately supported.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

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/eclipsevr-live/twitch-mcp'

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