Token导航 LogoToken导航TokenDH.com
Advanced Slack MCP logo
办公协作stdio官方级别未说明来源级核验

Advanced Slack MCP

MCP Server

tsx

一个支持多Slack工作区的消息协议服务器,提供完整的消息、频道、搜索和线程功能。

工具数

12

提示词数

0

GitHub Stars

1

资源数

0
SlackTypeScriptClaude团队协作Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

coreyepstein

提供方

coreyepstein

最后核验

2026/5/17 20:23

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx tsx scripts/verify-e2e.ts

详细介绍

Slack MCP服务器

懒散 MCP服务器 为了 克劳德代码 它跨多个Slack工作区提供完整的消息传递、频道、搜索和线程。

特性

  • 12工具 --渠道、消息、线程、DM、反应、搜索、文件上传
  • 多工作空间 --根据需要连接尽可能多的Slack工作区
  • 双令牌支持 --机器人令牌和用户令牌,具有自动偏好
  • 发布自己 --用户令牌使消息显示来自您,而不是机器人
  • 全局搜索search_messages 使用用户令牌(无限制)
  • Env-var代币 --配置文件或仓库中没有秘密
  • 频道名称解析 --使用 #generalgeneral,而不仅仅是ID

快速开始

1.克隆并安装

git clone https://github.com/coreyepstein/slack-mcp.git
cd slack-mcp
npm install

