Slack消息转发服务

一个基于Model Context Protocol (MCP)的服务,允许LLM应用如Claude Desktop通过Webhook向Slack频道发送消息。

  • by masseater
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 masseater/slack-webhook-mcp

使用说明

Slack Webhook MCP服务器

一个模型上下文协议(MCP)服务器,使Claude Desktop等LLM应用程序能够通过传入的webhooks向Slack频道发送消息。

特性

  • 向Slack发送纯文本或markdown格式的消息
  • 简单安全的webhook URL管理
  • 使用Deno构建,用于现代TypeScript开发
  • 全面测试覆盖

安装

先决条件

  • 德诺 安装在您的系统上
  • 启用传入webhooks的Slack工作区
  • Claude Desktop(或其他兼容MCP的客户端)

设置

  1. 克隆此存储库:

    git clone https://github.com/yourusername/slack-webhook-mcp.git
    cd slack-webhook-mcp
    
  2. 创建Slack传入webhook:

    • 转到Slack工作区的应用程序目录
    • 搜索“传入WebHooks”并添加
    • 选择一个频道并创建webhook URL
    • 复制webhook URL(它应该看起来像 https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX)
  3. 配置您的环境:

    cp .env.example .env
    # Edit .env and add your webhook URL
    

配置

克劳德桌面

将此服务器添加到您的Claude Desktop配置文件中: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "slack-webhook": {
      "command": "deno",
      "args": ["run", "--allow-net", "--allow-env", "--allow-read", "/path/to/slack-webhook-mcp/src/index.ts"],
      "env": {
        "SLACK_WEBHOOK_URL": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
      }
    }
  }
}

使用编译的二进制文件

您还可以将服务器编译为独立的可执行文件:

deno task build

然后在配置中使用二进制文件:

{
  "mcpServers": {
    "slack-webhook": {
      "command": "/path/to/slack-webhook-mcp/slack-webhook-server",
      "env": {
        "SLACK_WEBHOOK_URL": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
      }
    }
  }
}

用法

配置后,您可以在Claude Desktop中使用以下工具:

send_slack_message

向您配置的Slack频道发送消息。

参数:

  • message (必填):要发送的消息文本
  • webhook_url (可选): 覆盖默认 webhook URL
  • format (可选):消息格式-“文本”或“标记”(默认:“标记”)

示例:

  • “发送一条Slack消息,表示部署成功”
  • “通知Slack上的团队测试正在通过”
  • 以纯文本格式向Slack发送“构建失败:测试套件超时”

发展

可用命令

# Run in development mode with auto-reload
deno task dev

# Run tests
deno task test

# Run tests with coverage
deno task test:coverage

# Type checking
deno task check

# Linting
deno task lint

# Format code
deno task fmt

# Build standalone executable
deno task build

项目结构

slack-webhook-mcp/
├── src/
│   ├── index.ts                # Entry point
│   ├── server.ts               # MCP server implementation
│   ├── tools/
│   │   ├── slack_webhook.ts    # Slack webhook tool
│   │   └── slack_webhook_test.ts # Tool tests
│   ├── types.ts                # TypeScript types
│   └── index_test.ts           # Integration tests
├── deno.json                   # Deno configuration
├── README.md                   # This file
└── .env.example                # Environment variables example

安全

  • 永远不要承诺你的 .env 文件或webhook URL到版本控制
  • Webhook URL经过验证,以确保其与Slack的格式相匹配
  • 所有错误都会得到妥善处理,不会暴露敏感信息

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 运行测试并确保其通过(deno task test)
  4. 提交您的更改(git commit -m 'Add amazing feature')
  5. 推到分支(git push origin feature/amazing-feature)
  6. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