Slack Notify
Enviar notificaciones a Slack usando tokens de bot OAuth.
Documentación
@mkusaka/mcp-server-slack-notify
Servidor MCP para enviar notificaciones a Slack usando tokens OAuth de bot.
Características
- Envía mensajes formateados a canales de Slack con título y descripción
- Menciona usuarios específicos automáticamente con el parámetro de mención
- Soporte para el formato markdown de Slack
- Formato de mensaje limpio con cabecera opcional
- Soporte de TypeScript con seguridad de tipos completa
Instalación
npm install @mkusaka/mcp-server-slack-notify
# or
pnpm add @mkusaka/mcp-server-slack-notify
Configuración
Crear una aplicación de Slack
-
Crea una nueva aplicación de Slack
- Ve a https://api.slack.com/apps
- Haz clic en "Create New App"
- Elige "From scratch"
- Introduce el nombre de tu aplicación (por ejemplo, "MCP Notification Bot")
- Selecciona tu espacio de trabajo
- Haz clic en "Create App"
-
Configura los alcances de OAuth
- En la configuración de tu aplicación, navega a "OAuth & Permissions" en la barra lateral
- Desplázate hacia abajo hasta la sección "Scopes"
- En "Bot Token Scopes", haz clic en "Add an OAuth Scope"
- Añade el siguiente alcance:
chat:write- Requerido para enviar mensajes
-
Instala la aplicación en tu espacio de trabajo
- Permanece en la página "OAuth & Permissions"
- Haz clic en "Install to Workspace" en la parte superior
- Revisa los permisos y haz clic en "Allow"
- Serás redirigido de vuelta a la página de OAuth & Permissions
-
Obtén tu token de bot
- Después de la instalación, verás un "Bot User OAuth Token" en la página de OAuth & Permissions
- Empieza con
xoxb- - Copia este token: lo necesitarás para la variable de entorno
SLACK_BOT_TOKEN
-
Invita al bot a los canales
- En Slack, ve al canal donde quieres enviar notificaciones
- Escribe
/invite @YourBotName(reemplázalo con el nombre de tu bot) - O haz clic en el nombre del canal → pestaña "Integrations" → "Add apps" → Selecciona tu bot
Variables de entorno
Configura las siguientes variables de entorno:
SLACK_BOT_TOKEN(obligatorio): Tu token de acceso OAuth de bot del paso 4SLACK_DEFAULT_CHANNEL(opcional): Canal predeterminado para notificaciones (por ejemplo,#general)SLACK_MENTIONS(opcional): IDs de usuario predeterminados para mencionar en todos los mensajes (por ejemplo,U1234567890,U0987654321)
Uso con Claude Desktop
Añade a tu configuración de 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 con Claude Code
Puedes añadir este servidor MCP a Claude Code usando el siguiente 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
O si tienes el paquete 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 añadirlo con alcance de usuario (disponible en todos los proyectos):
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
Herramientas disponibles
send_slack_notification
Envía una notificación a un canal de Slack.
Parámetros:
channel(opcional): El canal de Slack (por ejemplo, #general o C1234567890)title(opcional): El título de la notificación (si se proporciona, se muestra con formato de cabecera)description(obligatorio): El cuerpo de la notificación (soporta markdown de Slack)mention(opcional): ID(s) de usuario a mencionar. Puede ser un solo ID de usuario (por ejemplo, U1234567890) o varios IDs separados por comas (por ejemplo, U1234567890,U0987654321)
Guía de formato
El campo de descripción soporta el formato mrkdwn de Slack:
- Menciones:
- Usuario:
<@U1234567890>(usa el ID del usuario) - Canal:
<#C1234567890>(usa el ID del canal) - @here:
<!here> - @channel:
<!channel> - Grupos de usuarios:
<!subteam^S1234567890>(usa el ID del subequipo) - Nota: Al usar el parámetro
mentiono la variable de entornoSLACK_MENTIONS, las menciones de usuario se añaden automáticamente al principio del mensaje
- Usuario:
- Formato de texto:
- Negrita:
*bold text* - Cursiva:
_italic text_ - Tachado:
~strikethrough text~ - Código:
`inline code` - Bloque de código:
``code block`` - Cita:
> quoted text - Enlace:
<https://example.com|Link text>
- Negrita:
Desarrollo
# Install dependencies
pnpm install
# Run tests
pnpm test
# Build
pnpm build
# Run in development mode
pnpm start
# Debug with MCP Inspector
pnpm debug
Pruebas
El proyecto incluye pruebas exhaustivas usando Vitest con llamadas simuladas a la API de Slack.
# Run tests
pnpm test
# Run tests in watch mode
pnpm test:watch
Licencia
MIT