2.创建Slack应用程序

  1. 首选 api.slack.com/apps 然后单击 创建新应用程序 > 从头开始
  2. 命名它(例如“Claude MCP”)并选择您的工作空间
  3. 首选 OAuth和权限 并添加作用域(请参见 范围 在......下面
  4. 点击 安装到工作区
  5. 复制 Bot用户OAuth令牌 (xoxb-...)
  6. (可选)复制 用户OAuth令牌 (xoxp-...)--看 令牌类型

3.配置工作空间

cp workspaces.example.json workspaces.json

编辑 workspaces.json 带有您的工作区名称和团队ID。令牌为 存储在此处:

{
  "workspaces": [
    {
      "name": "my-company",
      "team_id": "T_YOUR_TEAM_ID"
    }
  ],
  "default": "my-company"
}

通过运行查找您的团队ID npm run auth -- --setup 或从您的Slack工作区URL设置。

4.设置令牌环境变量

令牌通过环境变量传递,从不存储在文件中。命名约定是:

SLACK_TOKEN_{NAME}_BOT   →  Bot token (xoxb-...)
SLACK_TOKEN_{NAME}_USER  →  User token (xoxp-...)

哪里 {NAME} 工作区名称大写,非字母数字字符替换为下划线。

示例:

工作区名称机器人环境变量用户环境变量
my-companySLACK_TOKEN_MY_COMPANY_BOTSLACK_TOKEN_MY_COMPANY_USER
voyageSLACK_TOKEN_VOYAGE_BOTSLACK_TOKEN_VOYAGE_USER
acme-corpSLACK_TOKEN_ACME_CORP_BOTSLACK_TOKEN_ACME_CORP_USER

5.添加到克劳德代码

添加到您的项目 .mcp.json~/.claude.json:

{
  "mcpServers": {
    "slack": {
      "type": "stdio",
      "command": "npx",
      "args": ["tsx", "/absolute/path/to/slack-mcp/src/server.ts"],
      "env": {
        "SLACK_TOKEN_MY_COMPANY_BOT": "xoxb-your-bot-token",
        "SLACK_TOKEN_MY_COMPANY_USER": "xoxp-your-user-token"
      }
    }
  }
}

对于多个工作区,将所有令牌添加到同一个工作区 env 块:

{
  "mcpServers": {
    "slack": {
      "type": "stdio",
      "command": "npx",
      "args": ["tsx", "/absolute/path/to/slack-mcp/src/server.ts"],
      "env": {
        "SLACK_TOKEN_VOYAGE_BOT": "xoxb-...",
        "SLACK_TOKEN_VOYAGE_USER": "xoxp-...",
        "SLACK_TOKEN_INDIGO_BOT": "xoxb-...",
        "SLACK_TOKEN_INDIGO_USER": "xoxp-..."
      }
    }
  }
}
重要提示: 使用绝对路径 src/server.ts。切勿将令牌提交到任何跟踪的文件。

6.验证设置

npm run auth:check

这将根据Slack API验证所有配置的令牌并报告其状态。

7.邀请机器人

在您要访问的每个Slack频道中,邀请机器人:

/invite @Claude MCP

这是机器人令牌在通道中读/写所必需的。用户令牌可以访问令牌所有者已经是其成员的任何通道。

令牌类型

此服务器支持每个工作区两种类型的Slack令牌:

机器人令牌(xoxb-...)

  • 将Slack应用程序安装到工作区时创建
  • 消息显示为应用程序(例如“Claude MCP”),而不是人
  • 必须明确邀请到以下频道 /invite
  • 无法使用 search:read (放宽API限制)
  • 适用于:自动通知、机器人风格的交互

用户令牌(xoxp-...)

  • 生成自 用户OAuth令牌 在OAuth和权限页面上
  • 消息显示为令牌所有者(例如“Corey Epstein”)-您的真实姓名和头像
  • 可以访问令牌所有者所属的任何频道
  • 要求…… search_messages (search:read 范围)
  • 适合:扮演自己、搜索、访问频道而无需 /invite

如何选择代币

服务器会自动为每个操作选择最佳令牌:

场景使用的令牌
用户令牌可用用户令牌(所有操作首选)
用户令牌丢失,机器人令牌可用机器人令牌(自动回退)
两个令牌都不可用安装说明错误
search_messages仅限用户令牌(硬性要求——无回退)

您可以从一个机器人令牌开始,稍后添加一个用户令牌。除以下操作外的所有操作 search_messages 使用任一令牌类型。

以用户身份发布

当用户令牌(xoxp-...)配置后,通过服务器发送的所有消息都显示为 发送给他们——你的名字、个人资料图片、身份。这适用于:

  • send_message --频道消息显示您的姓名
  • reply_thread --帖子回复显示您的姓名
  • send_dm --DM来自你,而不是机器人

这是自动发生的。Slack API在使用用户令牌时发布为令牌所有者。无特殊配置或 as_user 需要参数。

如果只有机器人令牌可用,则消息将显示为Slack应用程序。

范围

Bot令牌范围

在下面添加这些 OAuth和权限>Bot令牌范围 在您的Slack应用程序中:

范围描述
channels:read列出公共频道
channels:history阅读公共频道中的消息
chat:write发送消息
groups:read列出私人频道
groups:history阅读私人频道中的消息
im:write发送直接消息
users:read列出工作区成员
users:read.email访问用户电子邮件地址
files:write上传文件
reactions:write添加表情符号反应

用户令牌范围

在下面添加这些 OAuth和权限>用户令牌范围 要获得完整功能:

范围描述
chat:write以自己的身份发送消息
channels:read列出公共频道
channels:history阅读公共频道中的消息
groups:read列出私人频道
groups:history阅读私人频道中的消息
im:read读取直接消息历史记录
im:write发送直接消息
mpim:read读取组DM历史记录
mpim:write发送组DM
users:read列出工作区成员
users:read.email访问用户电子邮件地址
files:write上传文件
reactions:write添加表情符号反应
search:read搜索邮件和文件

添加用户令牌范围后,单击 重新安装到工作区 以生成用户令牌。

工具

工具描述令牌要求
list_channels列出工作区中的频道(公共频道和可选的私有频道)机器人或用户
read_channel从频道读取最近的消息机器人或用户
read_thread读取一个线程中的所有回复机器人或用户
get_channel_info获取频道详细信息(主题、目的、成员数)机器人或用户
send_message向频道发送消息机器人或用户
reply_thread回复特定线程机器人或用户
send_dm向用户发送直接消息(通过姓名、电子邮件或ID)机器人或用户
list_users列出所有工作区成员机器人或用户
find_user按名称、显示名称、电子邮件或ID查找用户机器人或用户
add_reaction在消息中添加表情符号反应Bot或用户
search_messages在工作区中搜索邮件需要用户令牌
upload_file将文件上传到频道机器人或用户

所有工具都接受可选 workspace 参数(名称或团队ID)。如果省略,则使用默认工作区 workspaces.json.

多工作区

在中配置多个工作区 workspaces.json 并为每个设置令牌:

{
  "workspaces": [
    { "name": "voyage", "team_id": "T7V83HY5B" },
    { "name": "indigo", "team_id": "T_INDIGO_ID" }
  ],
  "default": "voyage"
}

然后使用 workspace 任何工具中的参数:

send_message(channel: "general", text: "hello", workspace: "voyage")
send_message(channel: "team", text: "hello", workspace: "indigo")

如果 workspace 省略,使用 defaultworkspaces.json.

身份验证CLI

auth-CLI有助于设置和健康检查:

# Interactive setup — walks through token configuration
npm run auth -- --setup

# Health check — validates all tokens for all workspaces
npm run auth:check

--check 命令针对Slack API测试每个令牌,并报告:

Workspace Health Check:
──────────────────────────────────────────────────────────────────────────
  Workspace: voyage (default)
    Bot token:  + connected as @claude-mcp in Voyage
    User token: + connected as @corey in Voyage

  Workspace: indigo
    Bot token:  + connected as @claude-mcp in Indigo
    User token: - missing (optional — needed for search:read)
                  Set env: SLACK_TOKEN_INDIGO_USER=xoxp-...

E2E验证

端到端验证脚本包含在 scripts/verify-e2e.ts:

npx tsx scripts/verify-e2e.ts

# Or with a specific test channel:
TEST_CHANNEL=bot-testing npx tsx scripts/verify-e2e.ts

这将验证所有配置的工作区中的令牌连接、消息发布身份、搜索功能和机器人令牌回退。

故障排除

错误原因修复
workspaces.json not found配置文件丢失运行 cp workspaces.example.json workspaces.json 并对其进行编辑
No token available for workspace "X"没有为此工作区设置环境变量设置 SLACK_TOKEN_X_BOTSLACK_TOKEN_X_USER 环境变量
invalid_auth令牌已过期或不正确从Slack应用程序的OAuth和权限页面重新生成令牌
channel_not_found机器人不在频道中邀请机器人: /invite @Claude MCP
missing_scope令牌缺少所需的OAuth作用域在Slack应用程序的OAuth和权限设置中添加该作用域,然后重新安装
not_allowed_token_type将机器人令牌用于仅限用户令牌的操作search_messages 需要用户令牌(xoxp-).集 SLACK_TOKEN_X_USER
search.messages requires a user token没有为此工作区配置用户令牌获取用户令牌(请参阅 令牌类型)并设置 _USER 有人是。
not_in_channel机器人令牌无法访问此频道邀请机器人加入频道,或使用用户令牌(可以访问所有者所在的任何频道)
Unknown workspace: "X"工作区名称不在 workspaces.json将工作区条目添加到 workspaces.json 使用正确的名称和team_id
消息显示为机器人,而不是我使用机器人令牌代替用户令牌设置 SLACK_TOKEN_X_USER 使用您的用户OAuth令牌(xoxp-...)

安全

git历史中的令牌: 此仓库的早期版本在以下位置存储了Slack bot令牌 workspaces.json该令牌已被轮换,不再有效,但它仍可能出现在git提交历史中。如果在移除令牌之前分叉或克隆了此仓库,则本地历史记录中的旧令牌已经无效。 最佳实践: 始终通过环境变量传递令牌 .mcp.json env 块。永远不要将代币提交给 workspaces.json 或任何其他被跟踪的文件。这 .gitignore 排除 workspaces.json 以防止意外犯罪。

建筑

src/
  server.ts           — MCP server entry point
  config.ts           — workspace + token resolution from env vars
  auth.ts             — setup and health check CLI
  slack/
    client.ts         — Slack Web API wrapper with dual-token client caching
    types.ts          — shared TypeScript types
  tools/
    *.ts              — one file per MCP tool (12 tools)
scripts/
  verify-e2e.ts       — end-to-end verification script

许可证

麻省理工学院

目录标签

目录标签

SlackTypeScriptClaude团队协作Slack集成本地部署多工作区管理消息协议自动化通信

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

tsx

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP