Twitch MCP Server
Provides tools for interacting with the Twitch API, allowing users to retrieve user information, check live status, list videos, get top streams and games, search channels, and fetch game details.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Twitch MCP ServerCheck if shroud is live"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Servidor MCP para la API de Twitch
Servidor MCP (Model Context Protocol) que proporciona herramientas para interactuar con la API de Twitch. Permite que asistentes de IA y otras aplicaciones accedan a datos de Twitch de manera estructurada y segura.
🚀 Características
Este servidor MCP proporciona las siguientes herramientas:
📊 Herramientas Disponibles
get_twitch_user- Obtiene información detallada de un usuarioEntrada:
login(nombre de usuario)Devuelve: ID, nombre para mostrar, biografía, imagen de perfil, fecha de creación, etc.
check_user_live- Verifica si un usuario está transmitiendo en vivoEntrada:
login(nombre de usuario)Devuelve: Datos del stream si está en vivo,
nullsi está offline
get_user_videos- Obtiene los videos de un usuarioEntrada:
login,video_type(archive/highlight/upload/all),limit(1-100)Devuelve: Lista de videos con títulos, duración, vistas, thumbnails, etc.
get_top_streams- Obtiene los streams más popularesEntrada:
game_name(opcional),limit(1-100)Devuelve: Lista de streams con espectadores, títulos, juegos, etc.
get_top_games- Obtiene los juegos más popularesEntrada:
limit(1-100)Devuelve: Lista de juegos con nombre, box art, IDs
search_channels- Busca canales por palabras claveEntrada:
query,live_only(bool),limit(1-100)Devuelve: Lista de canales coincidentes
get_game_info- Obtiene información de un juegoEntrada:
game_nameDevuelve: ID del juego, nombre exacto, box art URL
Related MCP server: Twitch MCP Server
📋 Requisitos Previos
Python 3.10 o superior
Credenciales de Twitch API:
Crea una nueva aplicación
Obtén tu
Client IDyClient Secret
🔧 Instalación
Método 1: Con UV (Recomendado) ⚡
Paso 1: Instalar UV
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"Paso 2: Configurar y ejecutar
cd d:\Workspaces\twitch\mcp
copy .env.example .env
notepad .env # Agrega tus credenciales
# Ejecutar (UV instalará las dependencias automáticamente)
uv run server.pyVer QUICKSTART_UV.md para más detalles.
Método 2: Con pip tradicional
Paso 1: Navegar al directorio
cd d:\Workspaces\twitch\mcpPaso 2: Instalar dependencias
pip install -r requirements.txtPaso 3: Configurar credenciales
copy .env.example .env
notepad .env # Agrega tus credencialesMétodo 3: Contenedor Docker 🐳
Paso 1: Crear tu archivo de variables de entorno (se reutiliza fuera del contenedor)
cd d:\Workspaces\twitch\mcp
copy .env.example .env
notepad .env # Agrega tus credenciales de TwitchPaso 2: Construir la imagen
docker build -t twitch-mcp .Paso 3: Ejecutar el contenedor en modo SSE (puedes reutilizar el mismo .env)
docker run --rm --name twitch-mcp --env-file .env -p 8000:8000 twitch-mcpUsa
`--host 0.0.0.0`dentro del contenedor para exponer el servidor. ElCMDpor defecto ya incluye ese valor.
Personalizar host/puerto:
docker run --rm --name twitch-mcp --env-file .env -p 9000:9000 twitch-mcp python server.py --mode sse --host 0.0.0.0 --port 9000Modo stdio desde Docker: El modo stdio requiere interactuar con stdin/stdout del contenedor. Puedes lanzar:
docker run --rm --name twitch-mcp-stdio --env-file .env -i twitch-mcp python server.py --mode stdioTen en cuenta que la mayoría de clientes MCP esperan ejecutar el binario directamente en tu máquina, por lo que este modo desde Docker suele usarse solo para pruebas puntuales.
Método 4: Docker Compose ⚙️
Ideal para dejar el servidor corriendo en segundo plano y reiniciarlo automáticamente si se cae.
Paso 1: Asegúrate de tener tu .env listo (mismo que en el método Docker).
Paso 2: Levanta el servicio y construye la imagen (solo la primera vez o cuando cambies el código):
docker compose up --buildEl servicio quedará escuchando en http://localhost:8000/sse.
Ejecutar en segundo plano:
docker compose up -dDetener:
docker compose downSobrescribir parámetros (por ejemplo, otro puerto):
docker compose run --rm -p 9000:9000 twitch-mcp python server.py --mode sse --host 0.0.0.0 --port 9000El archivo docker-compose.yml mapea el puerto 8000 por defecto y reutiliza el .env para tus credenciales.
Despliegue continuo con GitHub Actions 🚀
Se incluyó un workflow en .github/workflows/deploy-mcp.yml que sincroniza la carpeta mcp con tu VPS y ejecuta docker compose up -d --build automáticamente cuando haces push a master.
En tu repositorio de GitHub crea los siguientes Secrets (Settings → Secrets and variables → Actions):
VPS_HOST: IP o dominio de tu VPS.VPS_PORT: Puerto SSH (usa22si es el predeterminado).VPS_USER: Usuario con permisos para ejecutar Docker.VPS_SSH_KEY: Clave privada en formato PEM autorizada en la VPS (sin passphrase).VPS_APP_PATH: Ruta absoluta en la VPS donde se copiará el proyecto (ej./opt/twitch).
Asegúrate de que en el VPS exista el archivo
mcp/.envcon tus credenciales antes del primer despliegue (se preserva entre despliegues).Ejecuta
docker compose up -dmanualmente la primera vez si quieres validar que todo funciona.
El workflow también puede iniciarse manualmente desde la pestaña Actions (evento workflow_dispatch).
🎯 Uso
Modo 1: STDIO (para clientes MCP como Claude Desktop)
Con UV:
uv run server.py
# O usa el script de inicio
.\run.batCon Python tradicional:
python server.pyModo 2: SSE (para desarrollo y testing)
El modo SSE permite conectarte al servidor desde un navegador o herramientas de testing como MCP Inspector.
Con UV:
# Ejecutar en modo SSE (puerto 8000 por defecto)
uv run server.py --mode sse
# O usa el script de inicio
.\run-sse.bat
# Personalizar host y puerto
uv run server.py --mode sse --host 0.0.0.0 --port 3000Con Python tradicional:
python server.py --mode sseUna vez iniciado, verás algo como:
🚀 Servidor MCP de Twitch en modo SSE
📡 Escuchando en http://localhost:8000
🔗 Endpoint SSE: http://localhost:8000/sse
📨 Endpoint Messages: http://localhost:8000/messages
💡 Tip: Usa MCP Inspector para conectarte:
npx @modelcontextprotocol/inspector http://localhost:8000/sseAutenticación OAuth en modo SSE
El servidor implementa OAuth 2.1 con grant type
client_credentialsy registro dinámico de clientes (RFC 7591).Los metadatos se exponen en
/.well-known/oauth-authorization-servertal como indica la especificación MCP 2025-03-26.Clientes (por ejemplo, ChatGPT connectors) pueden registrarse automáticamente enviando un
POST /registerconredirect_uris.Para obtener tokens, envía un
POST /tokencongrant_type=client_credentials,client_idyclient_secret(métodoclient_secret_post).Los tokens emitidos deben enviarse como
Authorization: Bearer <token>en todas las llamadas a/ssey/messages.Personaliza la URL pública con
MCP_PUBLIC_BASE_URLsi expones el servidor detrás de un proxy o dominio distinto.
Testear con MCP Inspector
# Instalar MCP Inspector (si no lo tienes)
npm install -g @modelcontextprotocol/inspector
# Conectarse al servidor SSE
npx @modelcontextprotocol/inspector http://localhost:8000/sseConfigurar en Claude Desktop (o cualquier cliente MCP)
Ver guía completa: CLAUDE_SETUP.md 📖
Resumen rápido - Con UV (Recomendado) - Windows (%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"twitch": {
"command": "uv",
"args": [
"--directory",
"d:\\Workspaces\\twitch\\mcp",
"run",
"server.py"
],
"env": {
"TWITCH_CLIENT_ID": "tu_client_id_aqui",
"TWITCH_CLIENT_SECRET": "tu_client_secret_aqui"
}
}
}
}Con Python tradicional - Windows:
{
"mcpServers": {
"twitch": {
"command": "python",
"args": [
"d:\\Workspaces\\twitch\\mcp\\server.py"
],
"env": {
"TWITCH_CLIENT_ID": "tu_client_id_aqui",
"TWITCH_CLIENT_SECRET": "tu_client_secret_aqui"
}
}
}
}macOS/Linux (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"twitch": {
"command": "uv",
"args": [
"--directory",
"/ruta/absoluta/a/twitch/mcp",
"run",
"server.py"
],
"env": {
"TWITCH_CLIENT_ID": "tu_client_id_aqui",
"TWITCH_CLIENT_SECRET": "tu_client_secret_aqui"
}
}
}
}💡 Ejemplos de Uso
Una vez configurado el servidor en tu cliente MCP, puedes hacer preguntas como:
"¿Está a_robertdev en vivo en Twitch?"
"Dame los últimos 10 videos de shroud"
"¿Cuáles son los 5 juegos más populares en Twitch ahora?"
"Busca canales que transmitan Minecraft"
"Dame información del usuario ninja"
🏗️ Arquitectura
mcp/
├── server.py # Servidor MCP principal (soporta stdio y SSE)
├── twitch_client.py # Cliente de Twitch API con OAuth y rate limiting
├── pyproject.toml # Configuración del proyecto para UV
├── requirements.txt # Dependencias de Python (pip)
├── .env.example # Plantilla de configuración
├── .gitignore # Archivos ignorados por git
├── run.bat # Script de inicio para Windows (stdio)
├── run.sh # Script de inicio para macOS/Linux (stdio)
├── run-sse.bat # Script de inicio para Windows (SSE)
├── run-sse.sh # Script de inicio para macOS/Linux (SSE)
├── README.md # Este archivo
├── QUICKSTART_UV.md # Guía rápida para UV
├── SSE_GUIDE.md # Guía completa del modo SSE
└── EXAMPLES.md # Ejemplos de uso prácticosCaracterísticas del Cliente Twitch
✅ OAuth automático - Manejo de tokens con renovación automática
✅ Rate limiting - Detecta y maneja límites de tasa (800 req/min)
✅ Paginación - Soporte automático para resultados paginados
✅ Manejo de errores - Respuestas estructuradas con información útil
✅ Cache de tokens - Tokens válidos se reutilizan durante ~1 hora
🔒 Seguridad
Nunca commitees tu archivo
.envo expongas tus credencialesEl archivo
.envestá en.gitignorepor defectoLas credenciales se pasan como variables de entorno, no se guardan en código
🛠️ Desarrollo
Agregar nuevas herramientas
Define la herramienta en
handle_list_tools()con su schema JSONImplementa la lógica en
handle_call_tool()Si necesitas un nuevo endpoint de Twitch, agrégalo en
twitch_client.py
Debugging
El servidor imprime mensajes de diagnóstico en stderr:
✅ Twitch API inicializada correctamenteSi hay errores de credenciales:
❌ Error al inicializar Twitch API: ...
💡 Verifica que TWITCH_CLIENT_ID y TWITCH_CLIENT_SECRET estén configurados📚 Recursos
QUICKSTART_UV.md - Guía rápida para usar UV
SSE_GUIDE.md - Guía completa del modo SSE para desarrollo
EXAMPLES.md - Ejemplos prácticos de uso
🤝 Contribuciones
Este servidor es parte del proyecto Twitch API Integration. Para mejoras o reportar bugs, consulta el repositorio principal.
📝 Licencia
Parte del proyecto Twitch API Integration - Uso educativo y personal.
¡Disfruta integrando Twitch con tus asistentes de IA! 🎮🤖
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/hizokabenitez/twitch_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server