项目简介
Slack MCP 服务器是一个实现了 Model Context Protocol (MCP) 的后端应用。它允许支持 MCP 的大型语言模型 (LLM) 客户端(如 Claude Desktop)与你的 Slack 工作区进行交互,获取上下文信息,特别是读取聊天记录和频道信息。它无需在 Slack 中创建机器人应用或获得工作区管理员批准,使用个人用户的认证令牌进行访问。
主要功能点
该服务器提供以下核心功能:
- 获取频道对话历史: LLM 可以调用此工具获取指定 Slack 频道的聊天消息历史。
- 获取频道列表: LLM 可以调用此工具列出可访问的频道。
- 支持多种传输协议: 支持 Stdio (标准输入/输出) 和 SSE (Server-Sent Events) 两种与 MCP 客户端通信的方式。
安装步骤
-
获取 Slack 认证令牌:
- 在浏览器中登录你的 Slack 工作区。
- 打开浏览器的开发者工具(通常是 F12)。
- 切换到“控制台”(Console)标签。
- 允许粘贴(如果需要)。
- 粘贴以下 JavaScript 代码并执行,获取 'xoxc-' 开头的令牌:
JSON.parse(localStorage.localConfig_v2).teams[document.location.pathname.match(/^\/client\/([A-Z0-9]+)/)[1]].token - 切换到“应用”(Application)或“存储”(Storage)标签,找到“Cookies”,查找名为 'd' 的 Cookie。复制其值 ('xoxd-' 开头)。
- 将这两个令牌安全保存好。
-
安装服务器:
- 使用 npx: 如果安装了 Node.js 和 npm,可以使用 npx 方便运行:'npx -y slack-mcp-server@latest --transport stdio'。
- 使用 Docker: 拉取并运行 Docker 镜像:
也可以使用 'docker-compose' 方式,详情请参考仓库 README。export SLACK_MCP_XOXC_TOKEN=你的_xoxc_令牌 export SLACK_MCP_XOXD_TOKEN=你的_xoxd_令牌 docker run -i --rm -e SLACK_MCP_XOXC_TOKEN -e SLACK_MCP_XOXD_TOKEN ghcr.io/korotovsky/slack-mcp-server --transport stdio
服务器配置
MCP 服务器需要由支持 MCP 的客户端应用来启动和管理。以下是配置 MCP 客户端(例如 'claude_desktop_config.json')以使用此服务器的示例结构和说明:
客户端配置文件通常有一个 'mcpServers' 部分,你在其中定义服务器:
{ "mcpServers": { "slack": { // ... 服务器配置细节 ... } } }
对于 Slack MCP 服务器,一个典型的 Stdio 传输配置如下:
{ "mcpServers": { "slack": { // 给服务器起一个名称,客户端界面可能会显示 "name": "Slack (MCP)", // 启动服务器进程的命令,使用 npx 运行 Node.js 包装器 "command": "npx", // 传递给 command 的参数,-y 表示同意安装,指定包名和传输方式 "args": [ "-y", "slack-mcp-server@latest", "--transport", "stdio" ], // 传递给服务器进程的环境变量,包含认证令牌 "env": { "SLACK_MCP_XOXC_TOKEN": "在这里填写你的 xoxc- 令牌", "SLACK_MCP_XOXD_TOKEN": "在这里填写你的 xoxd- 令牌" } } } }
如果你需要使用 SSE 传输(例如配合 'mcp-remote' 或部署在服务器上),配置会有所不同,通常 'command' 和 'args' 会指向 'mcp-remote' 或直接指向你的部署方式,并需要配置 'SLACK_MCP_SSE_API_KEY' 环境变量进行认证。详细配置请参考仓库 README 中的 SSE 部分。
基本使用方法
配置完成后,启动你的 MCP 客户端应用。客户端会自动根据配置启动或连接到 Slack MCP 服务器。一旦连接成功,LLM 将能够感知并使用服务器提供的工具。
你可以尝试向 LLM 发出类似以下指令:
- “列出我能访问的 Slack 频道。”
- “总结一下 #general 频道最近一天的聊天记录。”
- “查找频道 #team-chat 中关于项目进展的消息。”
LLM 会调用相应的 MCP 工具('channels_list' 或 'conversations_history')来获取信息,并利用这些信息进行回应。
信息
分类
通信与社交