使用说明
slack-mcp服务器
A. MCP(模型上下文协议) 用于访问Slack API的服务器。该服务器允许人工智能助手通过标准化界面与Slack API进行交互。
运输支持
此服务器支持传统和现代MCP传输方法:
- 标准运输 (默认):用于本地集成的基于流程的通信
- 可流式HTTP传输:基于HTTP的web应用程序和远程客户端通信
特性
可用工具:
slack_list_channels-在工作区中列出带有分页的公共频道slack_post_message-在Slack频道发布新消息slack_reply_to_thread-在Slack中回复特定消息线程slack_add_reaction-在消息中添加反应表情符号slack_get_channel_history-从频道获取最新消息slack_get_thread_replies-获取消息线程中的所有回复slack_get_users-检索工作区中所有用户的基本配置文件信息slack_get_user_profiles-批量获取多个用户的个人资料信息(高效地进行批量操作)slack_search_messages-使用强大的过滤器在工作区中搜索邮件:- 基本查询搜索
- 位置过滤器:
in_channel - 用户筛选器:
from_user,with - 日期筛选器:
before(YYYY-MM-DD),after(YYYY-MM-DD),on(YYYY-MM-DD),during(例如,“七月”、“2023”) - 内容筛选器:
has(表情符号反应),is(已保存/线程) - 按相关性得分或时间戳排序选项
快速开始
安装
npm install @ubie-oss/slack-mcp-server
注意:它现在托管在GitHub注册表中,所以你需要你的PAT。
配置
您需要设置以下环境变量:
SLACK_BOT_TOKEN:Slack Bot用户OAuth令牌SLACK_USER_TOKEN:Slack用户OAuth令牌(某些功能(如消息搜索)需要)SLACK_SAFE_SEARCH(可选):设置为true,会自动从搜索结果中排除私人频道、DM和组DM。这是在服务器端强制执行的,不能被客户端覆盖。
您还可以创建 .env file来设置这些环境变量:
SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_USER_TOKEN=xoxp-your-user-token
SLACK_SAFE_SEARCH=true # Optional: Enable safe search mode
用法
启动MCP服务器
标准传输(默认):
npx @ubie-oss/slack-mcp-server
可流式HTTP传输:
npx @ubie-oss/slack-mcp-server -port 3000
您还可以使用节点运行已安装的模块:
# Stdio transport
node node_modules/.bin/slack-mcp-server
# HTTP transport
node node_modules/.bin/slack-mcp-server -port 3000
命令行选项:
-port <number>:从指定端口上的Streamable HTTP传输开始-h, --help:显示帮助消息
客户端配置
用于标准传输(克劳德桌面等):
{
"slack": {
"command": "npx",
"args": [
"-y",
"@ubie-oss/slack-mcp-server"
],
"env": {
"NPM_CONFIG_//npm.pkg.github.com/:_authToken": "<your-github-pat>",
"SLACK_BOT_TOKEN": "<your-bot-token>",
"SLACK_USER_TOKEN": "<your-user-token>",
"SLACK_SAFE_SEARCH": "true"
}
}
}
用于流式HTTP传输(Web应用程序):
启动服务器:
SLACK_BOT_TOKEN=<your-bot-token> SLACK_USER_TOKEN=<your-user-token> npx @ubie-oss/slack-mcp-server -port 3000
连接到: http://localhost:3000/mcp
看 示例/README.md 查看详细的客户端示例。
实现模式
此服务器采用以下实现模式:
-
使用Zod模式定义请求/响应
- 请求模式:定义输入参数
- 响应模式:定义仅限于必要字段的响应
-
实施流程:
- 使用Zod模式验证请求
- 调用Slack WebAPI
- 使用Zod模式解析响应,以限制必要的字段
- 以JSON格式返回
例如 slack_list_channels 实现通过以下方式解析请求 ListChannelsRequestSchema,呼叫 slackClient.conversations.list,并返回解析后的响应 ListChannelsResponseSchema.
发展
可用脚本
npm run dev-以热重新加载的开发模式启动服务器npm run build-建设生产项目npm run start-启动生产服务器npm run lint-运行linting检查(ESLint和Prettier)npm run fix-自动修复掉毛问题
贡献
- 分叉存储库
- 创建功能分支
- 运行测试和梳理:
npm run lint - 提交您的更改
- 推到分支
- 创建拉取请求