Slack Webhook
Poste mensagens em canais do Slack usando webhooks de entrada ou tokens de bot.
GitHubExperimente este MCPPatrocinado
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)
-
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.../...)
-
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)
-
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-)
-
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
-
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 comxoxb-)--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 mensagemicon_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
| Recurso | Modo Webhook | Modo Bot |
|---|---|---|
| Configuração | Simples | Requer configuração OAuth |
| Referência de Canal | Nomes (#general) | IDs (CXXXXXXXXXX) |
| Permissões | Limitado ao canal do webhook | Escopos configuráveis |
| Limites de Taxa | Mais altos | Limites padrão da API |
| Recursos | Mensagens básicas | Acesso completo à API |
| Autenticação | Baseada em URL | Baseada 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 servidorbun run dev- Iniciar com monitoramento de arquivosbun 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