Slack MCP Server

Acesse DMs, canais e mensagens do Slack pelo Claude. Autenticação por token de navegador - sem necessidade de OAuth.

Documentação

npm version npm weekly downloads CI npm provenance signed MCP Registry

Slack MCP channel mark

Slack MCP Server

Atualize-se no Slack sem precisar ler tudo.

Não lidas, threads e busca — no contexto do seu agente, a partir da sessão que você já tem.

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

Claude Code Claude Desktop Cursor Copilot Windsurf Gemini CLI Codex CLI qualquer cliente stdio MCP

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

▶ É segunda-feira, 9h07 — veja o que explodiu durante a noite · passo a passo interativo · guia de configuração

Como funciona · Por que autenticação por sessão · Grid e credenciais · Instalação · 19 ferramentas · Fluxos de trabalho · Local vs. hospedado


É segunda-feira, 9h07. O Slack já formou opiniões.

Você pergunta "o que explodiu durante a noite?" e o agente lê o workspace em vez de você. Ele reconstrói o incidente P1 das 2h da manhã a partir de #incidents — responsável, resolução e a etapa do runbook que ainda está errada. Ele encontra o PIN da impressora que está esperando em #facilities há cinco meses. Depois, ele encerra os loops já tratados — respostas, reações, mudanças de estado de leitura — somente onde você aprovar.

Isso não é automação por captura de tela. O agente chama o Slack por meio de uma superfície real de ferramentas MCP e recebe resultados tipados que pode buscar, resumir, exportar ou usar para agir.


Construído além da demonstração

A parte difícil não é mais uma ferramenta de chat. É a camada operacional por baixo: extração de sessão do navegador que nomeia suas etapas de falha, um ciclo de vida de credenciais feito para rotação, leituras com fidelidade total, gravações protegidas e saída de fluxo de trabalho tipada. O código é JavaScript puro neste repositório — audite-o antes de confiar uma sessão a ele.

A engenharia por baixo — extração, ciclo de vida de credenciais, leituras, gravações protegidas, saída tipada

1. O mecanismo de sessão do navegador

--setup transforma a identidade do Slack que o Chrome já possui em um servidor MCP local:

  • encontra o token xoxc- mais recente no LevelDB em disco do Chrome;
  • captura o banco de dados SQLite de cookies com seus arquivos WAL;
  • recupera o Chrome Safe Storage do chaveiro do macOS;
  • executa descriptografia PBKDF2 + AES-128-CBC compatível com Chrome localmente;
  • não exige DevTools, etapa de área de transferência, flag do navegador ou aba do Slack aberta;
  • nomeia a etapa de extração que falhou — keychain_timeout, no_slack_cookie_row, cookie_decrypt_failed e outras — em vez de retornar um único erro opaco.

2. Ciclo de vida de credenciais, não colagem de credenciais

As credenciais de sessão rotacionam. O servidor é construído em torno dessa realidade:

  • backends de armazenamento auto, keychain-only e file;
  • arquivos de token somente do proprietário e um caminho somente via chaveiro, sem credenciais em texto puro no disco;
  • gravações atômicas de arquivos, migração verificada do chaveiro, bloqueios entre processos e mutexes de atualização;
  • verificações de saúde proativas e atualização automática no macOS;
  • credenciais em memória da última boa configuração quando a persistência está temporariamente indisponível;
  • perfis isolados para Slack de trabalho e pessoal;
  • tratamento com falha fechada para configuração inválida de armazenamento ou perfil.

3. Leituras do Slack com fidelidade total

Leia DMs e canais, busque no workspace, exporte históricos completos com threads, inspecione o estado de não lidas e resolva usuários. Ative blocos, anexos, arquivos, reações, metadados e marcadores de bots/aplicativos quando o texto sozinho não é a mensagem real.

4. O agente pode concluir o trabalho

Envie uma resposta, adicione ou remova uma reação e marque uma conversa como lida. Cada caminho de gravação no workspace carrega uma anotação destrutiva do MCP para que clientes compatíveis possam colocar a aprovação onde ela pertence.

5. Slack entra, JSON tipado sai

Salve perfis de fluxo de trabalho para salas de incidentes, briefings executivos, caixas de entrada de suporte, monitoramentos de lançamento e operações personalizadas. Os primitivos OSS são JSON local; o cérebro hospedado opcional os transforma em briefings com formato de contrato.


Dois caminhos para o Slack

