Slack消息发送服务

一个基于Model Context Protocol (MCP)的服务,允许AI助手通过webhook向Slack发送消息,支持简单文本和丰富的Block Kit格式。

  • by agentuse
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 agentuse/mcp-slack-webhook

使用说明

MCP Slack Webhook服务器

一种模型上下文协议(MCP)服务器,使AI助手能够通过webhooks向Slack发送消息。

特性

  • 单柔性工具: send-message 支持简单文本和丰富的块工具包格式
  • 基于环境的配置:通过环境变量配置的Webhook URL
  • 重试机制:用于失败请求的内置重试逻辑
  • 错误处理:全面的错误处理和验证
  • TypeScript:全型安全和现代ES模块

安装

使用npx(推荐)

无需安装-直接与npx一起使用:

npx -y @agentuse/mcp-slack-webhook

来源

cd packages/mcp-slack-webhook
pnpm install
pnpm run build

配置

  1. 创建Slack应用程序并启用传入的webhooks:

    • 首选 松弛API
    • 创建新应用程序或选择现有应用程序
    • 导航到“传入Webhooks”并激活它
    • 为您想要的频道创建一个webhook
  2. 设置环境变量:

    cp .env.example .env
    # Edit .env and set your webhook URL
    
  3. 设置 SLACK_WEBHOOK_URL 环境变量:

    export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
    

用法

用作MCP服务器

此服务器旨在与MCP客户端(如Claude Code)或支持模型上下文协议的其他AI应用程序一起使用。

使用克劳德代码

  1. 构建服务器:

    pnpm run build
    
  2. 添加到您的Claude Code MCP配置中(通常 ~/.config/claude-code/mcp.json):

    使用npx(推荐):

    {
      "mcpServers": {
        "slack-webhook": {
          "command": "npx",
          "args": ["-y", "@agentuse/mcp-slack-webhook"],
          "env": {
            "SLACK_WEBHOOK_URL": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
          }
        }
      }
    }
    

    如果从源代码安装:

    {
      "mcpServers": {
        "slack-webhook": {
          "command": "node",
          "args": ["/path/to/packages/mcp-slack-webhook/dist/index.js"],
          "env": {
            "SLACK_WEBHOOK_URL": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
          }
        }
      }
    }
    
  3. 重新启动Claude Code以加载MCP服务器

与其他MCP客户端

服务器使用stdio传输,可以与任何MCP客户端集成:

# Set environment variable
export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"

# Run the server with npx
npx -y @agentuse/mcp-slack-webhook

独立运行(开发/测试)

# Development mode
pnpm run dev

# Production mode
pnpm run build
pnpm start

工具: send-message

使用可选的Block Kit格式向Slack发送消息。

参数

  • text (必填):主要信息文本。在提供块时用作回退。
  • blocks (可选):块套件块数组,用于丰富格式。

例子

简单短信:

{
  "text": "Hello from MCP!"
}

带有Block Kit格式的消息:

{
  "text": "System Alert",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "🚨 System Alert"
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*CPU usage is high*\nServer: production-01\nUsage: 85%"
      }
    },
    {
      "type": "divider"
    },
    {
      "type": "context",
      "elements": [
        {
          "type": "mrkdwn",
          "text": "Alert generated at <!date^1234567890^{date_short_pretty} at {time}|fallback>"
        }
      ]
    }
  ]
}

带字段的消息:

{
  "text": "Deployment Status",
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*Deployment Complete*"
      },
      "fields": [
        {
          "type": "mrkdwn",
          "text": "*Environment:*\nProduction"
        },
        {
          "type": "mrkdwn",
          "text": "*Version:*\nv1.2.3"
        },
        {
          "type": "mrkdwn",
          "text": "*Status:*\n✅ Success"
        },
        {
          "type": "mrkdwn",
          "text": "*Duration:*\n2m 15s"
        }
      ]
    }
  ]
}

常见块类型

  • 头球:大标题文本
  • 章节:带可选字段的文本
  • 分隔线:视觉分隔符
  • 上下文:小而静音的文本(时间戳、元数据)

错误处理

服务器包括全面的错误处理:

  • 无效的 URL:启动时验证URL格式
  • 网络故障:使用指数回退自动重试
  • Slack API错误:返回了详细的错误消息
  • 块格式无效:Zod模式验证

与Claude整合

此MCP服务器旨在与Claude等AI助手无缝协作。单曲 send-message 该工具使LLM能够轻松:

  1. 发送简单通知: {text: "Task completed"}
  2. 使用区块创建格式丰富的警报
  3. 使用结构化数据生成状态报告

可用工具

一旦连接为MCP服务器,将提供以下工具:

send-message

  • 目的:通过webhook向Slack发送消息
  • 参数:
    • text (必填):主消息文本
    • blocks (可选):用于丰富格式的块套件块
  • 退货:成功确认或错误详细信息

发展

# Install dependencies
pnpm install

# Run in development mode
pnpm run dev

# Build for production
pnpm run build

# Type checking
npx tsc --noEmit

故障排除

服务器无法启动:

  • 检查一下 SLACK_WEBHOOK_URL 已设置且有效
  • 确保webhook URL格式: https://hooks.slack.com/services/...

Slack中未显示的消息:

  • 验证webhook URL是否正确
  • 检查Slack应用程序是否有权发布到目标频道
  • 查看服务器日志中的错误消息

发布到npm

对于维护人员

要将新版本发布到npm:

  1. 更新版本:

    cd packages/mcp-slack-webhook
    npm version patch  # or minor, major
    
  2. 测试包装:

    pnpm run publish:dry-run
    
  3. 登录到npm (仅限第一次):

    npm login
    
  4. 发布:

    pnpm run publish:npm
    

包装内容

已发布的软件包包括:

  • dist/ -编译的JavaScript和TypeScript定义
  • README.md -文件
  • LICENSE -MIT许可证
  • .env.example -环境变量模板

通过以下方式排除源文件和开发依赖关系 .npmignore.

许可证

麻省理工学院