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 文件进行配置。

安装步骤

  1. 确保已安装 Node.js 和 npm。
  2. 打开终端,运行以下命令安装 Slack MCP Server:
    npm install @ubie-oss/slack-mcp-server
    注意: 由于该包托管在 GitHub Registry 上,您可能需要配置 GitHub Personal Access Token (PAT) 以进行安装。

服务器配置

为了让 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 获取。

基本使用方法

  1. 启动 Slack MCP Server: 在终端中运行以下命令启动服务器:

    npx @ubie-oss/slack-mcp-server

    或者使用 'node' 命令:

    node node_modules/.bin/slack-mcp-server

    服务器成功启动后,将在标准错误输出 (stderr) 中打印 'Slack MCP Server running on stdio'。

  2. 配置 MCP 客户端: 根据您的 MCP 客户端文档,配置连接到 Slack MCP Server。通常需要提供上面 服务器配置 中生成的 JSON 配置信息。

  3. 使用 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 进行交互。

信息

分类

通信与社交