O Slack já sabe quem você é. O caminho oficial é uma integração remota gerenciada pelo Slack, regida pela política do workspace — um ajuste forte para implantações sancionadas pela organização, documentado pela Slack com configurações de integração sob controle do administrador. Este projeto é o caminho local direto: autenticação baseada em sessão a partir da sessão do navegador já presente no Chrome, stdio local, qualquer cliente stdio MCP e nenhum aplicativo Slack ou solicitação de administrador. Mesma identidade do Slack. Mesmas permissões subjacentes. Um caminho radicalmente mais curto do seu workspace até o seu agente.

Lado a lado: o caminho da integração gerenciada vs. o caminho da sessão local
Slack MCP oficialSlack MCP Server — local
Ponto de partidaUma integração remota gerenciada pelo SlackA sessão do Slack já presente no Chrome
Controle do workspaceRegido pelas configurações de integração do workspaceNenhum aplicativo Slack ou solicitação de administrador para o caminho local
TransporteHTTP streamablestdio local
Superfície de clienteIntegrações parceiras suportadas pelo SlackQualquer cliente stdio MCP
AutenticaçãoOAuthSessão de navegador existente
Vida útil da credencialOAuth gerenciadoSessão rotativa com verificações de saúde e atualização
Superfície de produtoCapacidades amplas nativas do Slack19 ferramentas focadas em leitura, ação e automação
ProtocoloGerenciado pelo SlackMCP 2026-07-28 e todas as revisões de 2025, a partir do mesmo binário
RuntimeGerenciado pelo SlackCódigo MIT na sua máquina
O caminho local viola os termos do Slack?

Trate a automação de sessão do navegador como uma decisão de uso aceitável para você e seu workspace. O servidor atua como sua identidade conectada ao Slack e não pode ler um canal que você não pode ler nem agir como outro usuário. Ele não contorna retenção no lado do servidor, DLP, exportações de conformidade ou controles de auditoria.

"Nenhuma solicitação de administrador" significa que não há instalação de aplicativo Slack para aprovar. Isso não significa que a atividade do workspace desaparece dos sistemas do Slack. Se sua política exigir uma integração OAuth sancionada, use o MCP oficial ou o caminho OAuth hospedado opcional.


Grid, credenciais e cache

Enterprise Grid. O Grid executa detecção agressiva de anomalias de sessão. A automação de sessão do navegador pode acioná-la, o que sinaliza a sessão e a encerra, independentemente de qual ferramenta dirige o tráfego. Chamadas de saída são limitadas por padrão para permanecer abaixo dos limites de rajada (SLACK_MCP_MIN_REQUEST_INTERVAL_MS, padrão 350; SLACK_MCP_MAX_CONCURRENCY, padrão 3). A limitação reduz esse risco; não o elimina. No Grid, use o nível OAuth hospedado ou o MCP oficial do Slack.

Extração de credenciais. --setup lê o token xoxc- mais recente do LevelDB em disco do Chrome, captura o banco de dados SQLite de cookies, recupera o Chrome Safe Storage do chaveiro do macOS e executa descriptografia PBKDF2 + AES-128-CBC localmente. Ele grava o arquivo de token, entradas do chaveiro e metadados não secretos. Ele não transmite nada — o servidor fala com o Slack e com mais nada.

Este é o mesmo padrão de acesso que ladrões de credenciais usam. O Chrome App-Bound Encryption existe para dificultar essa classe de leitura, e famílias de infostealers (Lumma, Vidar, Meduza) o contornam para roubar sessões ativas. O mecanismo aqui é comparável. O que difere é que você o executa, na sua própria máquina, contra a sua própria sessão, e nada sai do host. O código-fonte é JavaScript puro neste repositório; audite-o antes de entregar uma sessão ativa a ele.

Cache de usuários. Existe um único cache: consultas de nomes de usuário, preenchido sob demanda, máximo de 500 entradas, TTL de uma hora. Nenhum conteúdo de mensagem, histórico de canal ou cópia persistente do workspace é armazenado.


Instalação

Node 22 ou 24 recomendado. Node 20+ é suportado e testado em CI.

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

Prefere uma CLI persistente: npm install -g @jtalk22/slack-mcp e depois slack-mcp --setup.

Então:

  1. Escolha seu cliente no guia de configuração.
  2. Registre o comando stdio gerado.
  3. Reinicie completamente o cliente.
  4. Peça ao agente para executar slack_health_check.
  5. Um nome de workspace na resposta significa que a conexão está ativa.

Use o mesmo comando de servidor em todos os lugares:

{
  "command": "npx",
  "args": ["-y", "@jtalk22/slack-mcp"]
}

No macOS, a configuração pode extrair do Chrome e persistir o backend de armazenamento selecionado. Em outras plataformas, forneça SLACK_TOKEN e SLACK_COOKIE por meio da configuração de ambiente do cliente. Exemplos de Docker, HTTP e clientes detalhados estão em docs/SETUP.md e docs/DEPLOYMENT-MODES.md.

