S

Slack MCP服务器

@korotovsky/slack-mcp-server
0 Stars 350 次浏览 korotovsky 更新于 2026-08-23

用于Slack工作区的最强大的MCP服务器。此集成支持Stdio和SSE传输、代理设置,且不需要工作区管理员批准或创建任何权限或许可的机器人 😏。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "slack": {
      "args": [
        "-y",
        "mcp-remote",
        "https://x.y.z.q:3001/sse",
        "--header",
        "Authorization: Bearer ${SLACK_MCP_SSE_API_KEY}"
      ],
      "command": "npx",
      "env": {
        "SLACK_MCP_SSE_API_KEY": "my-$$e-$ecret"
      }
    }
  }
}

该服务需要配置环境变量:SLACK_MCP_PROXY、SLACK_MCP_SERVER_CA、SLACK_MCP_SERVER_CA_INSECURE、SLACK_MCP_SERVER_HOST、SLACK_MCP_SERVER_PORT、SLACK_MCP_SSE_API_KEY、SLACK_MCP_XOXC_TOKEN、SLACK_MCP_XOXD_TOKEN

服务介绍

Slack MCP 服务器

适用于 Slack 工作区的 Model Context Protocol (MCP) 服务器。此集成支持 Stdio 和 SSE 传输、代理设置,且无需工作区管理员创建或批准任何权限或机器人 😏。

功能演示

ezgif-316311ee04f444

工具

  1. conversations_history
  • 通过频道ID获取频道中的消息
  • 必需输入:
    • channel_id (字符串): 格式为 Cxxxxxxxxxx 的频道ID。
    • cursor (字符串): 用于分页的游标。使用上一个请求响应中返回的 next_cursor 字段值作为下一个游标。
    • limit (数字,默认: 28): 要获取的消息数量限制。
  • 返回: 包含时间戳、用户ID和文本内容的消息列表
  1. channels_list
  • 获取频道列表
  • 必需输入:
    • channel_types (数组): 可能的频道类型。允许的值: 'mpim', 'im', 'public_channel', 'private_channel'。
    • sort (字符串): 排序类型。允许的值: 'popularity' - 按每个频道的成员/参与者数量排序。
  • 返回: 频道列表

设置指南

1. 认证设置

在浏览器中打开您的 Slack 并登录。

查找 SLACK_MCP_XOXC_TOKEN

  • 打开浏览器的开发者控制台。
  • 在 Firefox 中,在菜单栏下选择 工具 -> 浏览器工具 -> Web 开发者工具
  • 在 Chrome 中,点击 URL 栏右侧的“三个点”按钮,然后选择
    更多工具 -> 开发者工具
  • 切换到控制台标签页。
  • 输入 "allow pasting" 并按 ENTER 键。
  • 粘贴以下代码片段并按 ENTER 键执行:
    JSON.parse(localStorage.localConfig_v2).teams[document.location.pathname.match(/^\/client\/([A-Z0-9]+)/)[1]].token

执行命令后立即打印出 token 值(以 xoxc- 开头),请将其保存起来备用。

查找 SLACK_MCP_XOXD_TOKEN

  • 切换到“应用程序”标签页,并在左侧导航窗格中选择“Cookies”。
  • 找到名为 d 的 cookie。没错,就只是字母 d
  • 双击该 cookie 的值。
  • 按 Ctrl+C 或 Cmd+C 将其值复制到剪贴板。
  • 保存以备后用。

2. 安装

选择以下安装方法之一:

2.1. Docker

有关所有环境变量的详细信息,请参阅 环境变量

export SLACK_MCP_XOXC_TOKEN=xoxc-...
export SLACK_MCP_XOXD_TOKEN=xoxd-...

docker pull ghcr.io/korotovsky/slack-mcp-server:latest
docker run -i --rm \
  -e SLACK_MCP_XOXC_TOKEN \
  -e SLACK_MCP_XOXD_TOKEN \
  slack-mcp-server --transport stdio

2.2. Docker Compose

