返回市场
Slack-MCP-服务器

Slack-MCP-服务器

作者:ubie-oss107 星标更新:2025-09-14

项目介绍

slack-mcp-server

一个用于访问Slack API的MCP(模型上下文协议)服务器。此服务器允许AI助手通过标准化接口与Slack API进行交互。

传输支持

该服务器支持传统的和现代的MCP传输方法:

  • Stdio传输(默认):基于进程的本地集成通信
  • 可流式传输HTTP传输:基于HTTP的网络应用和远程客户端通信

功能

可用工具:

  • 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注册表中,因此你需要你的个人访问令牌(PAT)。

配置

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

  • SLACK_BOT_TOKEN:Slack机器人用户OAuth令牌
  • SLACK_USER_TOKEN:Slack用户OAuth令牌(某些功能如消息搜索需要)
  • SLACK_SAFE_SEARCH(可选):当设置为true时,自动从搜索结果中排除私人频道、DM和群组DM。这在服务器端强制执行,客户端无法覆盖。

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

SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_USER_TOKEN=xoxp-your-user-token
SLACK_SAFE_SEARCH=true  # 可选:启用安全搜索模式

使用

启动MCP服务器

Stdio传输(默认)

npx @ubie-oss/slack-mcp-server

可流式传输HTTP传输

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

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

# Stdio传输
node node_modules/.bin/slack-m- cserver

# HTTP传输  
node node_modules/.bin/slack-mcp-server -port 3000

命令行选项

  • -port <number>:指定端口启动可流式传输HTTP传输
  • -h, --help:显示帮助信息

客户端配置

对于Stdio传输(Claude桌面等)

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

查看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. 分叉仓库
  2. 创建你的功能分支
  3. 运行测试和代码检查:npm run lint
  4. 提交更改
  5. 推送到分支
  6. 创建拉取请求