Slack交互服务器

Slack MCP服务器是一个允许Claude与Slack工作区交互的工具,支持读取直接消息和以用户身份发送消息。

  • by AIAtrium
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 aiatrium/slack-mcp-server

使用说明

Slack MCP服务器

分叉自https://github.com/modelcontextprotocol/servers/tree/0ad83e8dda5f3a46f0157c6f2c45e03f397d11a1/src/slack

将身份验证从机器人令牌转换为用户令牌,以允许在更广泛的用例中使用MCP服务器,例如读取直接消息和代表用户发送消息。

用于Slack API的MCP服务器,使Claude能够与Slack工作空间进行交互。

设置

  1. 创建Slack应用程序:

    • 访问 Slack应用程序页面
    • 点击“创建新应用”
    • 选择“从头开始”
    • 将您的应用命名为“Slack MCP Server”并选择您的工作区
  2. 配置用户令牌范围: 导航到“OAuth和权限”,并将这些作用域添加到用户令牌中:

    • channels:history -查看公共频道中的消息和其他内容
    • channels:read -查看基本频道信息
    • chat:write -以用户身份发送消息
    • reactions:write -在消息中添加表情符号反应
    • users:read -查看用户及其基本信息
    • users.profile:read -查看用户的详细资料
    • groups:history -查看私人频道中的消息和其他内容
    • groups:read -查看基本频道信息
    • groups:write -向私人频道发送消息
    • im:history -查看直接消息中的消息和其他内容
    • im:read -查看基本直邮信息
    • im:write -将消息发送到直接消息
    • mpim:history -查看多人直接消息中的消息和其他内容
    • mpim:read -查看基本多人直邮信息
    • mpim:write -向多人直邮发送消息
  3. 将应用程序安装到工作区:

    • 点击“安装到工作区”并授权应用程序
    • 保存以开头的“用户OAuth令牌” xoxp-
  4. 跑 npm install 安装依赖项。

工具

  1. slack_list_channels

    • 列出工作区中的公共或预定义频道
    • 可选输入:
      • limit (数字,默认值:100,最大值:200):要返回的最大通道数
      • cursor (string):下一页的分页光标
    • 返回:通道列表及其ID和信息
  2. slack_post_message

    • 在Slack频道发布新消息
    • 所需输入:
      • channel_id (string):要发布的频道的ID
      • text (string):要发布的消息文本
    • 返回:消息发布确认和时间戳
  3. slack_reply_to_thread

    • 回复特定消息线程
    • 所需输入:
      • channel_id (string):包含线程的通道
      • thread_ts (string):父消息的时间戳
      • text (string):回复文本
    • 返回:回复确认和时间戳
  4. slack_add_reaction

    • 在消息中添加表情符号反应
    • 所需输入:
      • channel_id (string):包含消息的通道
      • timestamp (string):要响应的消息时间戳
      • reaction (字符串):不带冒号的表情符号名称
    • 返回:反应确认
  5. slack_get_channel_history

    • 从频道获取最新消息
    • 所需输入:
      • channel_id (string):通道ID
    • 可选输入:
      • limit (数字,默认值:10):要检索的邮件数
    • 返回:消息及其内容和元数据的列表
  6. slack_get_thread_replies

    • 获取消息线程中的所有回复
    • 所需输入:
      • channel_id (string):包含线程的通道
      • thread_ts (string):父消息的时间戳
    • 返回:回复列表及其内容和元数据
  7. slack_get_users

    • 获取包含基本配置文件信息的工作区用户列表
    • 可选输入:
      • cursor (string):下一页的分页光标
      • limit (数字,默认值:100,最大值:200):可返回的最大用户数
    • 返回:用户及其基本配置文件的列表
  8. slack_get_user_profile

    • 获取特定用户的详细个人资料信息
    • 所需输入:
      • user_id (string):用户的ID
    • 返回:详细的用户配置文件信息

使用Claude Desktop

将以下内容添加到您的 claude_desktop_config.json:

NPX

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_USER_TOKEN": "xoxp-your-user-token"
      }
    }
  }
}

码头工人

{
  "mcpServers": {
    "slack": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "SLACK_USER_TOKEN"],
      "env": {
        "SLACK_USER_TOKEN": "xoxp-your-bot-token"
      }
    }
  }
}

环境变量

  1. SLACK_USER_TOKEN:必填。以开头的Bot用户OAuth令牌 xoxp-.

故障排除

如果遇到权限错误,请验证:

  1. 所有必需的范围都已添加到您的Slack应用程序中
  2. 应用程序已正确安装到您的工作区
  3. 令牌和工作区ID已正确复制到您的配置中
  4. 该应用程序已添加到它需要访问的频道中

构建

Docker构建:

docker build -t mcp/slack -f src/slack/Dockerfile .

许可证

此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。