wget -O docker-compose.yml https://github.com/korotovsky/slack-mcp-server/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/korotovsky/slack-mcp-server/releases/latest/download/.env.dist
nano .env # Edit .env file with your tokens from step 1 of the setup guide
docker-compose up -d

2.2.1 TLS 和暴露到互联网

您可能需要为 SSE 设置 HTTPS 的原因有多个:

  • mcp-remote 仅能处理 https 方案;
  • 对于任何暴露到互联网的服务,使用 TLS 是一种良好的实践;

您可以使用 ngrok

ngrok http 3001

然后将端点 https://903d-xxx-xxxx-xxxx-10b4.ngrok-free.app 用于您的 mcp-remote 参数。

3. 配置和使用

您可以使用命令行参数和环境变量来配置 MCP 服务器。

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

选项 1 使用 stdio 传输:

{
  "mcpServers": {
    "slack": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "SLACK_MCP_XOXC_TOKEN=$SLACK_MCP_XOXC_TOKEN",
        "-e",
        "SLACK_MCP_XOXD_TOKEN=$SLACK_MCP_XOXD_TOKEN",
        "ghcr.io/korotovsky/slack-mcp-server",
        "mcp-server",
        "--transport",
        "stdio"
      ],
      "env": {
        "SLACK_MCP_XOXC_TOKEN": "xoxc-...",
        "SLACK_MCP_XOXD_TOKEN": "xoxd-..."
      }
    }
  }
}

选项 2 使用 sse 传输:

完成 2.2 步骤并运行 docker compose up -d 来启动 MCP 服务器,或者使用你喜欢的方法,然后进行配置:

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://x.y.z.q:3001/sse",
        "--header",
        "Authorization: Bearer ${SLACK_MCP_SSE_API_KEY}"
      ],
      "env": {
        "SLACK_MCP_SSE_API_KEY": "my-$$e-$ecret"
      }
    }
  }
}

选项 3 在 Windows 上使用 sse 传输:

完成 2.2 步骤并运行 docker compose up -d 来启动 MCP 服务器,或者使用你喜欢的方法,然后进行配置:

{
  "mcpServers": {
    "slack": {
      "command": "C:\\Progra~1\\nodejs\\npx.cmd",
      "args": [
        "-y",
        "mcp-remote",
        "https://x.y.z.q:3001/sse",
        "--header",
        "Authorization: Bearer ${SLACK_MCP_SSE_API_KEY}"
      ],
      "env": {
        "SLACK_MCP_SSE_API_KEY": "my-$$e-$ecret"
      }
    }
  }
}

控制台参数

参数 是否必需? 描述
--transport-t 选择 MCP 服务器的传输方式,可能的值为:stdio, sse

环境变量

变量 是否必需? 默认值 描述
SLACK_MCP_XOXC_TOKEN nil 从 POST 数据字段集中的 token 字段获取的身份验证数据令牌 (xoxc-...)
SLACK_MCP_XOXD_TOKEN nil 从 cookie d 获取的身份验证数据令牌 (xoxd-...)
SLACK_MCP_SERVER_PORT 3001 MCP 服务器监听的端口
SLACK_MCP_SERVER_HOST 127.0.0.1 MCP 服务器监听的主机地址
SLACK_MCP_SSE_API_KEY nil transportsse 时使用的授权 Bearer 令牌
SLACK_MCP_PROXY nil MCP 服务器使用的代理 URL
SLACK_MCP_SERVER_CA nil 信任存储的 CA 证书路径
SLACK_MCP_SERVER_CA_INSECURE false 信任所有不安全请求 (不推荐)

调试工具

# Run the inspector with stdio transport
npx @modelcontextprotocol/inspector go run mcp/mcp-server.go --transport stdio

# View logs
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

安全性

  • 永远不要共享 API 令牌
  • 确保 .env 文件的安全性和私密性

许可证

根据 MIT 许可证发布 - 查看 LICENSE 文件。这不是 Slack 的官方产品。

相关 MCP 服务