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

npm version npm weekly downloads CI npm provenance signed MCP Registry

Slack MCP channel mark

Slack MCP Server

Ponte al día con 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

47 unread Slack messages across four conversations become one prioritized morning briefing

▶ 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 · 19 herramientas · Flujos de trabajo · Local vs alojado


Es lunes, 9:07. Slack ya ha formado opiniones.

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 siendo incorrecto. 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 real de herramientas MCP 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 construido para la 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 desde el 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_failed y 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-only y file;
  • 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 de Llavero, bloqueos entre procesos y mutex de actualización;
  • comprobaciones de salud proactivas y actualización automática de 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 de 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 entrada de soporte, seguimientos 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 entrar 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 de administración. 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 oficial MCPSlack MCP Server — local
Punto de partidaUna integración remota gestionada por SlackLa sesión de Slack que ya está en Chrome
Control del espacio de trabajoGobernado por los ajustes de integración del espacio de trabajoSin aplicación de Slack ni solicitud de administrador para la ruta local
TransporteHTTP transmisiblestdio local
Superficie de clienteIntegraciones de socios compatibles con SlackCualquier cliente stdio MCP
AutenticaciónOAuthSesión de navegador existente
Vida útil de credencialesOAuth gestionadoSesión rotativa con comprobaciones de salud y actualización
Superficie de productoCapacidades amplias nativas de Slack19 herramientas enfocadas en leer, actuar y automatizar
ProtocoloGestionado por SlackMCP 2026-07-28 y cada revisión de 2025, desde el mismo binario
Tiempo de ejecuciónGestionado por SlackCódigo MIT en tu máquina
¿Está la ruta local en contra de 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 una 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 están limitadas por defecto para mantenerse bajo los umbrales de ráfaga (SLACK_MCP_MIN_REQUEST_INTERVAL_MS, predeterminado 350; SLACK_MCP_MAX_CONCURRENCY, predeterminado 3). La limitación 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 desde el Llavero de macOS y ejecuta descifrado PBKDF2 + AES-128-CBC localmente. Escribe el archivo de token, entradas de 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 de Enlace de 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. El código 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 nombre 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+ es compatible y probado en CI.

npx -y @jtalk22/slack-mcp --setup

¿Prefieres una CLI persistente? npm install -g @jtalk22/slack-mcp y luego slack-mcp --setup.

Luego:

  1. Elige tu cliente en la guía de configuración.
  2. Registra el comando stdio generado.
  3. Reinicia completamente el cliente.
  4. Pide al agente que ejecute slack_health_check.
  5. 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. Ejemplos de Docker, HTTP y clientes detallados viven en docs/SETUP.md y docs/DEPLOYMENT-MODES.md.

Matriz de configuración de clientes
ClienteSuperficie de configuraciónEstado
Claude Codeclaude mcp add o ~/.claude.jsonDocumentado
Claude DesktopConfiguración MCP de escritorioVerificado
Cursor.cursor/mcp.jsonDocumentado
GitHub Copilot.vscode/mcp.jsonDocumentado
Windsurf~/.codeium/windsurf/mcp_config.jsonDocumentado
Gemini CLI~/.gemini/settings.jsonDocumentado
Codex CLIcodex mcp add o ~/.codex/config.tomlDocumentado
Otros clientesCualquier configuración stdio MCPCompatible con protocolo

19 herramientas: leer, actuar, automatizar

La superficie local incluye 19 herramientas hoy: 12 operaciones de Slack de solo lectura, 4 herramientas de ruta de escritura que cada una lleva una anotación destructiva de MCP para que los clientes puedan controlar las escrituras en el espacio de trabajo, y 3 herramientas de flujo de trabajo locales incluida la puesta al día. Cada herramienta hace su trabajo aquí—lee Slack o estado local—y ninguna es un marcador de posición para algo por lo que tendrías que pagar. Cuatro herramientas de lectura aceptan include_rich_message_fields: true para mostrar adjuntos, bloques, archivos, reacciones y metadatos—los contratos completos de entrada y respuesta viven en docs/API.md.

Habla MCP 2026-07-28 y cada revisión de 2025 desde el mismo binario—negociado por era sobre stdio, sin estado por solicitud sobre HTTP (sin Mcp-Session-Id; GET/DELETE responden 405). La afirmación es una prueba, no una frase: test/mcp-era.test.js impulsa el SDK de cliente real en ambas eras contra los puntos de entrada reales.

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, enviar—costando aproximadamente 985 tokens estimados de esquema por turno frente a unos 3,134 para las 19. 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 19. 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

