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 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

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 · 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_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 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 oficialSlack 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 productoAmplias capacidades nativas de Slack21 herramientas enfocadas en leer, actuar y automatizar
Tiempo de ejecuciónGestionado por SlackCó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:

  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. Docker, HTTP y ejemplos detallados de clientes están 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 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

HerramientaPropósito
slack_health_checkVerificar credenciales e identidad del espacio de trabajo
slack_token_statusInspeccionar antigüedad de credenciales, estado, caché, perfil y 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 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 escritura

HerramientaPropósitoSeguridad MCP
slack_send_messageEnviar a un canal o mensaje directodestructivo
slack_add_reactionAgregar una reacción emojidestructivo
slack_remove_reactionEliminar una reacción emojidestructivo
slack_conversations_markMarcar una conversación como leídadestructivo

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

Descubrir inteligencia alojada — 2 stubs explícitos

HerramientaResultado alojado
slack_smart_searchBúsqueda semántica + léxica sobre el historial indexado de Slack
slack_triageCola 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 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 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
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. 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.

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

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.