Slack Webhook MCP服务器
一个模型上下文协议(MCP)服务器,使Claude Desktop等LLM应用程序能够通过传入的webhooks向Slack频道发送消息。
特性
- 向Slack发送纯文本或markdown格式的消息
- 简单安全的webhook URL管理
- 使用Deno构建,用于现代TypeScript开发
- 全面测试覆盖
安装
先决条件
- 德诺 安装在您的系统上
- 启用传入webhooks的Slack工作区
- Claude Desktop(或其他兼容MCP的客户端)
设置
- 克隆此存储库:
git clone https://github.com/yourusername/slack-webhook-mcp.git
cd slack-webhook-mcp- 创建Slack传入webhook:
- 转到Slack工作区的应用程序目录 - 搜索“传入WebHooks”并添加 - 选择一个频道并创建webhook URL - 复制webhook URL(它应该看起来像 https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX)
- 配置您的环境:
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 URLformat(可选):消息格式-“文本”或“标记”(默认:“标记”)
示例:
- “发送一条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的格式相匹配
- 所有错误都会得到妥善处理,不会暴露敏感信息
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 运行测试并确保其通过(
deno task test) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
致谢
- 使用 模型上下文协议SDK
- 由...驱动 德诺
- 与集成 Slack 传入 Webhooks