Matriz de configuração de clientes
ClienteSuperfície de configuraçãoStatus
Claude Codeclaude mcp add ou ~/.claude.jsonDocumentado
Claude DesktopConfiguração MCP do DesktopVerificado
Cursor.cursor/mcp.jsonDocumentado
GitHub Copilot.vscode/mcp.jsonDocumentado
Windsurf~/.codeium/windsurf/mcp_config.jsonDocumentado
Gemini CLI~/.gemini/settings.jsonDocumentado
Codex CLIcodex mcp add ou ~/.codex/config.tomlDocumentado
Outros clientesQualquer configuração stdio MCPCompatível com protocolo

19 ferramentas: ler, agir, automatizar

A superfície local oferece 19 ferramentas hoje: 12 operações Slack somente leitura, 4 ferramentas de caminho de gravação que carregam cada uma uma anotação destrutiva do MCP para que clientes possam controlar gravações no workspace, e 3 ferramentas locais de fluxo de trabalho, incluindo o próprio catch-up. Cada ferramenta faz seu trabalho aqui — lê o Slack ou o estado local — e nenhuma é um substituto para algo pelo qual você teria que pagar. Quatro ferramentas de leitura aceitam include_rich_message_fields: true para exibir anexos, blocos, arquivos, reações e metadados — entradas completas e contratos de resposta estão em docs/API.md.

Fala MCP 2026-07-28 e todas as revisões de 2025 a partir do mesmo binário — negociado por era via stdio, sem estado por solicitação via HTTP (sem Mcp-Session-Id; GET/DELETE respondem 405). A afirmação é um teste, não uma frase: test/mcp-era.test.js dirige o SDK real do cliente em ambas as eras contra os pontos de entrada reais.

Anunciando menos ferramentas. Um cliente paga pelo esquema de ferramentas em cada turno que o carrega. SLACK_MCP_TOOLS=essentials anuncia seis ferramentas — não lidas, histórico, busca, thread, consulta de usuário, envio — custando aproximadamente 985 tokens estimados de esquema por turno contra cerca de 3.134 para todas as 19. SLACK_MCP_TOOLS=read anuncia as 12 operações Slack somente leitura listadas abaixo, perto de 1.690. --tools=slack_x,slack_y aceita um conjunto explícito. O padrão permanece todas as 19. Filtrar muda o que é anunciado, não o que é chamável. Reproduza os números com node scripts/measure-tool-schema.js (uma estimativa de ~4 caracteres por token).

O inventário completo de ferramentas

12 operações Slack somente leitura

FerramentaFinalidade
slack_health_checkVerificar credenciais e identidade do workspace
slack_token_statusInspecionar idade das credenciais, saúde, cache, perfil e estado de armazenamento
slack_refresh_tokensAtualizar credenciais locais a partir da sessão do navegador no macOS—lê o Slack, grava apenas estado local
slack_list_conversationsListar canais e DMs
slack_conversations_historyLer histórico de canal ou DM com campos ricos opcionais
slack_get_full_conversationExportar histórico completo e threads
slack_search_messagesPesquisar no workspace
slack_get_threadLer todas as respostas em uma thread
slack_users_infoResolver um usuário
slack_list_usersPaginar grandes diretórios do workspace
slack_users_searchPesquisar usuários por nome, nome de exibição ou e-mail
slack_conversations_unreadsPriorizar conversas com mensagens não lidas

Atuar no workspace — 4 ferramentas de caminho de escrita

FerramentaFinalidadeSegurança MCP
slack_send_messageEnviar para um canal ou DMdestrutiva
slack_add_reactionAdicionar uma reação de emojidestrutiva
slack_remove_reactionRemover uma reação de emojidestrutiva
slack_conversations_markMarcar uma conversa como lidadestrutiva

Automatizar localmente — 3 ferramentas de fluxo de trabalho

FerramentaFinalidade
slack_workflow_saveSalvar um perfil de fluxo de trabalho tipado em ~/.slack-mcp-workflows.json
slack_workflowsListar perfis de fluxo de trabalho salvos
slack_catch_me_upLer os canais de um perfil desde sua janela de cadência e retornar evidências estruturadas de atualização

slack_refresh_tokens lê o Slack e grava apenas estado local de credenciais.


Fluxos de trabalho tipados: Slack entra, JSON sai

Vincule um tipo de fluxo de trabalho a canais, pessoas prioritárias, retenção e cadência. slack_catch_me_up então lê esse escopo localmente e entrega ao seu agente as evidências: quais threads ficaram sem resposta e por quanto tempo, o que suas pessoas prioritárias disseram ou foram fixadas, quais conversas realmente avançaram. Ele faz a coleta; seu agente escreve o resumo conforme o contrato abaixo.

