Slack MCP服务器
 ](https://nodejs.org/) 
用于与Slack交互的MCP(模型上下文协议)服务器。
安全功能
- 链接展开已禁用:防止可能泄露敏感信息的自动链接爬行
- 速率限制:强制每个端点每分钟60个请求
- Markdown转换:自动将GitHub风格的Markdown转换为Slack
mrkdwn格式
Slack设置
- 创建Slack应用程序:
- 访问 Slack应用程序 - 点击“创建新应用” - 选择“从头开始” - 命名您的应用程序并选择您的工作区
- 配置Bot令牌范围:
导航到“OAuth和权限”并添加以下范围:
- channels:history -查看公共频道中的消息和其他内容 - channels:read -查看基本频道信息 - chat:write -以应用程序的身份发送消息 - reactions:write -在消息中添加表情符号反应 - users:read -查看用户及其基本信息 - users.profile:read -查看用户的详细资料
- 将应用程序安装到工作区:
- 点击“安装到工作区”并授权应用程序 - 保存以开头的“Bot用户OAuth令牌” xoxb-
- 得到你的 团队ID (以a开头
T)
MCP服务器配置
增添 mcp.json 服务器配置:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": [
"-y",
"@axivo/mcp-slack"
],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token",
"SLACK_TEAM_ID": "T01234567",
"SLACK_CHANNEL_IDS": "C01234567, C76543210"
}
}
}
}环境变量
所需变量:
SLACK_BOT_TOKEN-Slack机器人令牌(以开头xoxb-)SLACK_TEAM_ID-松弛 团队ID (开始于T)
可选变量:
SLACK_CHANNEL_IDS-以逗号分隔的频道ID列表,仅限制对特定频道的访问。如果未设置,服务器可以访问机器人有权访问的所有公共频道。
提示示例
以下是如何使用Slack MCP服务器和自然语言提示的实际示例:
- "*在#general Slack频道中提到我的名字,并发布项目更新*"
- "*阅读#marketing Slack频道的最后20条消息,了解讨论情况*"
- "*回复#support Slack频道的最新帖子并提供解决方案*"
- "*在#announcements Slack频道的最新消息中添加竖起大拇指的反应*"
- "*从关于API更改的长线程中获取所有回复*"
- "*在#general Slack频道中编辑我的最后一条消息以修复拼写错误*"
- "*列出我可以访问的所有频道,并找到与工程相关的频道*"
- "*查找John的个人资料信息和时区*"
MCP工具
add_reaction
- 在消息中添加反应表情符号 - 所需输入: - channel_id (string):包含消息的通道的ID - timestamp (string):要响应的消息的时间戳 - reaction (字符串):表情符号反应的名称(不带::) - 返回:反应添加确认
edit_message
- 编辑Slack频道中的现有消息 - 所需输入: - channel_id (string):包含消息的通道的ID - timestamp (string):要编辑的消息的时间戳 - text (string):要编辑的消息文本 - 返回:带有更新内容的消息编辑确认
get_channel_history
- 从频道获取最新消息 - 所需输入: - channel_id (string):通道的ID - 可选输入: - limit (数字,默认值:10):要检索的邮件数 - 返回:包含元数据的最近消息数组
get_thread_replies
- 获取消息线程中的所有回复 - 所需输入: - channel_id (string):包含线程的通道的ID - thread_ts (string):父消息的时间戳,格式为“1234567890.123456”。不带句点的格式的时间戳可以通过添加句点进行转换,使其后面有6个数字 - 返回:包含消息详细信息的线程回复数组
get_user_profile
- 获取特定用户的详细个人资料信息 - 所需输入: - user_id (string):用户的ID - 返回:详细的用户配置文件信息,包括显示名称、状态、时区等。
get_users
- 获取工作区中所有用户的列表及其基本配置文件信息 - 可选输入: - limit (数字,默认值:100,最大值:200):返回的最大用户数 - cursor (string):下一页结果的分页光标 - 返回:包含基本配置文件信息的工作区用户列表
list_channels
- 在工作区中列出带有分页的公共或预定义频道 - 可选输入: - limit (数字,默认值:100,最大值:200):要返回的最大通道数 - cursor (string):下一页结果的分页光标 - 返回:通道列表及其ID和信息
post_message
- 在Slack频道发布新消息 - 所需输入: - channel_id (string):要发布的频道的ID - text (string):要发布的消息文本 - 返回:带有时间戳和频道信息的消息发布确认
reply_to_thread
- 在Slack中回复特定消息线程 - 所需输入: - channel_id (string):包含线程的通道的ID - thread_ts (string):父消息的时间戳,格式为“1234567890.123456”。不带句点的格式的时间戳可以通过添加句点进行转换,使其后面有6个数字 - text (string):要发布的回复文本 - 可选输入: - broadcast (boolean,默认值:false):是否也向主通道发送回复 - 返回:带有消息详细信息的线程回复确认
