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配置
- 创建Slack应用程序并启用传入的webhooks:
- 首选 松弛API - 创建新应用程序或选择现有应用程序 - 导航到“传入Webhooks”并激活它 - 为您想要的频道创建一个webhook
- 设置环境变量:
cp .env.example .env
# Edit .env and set your webhook URL- 设置
SLACK_WEBHOOK_URL环境变量:
export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"用法
用作MCP服务器
此服务器旨在与MCP客户端(如Claude Code)或支持模型上下文协议的其他AI应用程序一起使用。
使用克劳德代码
- 构建服务器:
pnpm run build- 添加到您的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"
}
}
}
}- 重新启动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 "
}
]
}
]
}带字段的消息:
{
"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能够轻松:
- 发送简单通知:
{text: "Task completed"} - 使用区块创建格式丰富的警报
- 使用结构化数据生成状态报告
可用工具
一旦连接为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:
- 更新版本:
cd packages/mcp-slack-webhook
npm version patch # or minor, major- 测试包装:
pnpm run publish:dry-run- 登录到npm (仅限第一次):
npm login- 发布:
pnpm run publish:npm包装内容
已发布的软件包包括:
dist/-编译的JavaScript和TypeScript定义README.md-文件LICENSE-MIT许可证.env.example-环境变量模板
通过以下方式排除源文件和开发依赖关系 .npmignore.
许可证
麻省理工学院
