Slack
Un servidor MCP para interactuar con la API de Slack, que permite enviar mensajes, gestionar canales y realizar otras acciones en el espacio de trabajo.
Documentación
slack-mcp
Un servidor de Protocolo de Contexto de Modelo (MCP) que permite a los asistentes de IA interactuar con espacios de trabajo de Slack. Este servidor proporciona un puente entre las herramientas de IA y Slack, permitiéndote leer mensajes, publicar contenido y gestionar canales de Slack programáticamente a través de clientes compatibles con MCP.
Descargo de responsabilidad: Esta no es una herramienta oficial de Red Hat.
¿Qué es esto y por qué debería usarlo?
Este servidor MCP transforma tu espacio de trabajo de Slack en un entorno accesible para IA. Proporciona más de 21 herramientas para una interacción integral con Slack:
Operaciones de Mensajes e Hilos
- Leer el historial de canales con filtrado por fecha y soporte de hilos
- Publicar mensajes y respuestas en hilos
- Buscar mensajes en todo el espacio de trabajo o dentro de canales específicos
- Ejecutar comandos de Slack
Gestión de Canales
- Listar, unirse, crear y renombrar canales
- Buscar IDs de canales por nombre
- Invitar usuarios a canales
Reacciones y Usuarios
- Añadir y ver reacciones emoji
- Enviar mensajes directos y DMs grupales
- Gestionar grupos de usuarios (limpiar miembros)
Utilidades
- Verificar el estado de autenticación
- Gestión de caché para el rendimiento
Beneficios Clave
- Integración Perfecta: Conecta tu asistente de IA directamente a Slack sin copiar y pegar manualmente
- Flujos de Trabajo Automatizados: Crea bots de Slack impulsados por IA que puedan leer, analizar y responder mensajes
- Productividad Mejorada: Deja que la IA ayude a gestionar notificaciones, resumir conversaciones o automatizar tareas rutinarias de Slack
- Colaboración en Tiempo Real: Permite que los asistentes de IA participen en discusiones de equipo y proporcionen información instantánea
Casos de Uso
- Asistente de Equipo: Ten una IA que pueda leer actualizaciones del equipo y proporcionar resúmenes
- Gestor de Notificaciones: Categoriza y responde automáticamente a mensajes entrantes
- Base de Conocimientos: IA que pueda buscar en el historial de canales y proporcionar contexto
- Programador de Reuniones: IA que pueda leer solicitudes de reuniones y ayudar a coordinar horarios
Configuración con Claude Code
Este repositorio se distribuye como un plugin de Claude Code con una habilidad de configuración guiada. Claude te guiará a través de todo el proceso — sin necesidad de editar configuración manualmente.
Ejecuta el script de configuración. Se encarga de todo — venv, Playwright, extracción de tokens, script de envoltura y registro en Claude Code. La única interacción requerida es iniciar sesión en Slack cuando se abra el navegador, e ingresar un ID de canal opcional para los registros del servidor, si lo deseas.
python3 <(curl -fsSL https://raw.githubusercontent.com/redhat-community-ai-tools/slack-mcp/main/scripts/setup-slack-mcp.py)
O clona el repositorio primero y ejecútalo localmente:
git clone https://github.com/redhat-community-ai-tools/slack-mcp
python3 slack-mcp/scripts/setup-slack-mcp.py
Opciones:
| Bandera | Descripción |
|---|---|
--logs-channel DXXXXXXXXX | ID de canal de Slack para registros del servidor (opcional; los registros van a stderr si se omite) |
--workspace https://myco.slack.com | Espacio de trabajo de Slack específico para abrir |
--refresh-tokens | Re-extraer tokens cuando expiren (omite todos los demás pasos) |
--skip-verify | Omitir la prueba de humo posterior a la configuración |
Cuando los tokens expiren, simplemente ejecuta:
python3 slack-mcp/scripts/setup-slack-mcp.py --refresh-tokens
Actualización de Tokens de la Aplicación de Escritorio (Linux)
Si tienes la aplicación de escritorio de Slack instalada, puedes actualizar los tokens sin abrir un navegador:
slack-mcp/scripts/slack-refresh-tokens --validate
Esto lee los tokens directamente del almacenamiento local de la aplicación de escritorio en el disco — sin DevTools, sin Playwright, sin pasos manuales. Requiere que la aplicación de Slack esté iniciada sesión.
| Bandera | Descripción |
|---|---|
--validate | Verificar tokens contra la API de Slack después de la extracción |
--env | Imprimir tokens como variables de entorno a stdout (para canalizar a otras herramientas) |
--output FILE | Escribir tokens a una ruta personalizada (predeterminado: ~/.local/share/slack-mcp/tokens.env) |
Requisitos: python3, python3-cryptography, secret-tool (libsecret/gnome-keyring), curl, jq
Esto es útil para ganchos de CI o scripts de inicio de sesión que necesiten actualizar tokens silenciosamente antes de lanzar el servidor MCP.
Autenticación con token de bot (recomendado)
Para mayor seguridad, usa un token de bot de aplicación de Slack (xoxb-) en lugar de tokens de sesión de navegador. Los tokens de bot proporcionan:
- Acceso con alcance — solo los permisos OAuth que otorgas, no acceso completo de usuario
- Identidad distinta — las acciones aparecen como el bot, no como tu cuenta de usuario
- Gestión centralizada — TI puede auditar y revocar a través del panel de administración de Slack
- Sin DevTools de navegador — los tokens se generan una vez en la configuración de la aplicación de Slack
Configuración
- Crea una aplicación de Slack en api.slack.com/apps
- Añade alcances OAuth:
channels:read,channels:history,channels:manage,groups:read,groups:history,groups:write,chat:write,reactions:read,reactions:write,search:read,users:read,commands,mpim:write - Instala en tu espacio de trabajo y copia el Token OAuth de Usuario de Bot (
xoxb-...) - Invita al bot a los canales a los que necesite acceso
Ejecutar con un token de bot
Establece SLACK_BOT_TOKEN en lugar de SLACK_XOXC_TOKEN/SLACK_XOXD_TOKEN:
{
"mcpServers": {
"slack": {
"command": "podman",
"args": [
"run", "-i", "--rm",
"-e", "SLACK_BOT_TOKEN",
"-e", "LOGS_CHANNEL_ID",
"quay.io/redhat-ai-tools/slack-mcp"
],
"env": {
"SLACK_BOT_TOKEN": "xoxb-...",
"LOGS_CHANNEL_ID": "C7000000"
}
}
}
}
LOGS_CHANNEL_ID es opcional. Cuando se omite, la actividad de las herramientas se escribe en stderr en lugar de publicarse en Slack.
Si tanto SLACK_BOT_TOKEN como SLACK_XOXC_TOKEN/SLACK_XOXD_TOKEN están configurados, el token de bot tiene prioridad.
Modo de solo lectura
Para agentes o automatización que deban navegar y buscar en Slack sin publicar, reaccionar, ejecutar comandos o unirse a canales, activa el modo de solo lectura.
- Variable de entorno: establece
SLACK_MCP_READ_ONLYa un valor verdadero (1,true,yes, oon, sin distinción de mayúsculas). - CLI: pasa
--read-onlyal iniciar el servidor (por ejemplo,slack-mcp --read-only, equivalente a configurar la variable).
En modo de solo lectura, las herramientas que mutan el estado de Slack (post_message, send_dm, post_command, add_reaction, join_channel) generan un error claro. Las herramientas de lectura (historial, búsqueda, hilos, whoami, listado de canales, ayudas de actualización de caché, etc.) se comportan como de costumbre. La actividad de herramientas que normalmente se reflejaría en LOGS_CHANNEL_ID se escribe en stderr en su lugar.
Al iniciar, el servidor registra una línea en stderr cuando el modo de solo lectura está activo.
Para Podman o Docker, añade -e SLACK_MCP_READ_ONLY=true (y la clave correspondiente en env) cuando quieras que el contenedor se ejecute en modo de solo lectura.
Ejecutar como herramienta uv (local, sin contenedor)
¿Prefieres no ejecutar un contenedor? Instala slack-mcp como una herramienta uv. Esto coloca un comando slack-mcp en tu PATH que ejecuta el servidor directamente.
Requiere uv y Python ≥ 3.10.
# from a clone of this repo
uv tool install .
# or straight from git
uv tool install git+https://github.com/redhat-community-ai-tools/slack-mcp
Ejecuta slack-mcp --help para un resumen de banderas y variables de entorno.
Tokens desde tokens.env (recomendado)
slack-mcp lee tokens de sesión de Slack desde ~/.local/share/slack-mcp/tokens.env cuando no están ya configurados en el entorno — el mismo archivo que escribe la herramienta de tokens:
scripts/slack-refresh-tokens # or: python3 scripts/setup-slack-mcp.py
Entonces la configuración del cliente MCP no necesita bloque env — solo el comando:
{
"mcpServers": {
"slack": {
"command": "slack-mcp"
}
}
}
El archivo usa SLACK_MCP_XOXC_TOKEN / SLACK_MCP_XOXD_TOKEN; el servidor los mapea a los SLACK_XOXC_TOKEN / SLACK_XOXD_TOKEN que usa. Anula la ruta con SLACK_MCP_TOKENS_FILE. Las variables de entorno reales siempre tienen prioridad sobre el archivo, por lo que aún puedes anular por cliente.
Tokens desde la configuración del cliente (alternativa)
Para mantener los tokens en la configuración de MCP en lugar de un archivo, pásalos en env:
{
"mcpServers": {
"slack": {
"command": "slack-mcp",
"env": {
"SLACK_XOXC_TOKEN": "xoxc-...",
"SLACK_XOXD_TOKEN": "xoxd-...",
"LOGS_CHANNEL_ID": "C7000000"
}
}
}
}
Un token de bot funciona de la misma manera — establece SLACK_BOT_TOKEN en env en lugar del par xoxc/xoxd. Si el cliente no hereda tu PATH, usa la ruta absoluta (~/.local/bin/slack-mcp después de uv tool install), o inicia a través de uv run --directory /path/to/slack-mcp slack-mcp.
La caché de usuario y el tokens.env predeterminado viven bajo ~/.local/share/slack-mcp/ (anula con SLACK_MCP_DATA).
Claude Code (token de bot):
claude mcp add slack -e SLACK_BOT_TOKEN=xoxb-... -- slack-mcp
O, con tokens.env ya en su lugar, sin necesidad de entorno:
claude mcp add slack -- slack-mcp
Ejecutar con Podman o Docker
Puedes ejecutar el servidor slack-mcp en un contenedor usando Podman o Docker:
Ejemplo de configuración para ejecutar con Podman:
{
"mcpServers": {
"slack": {
"command": "podman",
"args": [
"run",
"-i",
"--rm",
"-e", "SLACK_XOXC_TOKEN",
"-e", "SLACK_XOXD_TOKEN",
"-e", "MCP_TRANSPORT",
"-e", "LOGS_CHANNEL_ID",
"quay.io/redhat-ai-tools/slack-mcp"
],
"env": {
"SLACK_XOXC_TOKEN": "xoxc-...",
"SLACK_XOXD_TOKEN": "xoxd-...",
"MCP_TRANSPORT": "stdio",
"LOGS_CHANNEL_ID": "C7000000"
}
}
}
}
LOGS_CHANNEL_ID es opcional. Cuando se omite, la actividad de las herramientas se escribe en stderr en lugar de publicarse en Slack.
Registro de actividad
Por defecto, la actividad de las herramientas se escribe en stderr (visible en tu terminal o registros de proceso). Para reflejar la actividad en un canal de Slack en su lugar, establece LOGS_CHANNEL_ID a cualquier canal al que el bot o usuario de sesión tenga acceso — un auto-DM o un DM con Slackbot funciona bien para uso personal.
LOGS_CHANNEL_ID=C7000000
En modo de solo lectura, LOGS_CHANNEL_ID se ignora y toda la actividad siempre se escribe en stderr.
Ejecutar con transporte no stdio
Para ejecutar el servidor con un transporte no stdio (como SSE), establece la variable de entorno MCP_TRANSPORT a un valor distinto de stdio (por ejemplo, sse).
Ejemplo de configuración para conectarse a un servidor MCP no stdio:
{
"mcpServers": {
"slack": {
"url": "https://slack-mcp.example.com/sse",
"headers": {
"X-Slack-Web-Token": "xoxc-...",
"X-Slack-Cookie-Token": "xoxd-..."
}
}
}
}
Extrae tus tokens XOXC y XOXD de Slack fácilmente usando extensiones de navegador o automatización con Selenium: https://github.com/maorfr/slack-token-extractor.