Slack MCP服务器

一个通过标准化接口让AI助手与Slack API交互的MCP服务器。

  • by ubie-oss
  • JavaScript
  • 本地部署
  • 110 星标
  • 更新于
在 GitHub 查看 ubie-oss/slack-mcp-server

使用说明

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 查看详细的客户端示例。

实现模式

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

  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 -运行linting检查(ESLint和Prettier)
  • npm run fix -自动修复掉毛问题

贡献

  1. 分叉存储库
  2. 创建功能分支
  3. 运行测试和梳理: npm run lint
  4. 提交您的更改
  5. 推到分支
  6. 创建拉取请求