HerramientaPropósito
slack_health_checkVerificar credenciales e identidad del espacio de trabajo
slack_token_statusInspeccionar antigüedad de credenciales, salud, caché, perfil y estado de almacenamiento
slack_refresh_tokensActualizar credenciales locales desde la sesión del navegador en macOS—lee Slack, escribe solo estado local
slack_list_conversationsListar canales y mensajes directos
slack_conversations_historyLeer historial de canal o mensaje directo con campos enriquecidos opcionales
slack_get_full_conversationExportar historial completo e hilos
slack_search_messagesBuscar en todo el espacio de trabajo
slack_get_threadLeer todas las respuestas en un hilo
slack_users_infoResolver un usuario
slack_list_usersPaginar a través de directorios grandes del espacio de trabajo
slack_users_searchBuscar usuarios por nombre, nombre mostrado o correo electrónico
slack_conversations_unreadsPriorizar conversaciones con mensajes no leídos

Actuar en el espacio de trabajo — 4 herramientas de ruta de escritura

HerramientaPropósitoSeguridad MCP
slack_send_messageEnviar a un canal o mensaje directodestructiva
slack_add_reactionAñadir una reacción emojidestructiva
slack_remove_reactionEliminar una reacción emojidestructiva
slack_conversations_markMarcar una conversación como leídadestructiva

Automatizar localmente — 3 herramientas de flujo de trabajo

HerramientaPropósito
slack_workflow_saveGuardar un perfil de flujo de trabajo tipado en ~/.slack-mcp-workflows.json
slack_workflowsListar perfiles de flujo de trabajo guardados
slack_catch_me_upLeer los canales de un perfil desde su ventana de cadencia y devolver evidencia estructurada de puesta al día

slack_refresh_tokens lee Slack y escribe solo estado local de credenciales.


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 responder y por cuánto tiempo, qué dijeron tus personas prioritarias o en qué fueron fijados, qué conversaciones realmente avanzaron. 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 necesita haberlo — el cliente que llama a este servidor ya es un modelo de lenguaje. Hosted añade lo que genuinamente necesita infraestructura: ejecutar la misma puesta al día en un horario mientras tu portátil está apagado, con un token OAuth que no rota.

npx -y @jtalk22/slack-mcp --apply-template oncall-handoff --channels C012345,C067890
Contratos de flujo de trabajo y plantillas incluidas
Tipo de flujo de trabajoContrato
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:

  1. SLACK_TOKEN + SLACK_COOKIE
  2. archivo de token (chmod 600)
  3. Llavero de macOS
  4. 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 actualiza sin salir del cliente; el LaunchAgent opcional en docs/SETUP.md mantiene saludables las instalaciones de larga inactividad.

Modos de almacenamiento y perfiles multi-espacio de trabajo
ModoComportamiento
autoArchivo de token más copia de seguridad en Llavero
keychain-onlySolo Llavero; escrituras verificadas y sin archivo de credenciales en texto plano
fileArchivo 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. Añade SLACK_MCP_CHROME_PROFILE cuando los espacios de trabajo viven en diferentes perfiles de Chrome.


Local gratis cuando conduces tú. Hosted cuando debe conducirse solo.

El paquete local pone Slack en el contexto de tu agente: lee, busca, sigue hilos y actúa desde tu escritorio. Hosted mantiene el informe recurrente llegando cuando tu portátil está cerrado:

  • OAuth de Slack gestionado;
  • puesta al día programada en tu zona horaria;
  • informes de flujo de trabajo validados por contrato;
  • perfiles de flujo de trabajo compartidos;
  • entrega de webhook firmada.

El modo local se ejecuta en tu máquina y solo habla con Slack. La conexión OAuth de hosted admite horarios sin supervisión y Enterprise Grid. El paquete local tiene licencia MIT y funciona independientemente de hosted.

Ver precios de hosted en vivo →


Seguridad y procedencia

  • Los archivos de credenciales son solo para el propietario; el modo solo-Llavero mantiene las credenciales en texto plano fuera del disco.
  • La configuración falla de forma cerrada para modos de almacenamiento desconocidos y perfiles inválidos.
  • Las escrituras son atómicas y el estado compartido de credenciales 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 te fíes solo de 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 versiones publicada. Inspecciona el paquete antes de entregarle una sesión de Slack en vivo. Política completa: SECURITY.md.

Slack MCP Server security, license, and quality rating on Glama


Documentación

Configuración · API · Arquitectura · Compatibilidad · Modos de despliegue · Recetas · Solución de problemas · Hoja de ruta

Contribuciones

Las solicitudes de extracción son bienvenidas. Lee CONTRIBUTING.md y ejecuta node --check en el JavaScript modificado antes de enviar.

Licencia

MIT — ver LICENSE.

Aviso legal

No 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, dale una estrella al repositorio. Las estrellas son cómo el próximo desarrollador bloqueado por el administrador encuentra la ruta local.