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

  1. 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"
  2. 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
  3. 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
  4. 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
  5. 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 4
  • SLACK_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 mention o la variable de entorno SLACK_MENTIONS, las menciones de usuario se añaden automáticamente al principio del mensaje
  • 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>

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