Slack MCP Server
Accede a DMs, canales y mensajes de Slack desde Claude. Autenticación mediante token del navegador: no se necesita OAuth.
Documentación
Slack MCP Server
Ponte al día en Slack sin leerlo.
No leídos, hilos y búsqueda, en el contexto de tu agente, desde la sesión que ya tienes.
npx -y @jtalk22/slack-mcp --setup
Claude Code Claude Desktop Cursor Copilot Windsurf Gemini CLI Codex CLI cualquier cliente stdio MCP
▶ Es lunes, 9:07—mira lo que explotó durante la noche · recorrido interactivo · guía de configuración
Cómo funciona · Por qué autenticación de sesión · Grid y credenciales · Instalación · 21 herramientas · Flujos de trabajo · Local vs. alojado
Es lunes, 9:07. Slack ya tiene opiniones formadas.
Preguntas "¿qué explotó durante la noche?" y el agente lee el espacio de trabajo en lugar de ti. Reconstruye el P1 de las 2 AM desde #incidents—responsable, resolución y el paso del runbook que sigue mal. Encuentra el PIN de la impresora que ha estado esperando en #facilities durante cinco meses. Luego cierra los bucles gestionados—respuestas, reacciones, cambios de estado de lectura—solo donde tú lo apruebas.
Esto no es automatización de capturas de pantalla. El agente llama a Slack a través de una superficie de herramientas MCP real y recibe resultados tipados que puede buscar, resumir, exportar o sobre los que puede actuar.
Construido más allá de la demo
La parte difícil no es otra herramienta de chat. Es la capa operativa subyacente: extracción de sesión del navegador que nombra sus etapas de fallo, un ciclo de vida de credenciales diseñado para rotación, lecturas de fidelidad completa, escrituras protegidas y salida de flujo de trabajo tipada. El código es JavaScript simple en este repositorio—audítalo antes de confiarle una sesión.
La ingeniería subyacente: extracción, ciclo de vida de credenciales, lecturas, escrituras protegidas, salida tipada
1. El motor de sesión del navegador
--setup convierte la identidad de Slack que Chrome ya tiene en un servidor MCP local:
- encuentra el token
xoxc-más reciente en el LevelDB en disco de Chrome; - captura la base de datos SQLite de cookies con sus archivos laterales WAL;
- recupera el Almacenamiento Seguro de Chrome del Llavero de macOS;
- ejecuta descifrado PBKDF2 + AES-128-CBC compatible con Chrome localmente;
- no requiere DevTools, paso de portapapeles, bandera de navegador ni pestaña de Slack activa;
- nombra la etapa de extracción fallida—
keychain_timeout,no_slack_cookie_row,cookie_decrypt_failedy más—en lugar de devolver un error opaco.
2. Ciclo de vida de credenciales, no pegado de credenciales
Las credenciales de sesión rotan. El servidor está construido en torno a esa realidad:
- backends de almacenamiento
auto,keychain-onlyyfile; - archivos de token solo para el propietario y una ruta solo de Llavero sin credenciales en texto plano en disco;
- escrituras atómicas de archivos, migración verificada al Llavero, bloqueos entre procesos y mutex de actualización;
- comprobaciones de salud proactivas y actualización automática en macOS;
- credenciales en memoria de último valor conocido cuando la persistencia no está disponible temporalmente;
- perfiles aislados para Slack de trabajo y personal;
- manejo de cierre ante fallos para configuración de almacenamiento o perfil inválida.
3. Lecturas de Slack de fidelidad completa
Lee DMs y canales, busca en el espacio de trabajo, exporta historiales completos con hilos, inspecciona el estado de no leídos y resuelve usuarios. Activa bloques, adjuntos, archivos, reacciones, metadatos y marcadores de bots/aplicaciones cuando el texto solo no es el mensaje real.
4. El agente puede terminar el trabajo
Envía una respuesta, añade o elimina una reacción y marca una conversación como leída. Cada ruta de escritura en el espacio de trabajo lleva una anotación destructiva MCP para que los clientes compatibles puedan poner la aprobación donde corresponde.
5. Slack entra, JSON tipado sale
Guarda perfiles de flujo de trabajo para salas de incidentes, informes ejecutivos, bandejas de soporte, monitoreo de lanzamientos y operaciones personalizadas. Los primitivos OSS son JSON local; el cerebro alojado opcional los convierte en informes con forma de contrato.
Dos formas de acceder a Slack
Slack ya sabe quién eres. La ruta oficial es una integración remota gestionada por Slack gobernada por la política del espacio de trabajo—un ajuste sólido para despliegues sancionados por la organización, documentada por Slack con ajustes de integración bajo control administrativo. Este proyecto es la ruta local directa: autenticación basada en sesión desde la sesión del navegador que ya está en Chrome, stdio local, cualquier cliente stdio MCP y sin aplicación de Slack ni solicitud de administrador. Misma identidad de Slack. Mismos permisos subyacentes. Una ruta radicalmente más corta desde tu espacio de trabajo hasta tu agente.
Lado a lado: la ruta de integración gestionada vs. la ruta de sesión local
| Slack MCP oficial | Slack MCP Server — local | |
|---|---|---|
| Punto de partida | Una integración remota gestionada por Slack | La sesión de Slack que ya está en Chrome |
| Control del espacio de trabajo | Gobernado por los ajustes de integración del espacio de trabajo | Sin aplicación de Slack ni solicitud de administrador para la ruta local |
| Transporte | HTTP transmisible | stdio local |
| Superficie de cliente | Integraciones de socios compatibles con Slack | Cualquier cliente stdio MCP |
| Autenticación | OAuth | Sesión de navegador existente |
| Vida útil de credenciales | OAuth gestionado | Sesión rotativa con comprobaciones de salud y actualización |
| Superficie de producto | Amplias capacidades nativas de Slack | 21 herramientas enfocadas en leer, actuar y automatizar |
| Tiempo de ejecución | Gestionado por Slack | Código MIT en tu máquina |
¿La ruta local va contra los términos de Slack?
Trata la automatización de sesión del navegador como una decisión de uso aceptable para ti y tu espacio de trabajo. El servidor actúa como tu identidad de Slack con sesión iniciada y no puede leer un canal que tú no puedas leer ni actuar como otro usuario. No evade la retención del lado del servidor, DLP, exportaciones de cumplimiento ni controles de auditoría.
"Sin solicitud de administrador" significa que no hay instalación de aplicación de Slack que aprobar. No significa que la actividad del espacio de trabajo desaparezca de los sistemas de Slack. Si tu política requiere una integración OAuth sancionada, usa el MCP oficial o la ruta OAuth alojada opcional.
Grid, credenciales y caché
Enterprise Grid. Grid ejecuta detección agresiva de anomalías de sesión. La automatización de sesión del navegador puede activarla, lo que marca la sesión y la mata, independientemente de qué herramienta impulse el tráfico. Las llamadas salientes se espacian por defecto para mantenerse bajo los umbrales de ráfaga (SLACK_MCP_MIN_REQUEST_INTERVAL_MS, predeterminado 350; SLACK_MCP_MAX_CONCURRENCY, predeterminado 3). El espaciado reduce ese riesgo; no lo elimina. En Grid, usa el nivel OAuth alojado o el MCP oficial de Slack en su lugar.
Extracción de credenciales. --setup lee el token xoxc- más reciente del LevelDB en disco de Chrome, captura la base de datos SQLite de cookies, recupera el Almacenamiento Seguro de Chrome del Llavero de macOS y ejecuta descifrado PBKDF2 + AES-128-CBC localmente. Escribe el archivo de token, entradas del Llavero y metadatos no secretos. No transmite nada—el servidor habla con Slack y con ningún otro lugar.
Este es el mismo patrón de acceso que usan los ladrones de credenciales. El Cifrado Vinculado a la Aplicación de Chrome existe para hacer más difícil esta clase de lectura, y las familias de infostealers (Lumma, Vidar, Meduza) lo evaden para robar sesiones activas. El mecanismo aquí es comparable. Lo que difiere es que tú lo ejecutas, en tu propia máquina, contra tu propia sesión, y nada sale del host. La fuente es JavaScript simple en este repositorio; audítalo antes de entregarle una sesión activa.
Caché de usuarios. Existe una caché: búsquedas de nombres de usuario, pobladas bajo demanda, máximo 500 entradas, TTL de una hora. Sin contenido de mensajes, sin historial de canales y sin copia persistente del espacio de trabajo almacenada.
Instalación
Se recomienda Node 22 o 24. Node 20 sigue siendo compatible para la línea v4.
npx -y @jtalk22/slack-mcp --setup
¿Prefieres una CLI persistente: npm install -g @jtalk22/slack-mcp y luego slack-mcp --setup.
Luego:
- Elige tu cliente en la guía de configuración.
- Registra el comando stdio generado.
- Reinicia completamente el cliente.
- Pide al agente que ejecute
slack_health_check. - Un nombre de espacio de trabajo en la respuesta significa que la conexión está activa.
Usa el mismo comando de servidor en todas partes:
{
"command": "npx",
"args": ["-y", "@jtalk22/slack-mcp"]
}
En macOS, la configuración puede extraer desde Chrome y persistir el backend de almacenamiento seleccionado. En otras plataformas, proporciona SLACK_TOKEN y SLACK_COOKIE a través de la configuración de entorno del cliente. Docker, HTTP y ejemplos detallados de clientes están en docs/SETUP.md y docs/DEPLOYMENT-MODES.md.
Matriz de configuración de clientes
| Cliente | Superficie de configuración | Estado |
|---|---|---|
| Claude Code | claude mcp add o ~/.claude.json | Documentado |
| Claude Desktop | Configuración MCP de escritorio | Verificado |
| Cursor | .cursor/mcp.json | Documentado |
| GitHub Copilot | .vscode/mcp.json | Documentado |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | Documentado |
| Gemini CLI | ~/.gemini/settings.json | Documentado |
| Codex CLI | codex mcp add o ~/.codex/config.toml | Documentado |
| Otros clientes | Cualquier configuración stdio MCP | Compatible con el protocolo |
21 herramientas: leer, actuar, automatizar
La superficie local incluye 21 herramientas hoy: 12 operaciones de Slack de solo lectura, 4 herramientas de ruta de escritura que cada una lleva una anotación destructiva MCP para que los clientes puedan controlar las escrituras en el espacio de trabajo, 3 herramientas de flujo de trabajo locales incluida la propia puesta al día, y 2 stubs de inteligencia alojada que devuelven un payload de actualización estructurado sin hacer una llamada a Slack. Cuatro herramientas de lectura aceptan include_rich_message_fields: true para mostrar adjuntos, bloques, archivos, reacciones y metadatos—las entradas completas y los contratos de respuesta están en docs/API.md.
Anunciar menos herramientas. Un cliente paga por el esquema de herramientas en cada turno que lo lleva. SLACK_MCP_TOOLS=essentials anuncia seis herramientas—no leídos, historial, búsqueda, hilo, búsqueda de usuario, envío—costando aproximadamente 985 tokens estimados de esquema por turno frente a unos 3,600 por las 21. SLACK_MCP_TOOLS=read anuncia las 12 operaciones de Slack de solo lectura listadas abajo, cerca de 1,690. --tools=slack_x,slack_y toma un conjunto explícito. El predeterminado sigue siendo las 21. Filtrar cambia lo que se anuncia, no lo que se puede llamar. Reproduce los números con node scripts/measure-tool-schema.js (una estimación de ~4 caracteres por token).
El inventario completo de herramientas
12 operaciones de Slack de solo lectura
| Herramienta | Propósito |
|---|---|
slack_health_check | Verificar credenciales e identidad del espacio de trabajo |
slack_token_status | Inspeccionar antigüedad de credenciales, estado, caché, perfil y almacenamiento |
slack_refresh_tokens | Actualizar credenciales locales desde la sesión del navegador en macOS—lee Slack, escribe solo estado local |
slack_list_conversations | Listar canales y mensajes directos |
slack_conversations_history | Leer historial de canal o mensaje directo con campos enriquecidos opcionales |
slack_get_full_conversation | Exportar historial completo e hilos |
slack_search_messages | Buscar en el espacio de trabajo |
slack_get_thread | Leer todas las respuestas en un hilo |
slack_users_info | Resolver un usuario |
slack_list_users | Paginar a través de directorios grandes del espacio de trabajo |
slack_users_search | Buscar usuarios por nombre, nombre mostrado o correo electrónico |
slack_conversations_unreads | Priorizar conversaciones con mensajes no leídos |
Actuar en el espacio de trabajo — 4 herramientas de escritura
| Herramienta | Propósito | Seguridad MCP |
|---|---|---|
slack_send_message | Enviar a un canal o mensaje directo | destructivo |
slack_add_reaction | Agregar una reacción emoji | destructivo |
slack_remove_reaction | Eliminar una reacción emoji | destructivo |
slack_conversations_mark | Marcar una conversación como leída | destructivo |
Automatizar localmente — 3 herramientas de flujo de trabajo
| Herramienta | Propósito |
|---|---|
slack_workflow_save | Guardar un perfil de flujo de trabajo tipado en ~/.slack-mcp-workflows.json |
slack_workflows | Listar perfiles de flujo de trabajo guardados |
slack_catch_me_up | Leer los canales de un perfil desde su ventana de cadencia y devolver evidencia estructurada de puesta al día |
Descubrir inteligencia alojada — 2 stubs explícitos
| Herramienta | Resultado alojado |
|---|---|
slack_smart_search | Búsqueda semántica + léxica sobre el historial indexado de Slack |
slack_triage | Cola de acciones priorizada con recomendaciones de enrutamiento |
Estas dos necesitan infraestructura que este paquete no incluye — un índice y un modelo — por lo que los manejadores OSS devuelven un payload de actualización estructurado en lugar de realizar una llamada a Slack. slack_catch_me_up no necesita ninguna y se ejecuta localmente. slack_refresh_tokens solo escribe estado de credenciales local.
Flujos de trabajo tipados: Slack entra, JSON sale
Vincula un tipo de flujo de trabajo a canales, personas prioritarias, retención y cadencia. slack_catch_me_up luego lee ese alcance localmente y entrega a tu agente la evidencia: qué hilos quedaron sin respuesta y por cuánto tiempo, qué dijeron o en qué se fijaron tus personas prioritarias, qué conversaciones realmente avanzaron. Él hace la recopilación; tu agente escribe el resumen según el contrato a continuación.
No hay un modelo del lado del servidor en esa ruta, porque no es necesario — el cliente que llama a este servidor ya es un modelo de lenguaje. Hosted agrega lo que genuinamente necesita infraestructura: recuperación semántica indexada y ejecutar la misma puesta al día en un horario mientras tu laptop está cerrada.
npx -y @jtalk22/slack-mcp --apply-template oncall-handoff --channels C012345,C067890
Contratos de flujo de trabajo y plantillas incluidas
| Tipo de flujo de trabajo | Contrato |
|---|---|
incident_room | {incident_summary, timeline, open_risks, owner_gaps, next_actions} |
exec_brief | {summary, decisions, risks, asks, action_items} |
support_inbox | {open_threads, ack_lag, owner_gaps, escalations, next_actions} |
product_launch_watch | {launch_signals, feedback_themes, blockers, metrics, next_actions} |
custom | {summary, highlights, open_questions, next_actions} |
Seis plantillas editables se incluyen en el paquete: oncall-handoff, support-triage, exec-monday, sprint-tracker, customer-feedback y incident-room.
Dónde viven las credenciales
La resolución es determinista; la primera coincidencia gana:
SLACK_TOKEN+SLACK_COOKIE- archivo de token (
chmod 600) - Llavero de macOS
- Extracción de Chrome en macOS
Las credenciales de sesión comúnmente rotan después de una o dos semanas. Cuando Slack devuelve invalid_auth, not_authed, token_expired, token_revoked, account_inactive o HTTP 401, ejecuta npx -y @jtalk22/slack-mcp --setup para recuperarte localmente. En macOS, slack_refresh_tokens o --refresh-tokens se actualiza sin salir del cliente; el LaunchAgent opcional en docs/SETUP.md mantiene saludables instalaciones de larga inactividad.
Modos de almacenamiento y perfiles multi-espacio de trabajo
| Modo | Comportamiento |
|---|---|
auto | Archivo de token más copia de seguridad en Llavero |
keychain-only | Solo Llavero; escrituras verificadas y sin archivo de credenciales en texto plano |
file | Archivo de token solo para el propietario; el Llavero nunca se toca |
El backend seleccionado se recuerda en metadatos no secretos y lo usan el servidor, la CLI y el trabajo de actualización opcional. Un modo no reconocido falla al inicio en lugar de degradar silenciosamente el almacenamiento.
{
"mcpServers": {
"slack-work": {
"command": "npx",
"args": ["-y", "@jtalk22/slack-mcp"],
"env": { "SLACK_MCP_PROFILE": "work" }
},
"slack-personal": {
"command": "npx",
"args": ["-y", "@jtalk22/slack-mcp"],
"env": { "SLACK_MCP_PROFILE": "personal" }
}
}
}
Cada perfil obtiene su propio archivo de token, entradas de Llavero, metadatos y bloqueo. Agrega SLACK_MCP_CHROME_PROFILE cuando los espacios de trabajo viven en diferentes perfiles de Chrome.
Local gratuito cuando tú conduces. Alojado cuando debe conducirse solo.
Cuando el control local es suficiente, detente aquí—todo lo anterior tiene licencia MIT y se ejecuta en tu máquina. El producto local está completo, no es una prueba limitada: alojado gana la actualización por continuidad, inteligencia y colaboración, no por retener el acceso ordinario a Slack como rehén. Alojado existe para trabajar que debe sobrevivir a una sesión rotatoria de navegador:
- OAuth permanente;
- búsqueda semántica indexada;
- puesta al día y triaje programados;
- informes de flujo de trabajo validados por contrato;
- perfiles compartidos y continuidad administrada del espacio de trabajo.
El modo local nunca nos contacta; se ejecuta en tu máquina y solo habla con Slack. Alojado nunca recibe una cookie del navegador; se ejecuta con OAuth permanente, para trabajos que deben sobrevivir a una sesión rotatoria — programaciones no supervisadas, Enterprise Grid. Todo lo anterior tiene licencia MIT y está completo por sí mismo.
Ver precios de alojado en vivo →
Seguridad y procedencia
- Los archivos de credenciales son solo para el propietario; el modo solo Llavero mantiene credenciales en texto plano fuera del disco.
- La configuración falla de forma segura para modos de almacenamiento desconocidos y perfiles inválidos.
- Las escrituras son atómicas y el estado de credenciales compartido está bloqueado por proceso.
- El servidor web local se vincula a localhost; las herramientas de escritura del espacio de trabajo llevan anotaciones destructivas.
- Cada versión se publica desde CI con procedencia npm.
Procedencia: no confíes solo en mi palabra
npm audit signatures
Un resultado limpio verifica que las firmas y atestaciones del paquete se rastrean a través de la cadena de publicación. Inspecciona el paquete antes de entregarle una sesión de Slack en vivo. Política completa: SECURITY.md.
Documentación
Configuración · API · Arquitectura · Compatibilidad · Modos de despliegue · Recetas · Solución de problemas · Hoja de ruta
Contribuciones
Se aceptan PRs. Lee CONTRIBUTING.md y ejecuta node --check en el JavaScript modificado antes de enviarlo.
Licencia
MIT — ver LICENSE.
Aviso legal
No está afiliado con Slack Technologies, Inc. Este servidor usa credenciales de sesión del navegador. Revisa la política de uso aceptable de tu espacio de trabajo antes de ejecutarlo.
Tu Slack. Tu agente. Un comando.
npx -y @jtalk22/slack-mcp --setup
Si esto elimina una pestaña de Slack de tu día, da estrella al repositorio. Las estrellas son cómo el próximo desarrollador bloqueado por administración encuentra la ruta local.