Não há modelo no lado do servidor nesse caminho, porque não precisa haver — o cliente que chama este servidor já é um modelo de linguagem. O Hosted adiciona o que realmente precisa de infraestrutura: executar a mesma atualização em um agendamento enquanto seu laptop está fechado, com um token OAuth que não rotaciona.

npx -y @jtalk22/slack-mcp --apply-template oncall-handoff --channels C012345,C067890
Contratos de fluxo de trabalho e modelos enviados
Tipo de fluxo de trabalhoContrato
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 modelos editáveis acompanham o pacote: oncall-handoff, support-triage, exec-monday, sprint-tracker, customer-feedback e incident-room.


Onde as credenciais ficam armazenadas

A resolução é determinística; a primeira correspondência vence:

  1. SLACK_TOKEN + SLACK_COOKIE
  2. arquivo de token (chmod 600)
  3. Keychain do macOS
  4. Extração do Chrome no macOS

Credenciais de sessão comumente rotacionam após uma ou duas semanas. Quando o Slack retorna invalid_auth, not_authed, token_expired, token_revoked, account_inactive ou HTTP 401, execute npx -y @jtalk22/slack-mcp --setup para recuperar localmente. No macOS, slack_refresh_tokens ou --refresh-tokens atualiza sem sair do cliente; o LaunchAgent opcional em docs/SETUP.md mantém instalações ociosas por muito tempo saudáveis.

Modos de armazenamento e perfis de múltiplos workspaces
ModoComportamento
autoArquivo de token mais backup no Keychain
keychain-onlyApenas Keychain; gravações verificadas e sem arquivo de credenciais em texto puro
fileArquivo de token somente do proprietário; o Keychain nunca é tocado

O backend selecionado é lembrado em metadados não secretos e usado pelo servidor, CLI e trabalho de atualização opcional. Um modo não reconhecido falha na inicialização em vez de rebaixar silenciosamente o armazenamento.

{
  "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 tem seu próprio arquivo de token, entradas no Keychain, metadados e bloqueio. Adicione SLACK_MCP_CHROME_PROFILE quando os workspaces estiverem em perfis diferentes do Chrome.


Local gratuito quando você está dirigindo. Hosted quando precisa se dirigir sozinho.

O pacote local coloca o Slack no contexto do seu agente: leia, pesquise, acompanhe threads e atue a partir do seu desktop. O Hosted mantém o resumo recorrente chegando quando seu laptop está fechado:

  • OAuth gerenciado do Slack;
  • atualização agendada no seu fuso horário;
  • resumos de fluxo de trabalho validados por contrato;
  • perfis de fluxo de trabalho compartilhados;
  • entrega de webhook assinada.

O modo local roda na sua máquina e fala apenas com o Slack. A conexão OAuth hospedada suporta agendamentos sem supervisão e Enterprise Grid. O pacote local é licenciado sob MIT e funciona independentemente do hosted.

Veja preços do hosted ao vivo →


Segurança e proveniência

  • Arquivos de credenciais são somente do proprietário; o modo somente Keychain mantém credenciais em texto puro fora do disco.
  • A configuração falha de forma fechada para modos de armazenamento desconhecidos e perfis inválidos.
  • Gravações são atômicas e o estado compartilhado de credenciais é bloqueado por processo.
  • O servidor web local vincula-se a localhost; ferramentas de escrita no workspace carregam anotações destrutivas.
  • Cada versão publica a partir de CI com proveniência npm.

Proveniência: não acredite na minha palavra

npm audit signatures

Um resultado limpo verifica que as assinaturas e atestações do pacote rastreiam de volta pela cadeia de versões publicadas. Inspecione o pacote antes de entregá-lo a uma sessão ativa do Slack. Política completa: SECURITY.md.

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


Documentação

Configuração · API · Arquitetura · Compatibilidade · Modos de implantação · Receitas · Solução de problemas · Roteiro

Contribuindo

PRs são bem-vindos. Leia CONTRIBUTING.md e execute node --check no JavaScript alterado antes de enviar.

Licença

MIT — veja LICENSE.

Aviso legal

Não afiliado à Slack Technologies, Inc. Este servidor usa credenciais de sessão do navegador. Revise a política de uso aceitável do seu workspace antes de executá-lo.


Seu Slack. Seu agente. Um comando.

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

Se isso remove uma aba do Slack do seu dia, dê uma estrela no repositório. Estrelas são como o próximo desenvolvedor bloqueado pelo admin encontra o caminho local.