使用说明
Slack MCP服务器
一个全面的模型上下文协议(MCP)服务器,使LLM能够与Slack工作区进行交互。此服务器提供用于搜索、阅读和管理Slack内容的工具,以及用于工作区信息和常见工作流提示的资源。
特性
🛠️ 工具(11个可用)
- 渠道管理
slack_list_channels-浏览公共和私人频道slack_get_channel_info-获取详细的频道信息slack_list_bookmarks-列出频道中的书签
- 消息操作
slack_list_messages-从通道和线程读取消息slack_list_threads-发现线程对话slack_search_messages-在工作区中搜索
- 用户管理
slack_get_user_info-获取详细的用户信息slack_list_users-列出工作区用户
- 内容与反应
slack_list_files-浏览共享文件slack_add_reaction-添加表情符号反应slack_remove_reaction-删除表情符号反应
📚 资源(4个可用)
slack://workspace-工作区信息slack://me-当前机器人用户信息slack://users-完整的用户目录slack://channels-所有可访问的频道
💡 提示(5个可用)
find_recent_discussions-搜索关于特定主题的讨论channel_activity_summary-总结渠道活动team_member_activity-检查团队成员的参与情况daily_standup_helper-收集站立信息knowledge_search-查找机构知识
快速开始
1.创建Slack应用程序
- 首选 api.slack.com/apps 点击“创建新应用”
- 选择“从头开始”并为您的应用程序命名
- 选择要安装它的工作区
2.配置OAuth作用域
在您的应用程序设置中,转到“OAuth和权限”并添加这些Bot令牌范围:
基本范围:
channels:read-查看基本频道信息channels:history-查看公共频道中的消息groups:read-查看私人频道的基本信息groups:history-查看私人频道中的消息users:read-查看工作区中的人员users:read.email-查看电子邮件地址team:read-查看工作区信息
完整功能的附加范围:
im:read-查看直接消息im:history-查看直接消息中的消息mpim:read-查看群组直接消息mpim:history-查看群直接消息中的消息search:read-搜索邮件files:read-查看文件reactions:read-查看表情符号反应reactions:write-添加和删除反应bookmarks:read-查看书签
3.安装应用程序
- 在“OAuth和权限”中,单击“安装到工作区”
- 复制“Bot用户OAuth令牌”(以开头
xoxb-)
4.配置克劳德桌面
添加到您的Claude Desktop配置中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@sergdev1/slack-mcp-server"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token",
"SLACK_TEAM_ID": "T01234567"
}
}
}
}
使用示例
使用工具
"Search for messages about the deployment"
"List all channels I have access to"
"Show me threads in #engineering from the last week"
"Get information about user U1234567890"
"Add a thumbsup reaction to message 1234567890.123456 in channel C1234567890"
使用资源
资源提供了对常用信息的快速访问:
"Check the workspace resource for company info"
"Look at the users resource to see all team members"
"Review the channels resource for a complete channel list"
使用提示
提示为常见任务提供指导工作流程:
"Use the find_recent_discussions prompt to search for budget talks"
"Run the channel_activity_summary for #general and #random"
"Execute daily_standup_helper for the #engineering channel"
"Use knowledge_search to find our deployment process"
API详细参考
工具
slack_list_channels
列出Slack工作区中的频道。
参数:
exclude_archived(布尔值,可选):排除已存档的频道(默认值:true)types(字符串,可选):通道类型(默认:“public_Channel,private_Channel”)limit(数字,可选):返回的最大通道数(默认值:100)cursor(字符串,可选):分页光标
slack_search_消息
在工作区中搜索邮件。
参数:
query(字符串,必填):使用Slack修饰符搜索查询count(数字,可选):每页结果(默认值:20)page(数字,可选):页码(默认值:1)highlight(布尔值,可选):突出显示匹配项(默认值:true)sort(字符串,可选):按“分数”或“时间戳”排序(默认值:“分数”)sort_dir(字符串,可选):排序方向为“asc”或“desc”(默认:“desc“)
搜索修改器:
from:@username-来自特定用户的消息in:#channel-特定频道中的消息after:2024-01-01-日期后的消息before:2024-12-31-日期前的消息has:link-带有链接的消息has:file-带有文件的消息
slack_add_action/slack_remove_action
管理表情符号对消息的反应。
参数:
channel(字符串,必填):通道IDtimestamp(字符串,必填):消息时间戳name(字符串,必需):不带冒号的表情符号名称(例如“thumbsup”)
资源
资源通过其URI访问并返回JSON数据:
- slack://workspace:返回工作区ID、名称、域和企业信息
- slack://me:返回机器人用户ID、名称和身份验证详细信息
- slack://users:返回所有具有配置文件的活动用户
- slack://channels:返回所有可访问的频道及其元数据
提示
每个提示符都接受参数,并为LLM返回一条结构化消息:
find_recent_discues
topic(字符串,必填):要搜索的主题days(字符串,可选):回顾的天数(默认值:“7”)
渠道_活动_总结
channel_names(字符串,必填):逗号分隔的频道名称hours(字符串,可选):要分析的小时数(默认值:“24”)
高级配置
环境变量
SLACK_BOT_TOKEN(必填):您的Slack机器人令牌SLACK_TEAM_ID(可选):团队信息的工作区ID
安全最佳实践
-
令牌安全
- 从不将令牌提交到版本控制
- 对敏感数据使用环境变量
- 定期旋转令牌
-
通道存取
- 机器人必须被邀请到私人频道:
/invite @your-bot-name - DM需要明确的用户权限
- 机器人必须被邀请到私人频道:
-
速率限制
- 尊重Slack的费率限制
- 实现重试的指数回退
- 缓存频繁访问的数据
发展
项目结构
slack-mcp-server/
├── src/
│ ├── index.ts # Main server entry point
│ ├── slack-client.ts # Slack API client wrapper
│ ├── tools.ts # Tool implementations
│ ├── resources.ts # Resource handlers
│ ├── prompts.ts # Prompt definitions
│ └── types.ts # TypeScript interfaces
├── package.json
├── tsconfig.json
└── README.md
从源头构建
# Clone the repository
git clone https://github.com/sergdev1/slack-mcp-server.git
cd slack-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev
测试
# Set your Slack token
export SLACK_BOT_TOKEN="xoxb-your-bot-token"
export SLACK_TEAM_ID="T01234567" # Optional
# Run the server
npm test
# Use MCP Inspector for testing
npx @modelcontextprotocol/inspector
扩展服务器
要添加新工具,请执行以下操作:
- 在中定义架构
tools.ts - 实现处理函数
- 注册
server.tool()
要添加新资源,请执行以下操作:
- 在中定义处理程序
resources.ts - 注册
server.resource()
要添加新提示,请执行以下操作:
- 在中定义模板
prompts.ts - 注册
server.prompt()
故障排除
常见问题
“channel_not_found”错误
- 确保bot是频道的成员
- 检查您使用的是频道ID而不是名称
- 验证通道是否已存档
“missing_scope”错误
- 将所需的OAuth作用域添加到您的应用程序中
- 将应用程序重新安装到您的工作区
- 某些范围需要管理员批准
未返回任何消息
- 验证bot是否具有通道类型的历史范围
- 检查时间范围参数
- 确保通道有范围内的消息
搜索不起作用
- 需要
search:read范围 - 搜索索引可能存在延迟
- 检查查询语法是否有效
调试模式
通过设置启用调试日志记录:
DEBUG=slack-mcp-server npm run dev
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
代码的风格
- 使用TypeScript实现类型安全
- 遵循现有的代码模式
- 为公共API添加JSDoc注释
- 包括新功能的测试
许可证
MIT许可证-有关详细信息,请参阅许可证文件
致谢
- 内置于 模型上下文协议
- 用途 Slack Web API
- 由...驱动 @slack/web api
更新日志
v2.0.0版本
- 新增8个工具(搜索、用户、文件、反应)
- 添加了4个资源以快速访问数据
- 添加了5个常见工作流提示
- 改进了错误处理和验证
- 更好的TypeScript类型
- 模块化代码架构
v1.0.0
- 初始版本
- 基本通道、消息和线程工具
由以下材料制成❤️ 对于MCP社区