Slack Webhook

Poste mensagens em canais do Slack usando webhooks de entrada ou tokens de bot.

Documentação

Servidor MCP Slack Webhook

Um servidor Model Context Protocol (MCP) para enviar mensagens ao Slack via webhooks ou tokens de bot.

Recursos

  • Dois modos de operação: Webhooks ou API de Bot
  • Enviar mensagens para canais do Slack
  • Suporte para substituição de canal
  • Nome de usuário e emoji do bot configuráveis
  • Suporte a menções específicas do Slack (<!channel>, <!here>, <@USERID>)
  • Tratamento abrangente de erros e validação

Instalação

bun install

Configuração

Opção 1: Modo Webhook (Simples)

  1. Criar um App do Slack e Webhook:

    • Acesse Slack API Apps
    • Crie um novo app ou selecione um existente
    • Navegue até "Incoming Webhooks"
    • Ative os webhooks de entrada
    • Adicione um novo webhook ao seu workspace
    • Copie a URL do webhook (formato: https://hooks.slack.com/services/T.../B.../...)
  2. Configurar o Cliente MCP:

{
  "mcpServers": {
    "slack-webhook": {
      "command": "bun",
      "args": [
        "run", 
        "src/index.ts",
        "--webhook-url",
        "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "--channel",
        "#general"
      ],
      "cwd": "/path/to/slack-webhook-mcp-server"
    }
  }
}

Opção 2: Modo Token de Bot (Avançado)

  1. Criar um App do Slack com Token de Bot:

    • Acesse Slack API Apps
    • Crie um novo app ou selecione um existente
    • Vá para "OAuth & Permissions"
    • Adicione escopos de token de bot: chat:write, chat:write.public
    • Instale o app no workspace
    • Copie o "Bot User OAuth Token" (começa com xoxb-)
  2. Obter IDs de Canais:

    • Clique com o botão direito no canal do Slack → "Ver detalhes do canal" → Copiar ID do canal
    • Ou use a API do Slack para listar canais
  3. Configurar o Cliente MCP:

{
  "mcpServers": {
    "slack-bot": {
      "command": "bun",
      "args": [
        "run", 
        "src/index.ts",
        "--bot-token",
        "xoxb-YOUR-BOT-TOKEN",
        "--channel",
                  "CXXXXXXXXXX",
        "--username",
        "MCP Bot"
      ],
      "cwd": "/path/to/slack-webhook-mcp-server"
    }
  }
}

Uso

Argumentos de Linha de Comando

Modo Webhook:

  • --webhook-url <url> - URL do webhook do Slack (obrigatório)
  • --channel <channel> - Nome do canal padrão (opcional, ex.: "#general")

Modo Bot:

  • --bot-token <token> - Token do bot do Slack (obrigatório, começa com xoxb-)
  • --channel <channel> - ID do canal padrão (obrigatório, ex.: "CXXXXXXXXXX")

Opções Comuns:

  • --username <username> - Nome de usuário padrão do bot (opcional)
  • --icon-emoji <emoji> - Emoji padrão do bot (opcional, ex.: ":robot_face:")
  • --help - Mostrar mensagem de ajuda

Exemplos

Modo Webhook:

bun run src/index.ts \
  --webhook-url "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX" \
  --channel "#general" \
  --username "Assistant"

Modo Bot:

bun run src/index.ts \
  --bot-token "xoxb-YOUR-BOT-TOKEN" \
  --channel "CXXXXXXXXXX" \
  --username "Assistant"

Ferramentas Disponíveis

post_slack_message

Enviar uma mensagem para sua integração Slack configurada.

Parâmetros:

  • message (obrigatório): O conteúdo da mensagem a ser enviada (máximo 4000 caracteres)
  • channel (opcional): Canal para envio (substitui o padrão)
    • Modo webhook: Nome do canal (ex.: "#random")
    • Modo bot: ID do canal (ex.: "CXXXXXXXXXX")
  • username (opcional): Substituir o nome de usuário padrão para esta mensagem
  • icon_emoji (opcional): Substituir o emoji padrão para esta mensagem

Exemplo de uso no cliente MCP:

Please post "Hello from MCP!" to the general channel

Comparação de Modos

RecursoModo WebhookModo Bot
ConfiguraçãoSimplesRequer configuração OAuth
Referência de CanalNomes (#general)IDs (CXXXXXXXXXX)
PermissõesLimitado ao canal do webhookEscopos configuráveis
Limites de TaxaMais altosLimites padrão da API
RecursosMensagens básicasAcesso completo à API
AutenticaçãoBaseada em URLBaseada em token

Recursos Específicos do Slack

Menções

  • Menção de usuário: <@U1234567890>
  • Notificação de canal: <!channel>
  • Notificação "aqui": <!here>

Referências de Canal

  • Modo webhook: Use o formato #channel-name
  • Modo bot: Use IDs de canal como CXXXXXXXXXX

Desenvolvimento

Scripts

  • bun run start - Iniciar o servidor
  • bun run dev - Iniciar com monitoramento de arquivos
  • bun run build - Compilar para produção

Estrutura do Projeto

slack-webhook-mcp-server/
├── package.json          # Dependencies and scripts
├── src/
│   └── index.ts         # Main server implementation  
├── types/
│   └── slack.ts         # TypeScript types and schemas
└── README.md            # This file

Tratamento de Erros

O servidor inclui tratamento abrangente de erros para:

  • URLs de webhook e tokens de bot inválidos
  • Problemas de conectividade de rede
  • Erros da API do Slack (tratamento diferente para webhook vs bot)
  • Validação de comprimento de mensagem (limite de 4000 caracteres)
  • Validação de ID de canal (modo bot)
  • Requisições malformadas

Licença

MIT