Slack MCP Server
项目简介
Slack MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为 AI 助手提供访问 Slack API 的能力。通过此服务器,AI 助手可以利用一系列预定义的工具与 Slack 工作区进行交互,实现自动化工作流程和信息检索。
主要功能点
- 提供 Slack API 工具: 内置多种工具,允许 AI 助手执行常见的 Slack 操作,例如:
- 获取公开频道列表(支持分页)
- 在 Slack 频道中发送消息
- 回复 Slack 消息线程
- 给消息添加 emoji 表情
- 获取频道消息历史记录
- 获取线程中的所有回复
- 获取工作区所有用户的基本信息
- 获取用户的详细资料
- 在工作区中搜索消息
- MCP 协议兼容: 遵循 MCP 协议标准,能够与任何兼容 MCP 协议的客户端进行通信。
- 易于部署和配置: 通过简单的 npm 命令即可安装和启动,并通过环境变量或 .env 文件进行配置。
安装步骤
- 确保已安装 Node.js 和 npm。
- 打开终端,运行以下命令安装 Slack MCP Server:
注意: 由于该包托管在 GitHub Registry 上,您可能需要配置 GitHub Personal Access Token (PAT) 以进行安装。npm install @ubie-oss/slack-mcp-server
服务器配置
为了让 MCP 客户端连接到 Slack MCP Server,您需要在客户端的 MCP 配置 JSON 文件中添加以下配置。请根据您的实际情况填写 '<your-github-pat>'、'<your-bot-token>' 和 '<your-user-token>'。
{ "slack": { "command": "npx", "args": [ "-y", "@ubie-oss/slack-mcp-server" ], "env": { "NPM_CONFIG_//npm.pkg.github.com/:_authToken": "<your-github-pat>", // GitHub PAT,如果安装时需要 "SLACK_BOT_TOKEN": "<your-bot-token>", // Slack Bot User OAuth Token,用于大部分Slack操作 "SLACK_USER_TOKEN": "<your-user-token>" // Slack User OAuth Token,用于消息搜索等功能 } } }
配置参数说明:
- 'command': 启动服务器的命令,这里使用 'npx' 直接运行安装的 npm 包。
- 'args': 传递给 'npx' 的参数,'-y' 表示确认执行,'@ubie-oss/slack-mcp-server' 是要执行的包名。
- 'env': 环境变量配置,服务器启动时需要以下环境变量:
- 'NPM_CONFIG_//npm.pkg.github.com/:_authToken': GitHub Personal Access Token,如果您的 npm 配置需要访问 GitHub Registry,请提供此 token。
- 'SLACK_BOT_TOKEN': Slack Bot User OAuth Token,这是访问 Slack API 的凭证,用于执行如发送消息、列出频道等操作。您需要在 Slack 应用管理后台创建 Bot User 并获取 Token。
- 'SLACK_USER_TOKEN': Slack User OAuth Token,部分 Slack API 功能(如消息搜索)需要 User Token 才能使用。您需要在 Slack 应用管理后台创建 User Token 或使用 OAuth flow 获取。
基本使用方法
-
启动 Slack MCP Server: 在终端中运行以下命令启动服务器:
npx @ubie-oss/slack-mcp-server或者使用 'node' 命令:
node node_modules/.bin/slack-mcp-server服务器成功启动后,将在标准错误输出 (stderr) 中打印 'Slack MCP Server running on stdio'。
-
配置 MCP 客户端: 根据您的 MCP 客户端文档,配置连接到 Slack MCP Server。通常需要提供上面 服务器配置 中生成的 JSON 配置信息。
-
使用 AI 助手调用 Slack 工具: 在您的 AI 助手中,您现在可以使用 'slack_list_channels', 'slack_post_message', 'slack_search_messages' 等工具与 Slack 进行交互。具体的工具列表和参数信息可以参考仓库的 README.md 文件或服务器返回的工具列表。
示例:使用 'slack_get_users' 工具获取 Slack 用户列表 (以下为客户端示例,展示如何调用 'slack_get_users' 工具)
// ... (客户端代码,参考 examples/get_users.ts) ... const response = (await client.callTool( { name: 'slack_get_users', arguments: { limit: 100, }, }, CallToolResultSchema )) as CallToolResult; // ... (处理 response.content 获取用户列表) ...
请参考 'examples' 目录下的示例代码,了解如何使用 MCP 客户端与 Slack MCP Server 进行交互。
信息
分类
通信与社交