Slack Webhook
Publica mensajes en canales de Slack usando webhooks entrantes o tokens de bot.
GitHubPrueba este MCPPatrocinado
Documentación
Servidor MCP de Slack Webhook
Un servidor de Model Context Protocol (MCP) para publicar mensajes en Slack mediante webhooks o tokens de bot.
Funciones
- Dos modos de operación: Webhooks o API de Bot
- Publicar mensajes en canales de Slack
- Soporte para anulaciones de canal
- Nombre de usuario y emoji de bot configurables
- Soporte de menciones específicas de Slack (
<!channel>,<!here>,<@USERID>) - Manejo integral de errores y validación
Instalación
bun install
Configuración
Opción 1: Modo Webhook (Sencillo)
-
Crear una aplicación de Slack y un webhook:
- Vaya a Slack API Apps
- Cree una nueva aplicación o seleccione una existente
- Navegue a "Incoming Webhooks"
- Habilite los webhooks entrantes
- Agregue un nuevo webhook a su espacio de trabajo
- Copie la URL del webhook (formato:
https://hooks.slack.com/services/T.../B.../...)
-
Configure el 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"
}
}
}
Opción 2: Modo Token de Bot (Avanzado)
-
Crear una aplicación de Slack con token de bot:
- Vaya a Slack API Apps
- Cree una nueva aplicación o seleccione una existente
- Vaya a "OAuth & Permissions"
- Agregue ámbitos de token de bot:
chat:write,chat:write.public - Instale la aplicación en el espacio de trabajo
- Copie el "Bot User OAuth Token" (comienza con
xoxb-)
-
Obtener IDs de canal:
- Haga clic derecho en el canal en Slack → "View channel details" → Copie el ID del canal
- O use la API de Slack para listar canales
-
Configure el 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 línea de comandos
Modo Webhook:
--webhook-url <url>- URL del webhook de Slack (obligatorio)--channel <channel>- Nombre de canal predeterminado (opcional, p. ej., "#general")
Modo Bot:
--bot-token <token>- Token de bot de Slack (obligatorio, comienza conxoxb-)--channel <channel>- ID de canal predeterminado (obligatorio, p. ej., "CXXXXXXXXXX")
Opciones comunes:
--username <username>- Nombre de usuario de bot predeterminado (opcional)--icon-emoji <emoji>- Emoji de bot predeterminado (opcional, p. ej., ":robot_face:")--help- Mostrar mensaje de ayuda
Ejemplos
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"
Herramientas disponibles
post_slack_message
Publica un mensaje en su integración de Slack configurada.
Parámetros:
message(obligatorio): El contenido del mensaje a enviar (máximo 4000 caracteres)channel(opcional): Canal al que publicar (anula el predeterminado)- Modo Webhook: Nombre del canal (p. ej., "#random")
- Modo Bot: ID del canal (p. ej., "CXXXXXXXXXX")
username(opcional): Anula el nombre de usuario predeterminado para este mensajeicon_emoji(opcional): Anula el emoji predeterminado para este mensaje
Ejemplo de uso en el cliente MCP:
Please post "Hello from MCP!" to the general channel
Comparación de modos
| Característica | Modo Webhook | Modo Bot |
|---|---|---|
| Configuración | Sencillo | Requiere configuración OAuth |
| Referencia de canal | Nombres (#general) | IDs (CXXXXXXXXXX) |
| Permisos | Limitado al canal del webhook | Ámbitos configurables |
| Límites de velocidad | Más altos | Límites estándar de la API |
| Funciones | Mensajería básica | Acceso completo a la API |
| Autenticación | Basada en URL | Basada en token |
Funciones específicas de Slack
Menciones
- Mención de usuario:
<@U1234567890> - Notificación de canal:
<!channel> - Notificación "here":
<!here>
Referencias de canal
- Modo Webhook: Use el formato
#channel-name - Modo Bot: Use IDs de canal como
CXXXXXXXXXX
Desarrollo
Scripts
bun run start- Iniciar el servidorbun run dev- Iniciar con monitoreo de archivosbun run build- Compilar para producción
Estructura del proyecto
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
Manejo de errores
El servidor incluye manejo integral de errores para:
- URLs de webhook y tokens de bot no válidos
- Problemas de conectividad de red
- Errores de la API de Slack (manejo diferente para webhook vs bot)
- Validación de longitud del mensaje (límite de 4000 caracteres)
- Validación del ID de canal (modo bot)
- Solicitudes malformadas
Licencia
MIT