Slack Notify

Enviar notificações para o Slack usando tokens de bot OAuth.

Documentação

@mkusaka/mcp-server-slack-notify

Servidor MCP para envio de notificações ao Slack usando tokens OAuth de bot.

Recursos

  • Envia mensagens formatadas para canais do Slack com título e descrição
  • Menciona usuários específicos automaticamente com o parâmetro de menção
  • Suporte à formatação markdown do Slack
  • Formatação limpa de mensagens com cabeçalho opcional
  • Suporte a TypeScript com segurança total de tipos

Instalação

npm install @mkusaka/mcp-server-slack-notify
# or
pnpm add @mkusaka/mcp-server-slack-notify

Configuração

Criando um app no Slack

  1. Crie um novo app no Slack

    • Acesse https://api.slack.com/apps
    • Clique em "Create New App"
    • Escolha "From scratch"
    • Digite o nome do seu app (ex.: "MCP Notification Bot")
    • Selecione seu workspace
    • Clique em "Create App"
  2. Configure os escopos OAuth

    • Nas configurações do app, navegue até "OAuth & Permissions" na barra lateral
    • Role até a seção "Scopes"
    • Em "Bot Token Scopes", clique em "Add an OAuth Scope"
    • Adicione o seguinte escopo:
      • chat:write - Necessário para enviar mensagens
  3. Instale o app no seu workspace

    • Permaneça na página "OAuth & Permissions"
    • Clique em "Install to Workspace" no topo
    • Revise as permissões e clique em "Allow"
    • Você será redirecionado de volta para a página OAuth & Permissions
  4. Obtenha seu token de bot

    • Após a instalação, você verá um "Bot User OAuth Token" na página OAuth & Permissions
    • Ele começa com xoxb-
    • Copie este token - você precisará dele para a variável de ambiente SLACK_BOT_TOKEN
  5. Convide o bot para os canais

    • No Slack, vá até o canal onde deseja enviar notificações
    • Digite /invite @YourBotName (substitua pelo nome do seu bot)
    • Ou clique no nome do canal → aba "Integrations" → "Add apps" → Selecione seu bot

Variáveis de ambiente

Defina as seguintes variáveis de ambiente:

  • SLACK_BOT_TOKEN (obrigatório): Seu token OAuth de usuário bot do passo 4
  • SLACK_DEFAULT_CHANNEL (opcional): Canal padrão para notificações (ex.: #general)
  • SLACK_MENTIONS (opcional): IDs de usuário padrão para mencionar em todas as mensagens (ex.: U1234567890,U0987654321)

Uso com Claude Desktop

Adicione à sua configuração do Claude Desktop:

{
  "mcpServers": {
    "slack-notify": {
      "command": "npx",
      "args": ["-y", "@mkusaka/mcp-server-slack-notify@latest"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-token-here",
        "SLACK_DEFAULT_CHANNEL": "#general",
        "SLACK_MENTIONS": "U1234567890,U0987654321"
      }
    }
  }
}

Uso com Claude Code

Você pode adicionar este servidor MCP ao Claude Code usando o seguinte comando:

claude mcp add slack-notify -e SLACK_BOT_TOKEN=xoxb-your-token-here -e SLACK_DEFAULT_CHANNEL=#general -e SLACK_MENTIONS=U1234567890,U0987654321 -- npx -y @mkusaka/mcp-server-slack-notify@latest

Ou, se você tiver o pacote instalado globalmente:

# Install globally first
npm install -g @mkusaka/mcp-server-slack-notify

# Then add to Claude Code
claude mcp add slack-notify -e SLACK_BOT_TOKEN=xoxb-your-token-here -e SLACK_DEFAULT_CHANNEL=#general -e SLACK_MENTIONS=U1234567890,U0987654321 -- mcp-server-slack-notify

Para adicionar com escopo de usuário (disponível em todos os projetos):

claude mcp add --scope user slack-notify -e SLACK_BOT_TOKEN=xoxb-your-token-here -e SLACK_DEFAULT_CHANNEL=#general -e SLACK_MENTIONS=U1234567890,U0987654321 -- npx -y @mkusaka/mcp-server-slack-notify@latest

Ferramentas disponíveis

send_slack_notification

Envia uma notificação para um canal do Slack.

Parâmetros:

  • channel (opcional): O canal do Slack (ex.: #general ou C1234567890)
  • title (opcional): O título da notificação (se fornecido, exibe com formatação de cabeçalho)
  • description (obrigatório): O corpo da notificação (suporta markdown do Slack)
  • mention (opcional): ID(s) de usuário para mencionar. Pode ser um único ID de usuário (ex.: U1234567890) ou vários IDs separados por vírgulas (ex.: U1234567890,U0987654321)

Guia de formatação

O campo de descrição suporta a formatação mrkdwn do Slack:

  • Menções:
    • Usuário: <@U1234567890> (use o ID do usuário)
    • Canal: <#C1234567890> (use o ID do canal)
    • @here: <!here>
    • @channel: <!channel>
    • Grupos de usuários: <!subteam^S1234567890> (use o ID do subtime)
    • Nota: Ao usar o parâmetro mention ou a variável de ambiente SLACK_MENTIONS, as menções de usuário são adicionadas automaticamente no início da mensagem
  • Formatação de texto:
    • Negrito: *bold text*
    • Itálico: _italic text_
    • Tachado: ~strikethrough text~
    • Código: `código inline`
    • Bloco de código: ``code block``
    • Citação: > quoted text
    • Link: <https://example.com|Link text>

Desenvolvimento

# Install dependencies
pnpm install

# Run tests
pnpm test

# Build
pnpm build

# Run in development mode
pnpm start

# Debug with MCP Inspector
pnpm debug

Testes

O projeto inclui testes abrangentes usando Vitest com chamadas de API do Slack simuladas.

# Run tests
pnpm test

# Run tests in watch mode
pnpm test:watch

Licença

MIT