mcpField
S
slack-mcp-server

slack-mcp-server

本地服务
github.com通信协作11017 周前更新

关于 slack-mcp-server

slack-mcp-server 是一个用于访问 Slack API 的 MCP 服务,让 AI 助手可以通过统一接口读取频道、发送消息和搜索内容。它同时支持 Stdio 与 Streamable HTTP 两种传输方式。

主要功能

  1. 01频道与消息读取工具
  2. 02消息发送与线程回复
  3. 03表情反应添加
  4. 04用户资料批量查询
  5. 05支持多条件的消息搜索
  6. 06可选的安全搜索模式

适用场景

  1. 01让 AI 助手汇总频道近期消息
  2. 02通过 AI 助手在线程中回复或添加反应
  3. 03按用户、日期和频道筛选搜索历史消息

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 slack_list_channels、slack_post_message、slack_search_messages 等 Slack 工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"slack-mcp-server-ubie-oss": {
"command": "npx",
"args": [
"-y",
"@ubie-oss/slack-mcp-server"
]
}
}
}
启动命令npx -y @ubie-oss/slack-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@ubie-oss/slack-mcp-server

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

slack-mcp-server

一个用于访问 Slack API 的 MCP(Model Context Protocol) 服务。此服务允许 AI 助手通过标准化接口与 Slack API 交互。

传输方式支持

此服务支持传统和现代 MCP 传输方式:

  • Stdio 传输(默认):基于进程的通信方式,用于本地集成
  • Streamable 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(例如,“July”“2023”)
    • 内容筛选条件:has(表情回应)、is(已保存/线程)
    • 按相关性评分或时间戳排序

快速开始

安装
npm install @ubie-oss/slack-mcp-server

注意:此项目现已托管在 GitHub Registry,因此你需要提供 PAT。

配置

你需要设置以下环境变量:

  • SLACK_BOT_TOKEN:Slack Bot User OAuth Token
  • SLACK_USER_TOKEN:Slack User OAuth Token(某些功能需要此令牌,例如消息搜索)
  • SLACK_SAFE_SEARCH(可选):设为 true 时,会自动从搜索结果中排除私密频道、私信和群组私信。此设置由服务端强制执行,客户端无法覆盖。

你也可以创建 .env 文件来设置这些环境变量:

SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_USER_TOKEN=xoxp-your-user-token
SLACK_SAFE_SEARCH=true  # Optional: Enable safe search mode
使用方法
启动 MCP 服务

Stdio 传输(默认):

npx @ubie-oss/slack-mcp-server

Streamable HTTP 传输:

npx @ubie-oss/slack-mcp-server -port 3000

你也可以使用 node 运行已安装的模块:

# 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:显示帮助信息
客户端配置

用于 Stdio 传输(Claude Desktop 等):

{
  "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"
    }
  }
}

用于 Streamable 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

详细的客户端示例请参阅 examples/README.md。

实现模式

此服务采用以下实现模式:

  1. 使用 Zod 模式定义请求和响应

    • 请求模式:定义输入参数
    • 响应模式:定义仅包含必要字段的响应
  2. 实现流程:

    • 使用 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 - 运行代码检查(ESLint 和 Prettier)
  • npm run fix - 自动修复代码检查问题
贡献
  1. Fork 此仓库
  2. 创建功能分支
  3. 运行测试和代码检查:npm run lint
  4. 提交更改
  5. 推送到分支
  6. 创建 Pull Request

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。