Back to MCP directory
publicPublicdnsLocal runtime

slack-mcp

Slack MCP是一个Model Context Protocol服务器,为LLM提供完整的Slack工作区访问能力,包括消息、频道、文件、搜索等193个工具,覆盖所有Slack功能。

article

README

🚀 Slack MCP

让任何人工智能都能访问你的整个Slack工作区。

Python License

这是一个 模型上下文协议 服务器,可让大语言模型全面访问 Slack。消息、频道、文件、画布、列表、搜索、反应等,应有尽有。

193 个工具 · 35 个 API 族 · 涵盖所有 Slack 功能

🚀 快速开始

1. 创建一个 Slack 应用

  1. 访问 api.slack.com/apps,点击 创建新应用 > 从清单创建
  2. 粘贴 manifest.json 的内容。
  3. 将应用安装到你的工作区。
  4. OAuth & 权限 中复制 用户 OAuth 令牌 (xoxp-...)。

2. 添加到你的 AI 客户端

Claude 代码
claude mcp add slack -- uvx --from git+https://github.com/karbassi/slack-mcp.git slack-mcp

然后在你的 shell 环境中设置 SLACK_XOXP_TOKEN

Claude 桌面版

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "slack": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "git+https://github.com/karbassi/slack-mcp.git", "slack-mcp"],
      "env": {
        "SLACK_XOXP_TOKEN": "xoxp-..."
      }
    }
  }
}
Cursor

添加到 ~/.cursor/mcp.json

{
  "mcpServers": {
    "slack": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "git+https://github.com/karbassi/slack-mcp.git", "slack-mcp"],
      "env": {
        "SLACK_XOXP_TOKEN": "xoxp-..."
      }
    }
  }
}
Windsurf

添加到 ~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "slack": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "git+https://github.com/karbassi/slack-mcp.git", "slack-mcp"],
      "env": {
        "SLACK_XOXP_TOKEN": "xoxp-..."
      }
    }
  }
}
VS Code / GitHub Copilot

添加到你的 VS Code settings.json

{
  "mcp": {
    "servers": {
      "slack": {
        "command": "uvx",
        "args": ["--from", "git+https://github.com/karbassi/slack-mcp.git", "slack-mcp"],
        "env": {
          "SLACK_XOXP_TOKEN": "xoxp-..."
        }
      }
    }
  }
}
本地克隆
{
  "mcpServers": {
    "slack": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "--directory", "/path/to/slack-mcp", "slack-mcp"]
    }
  }
}

✨ 主要特性

功能示例

  • “总结今天 #engineering 频道的内容”
  • “回复 Sarah 的线程,告知我们将在周一发货”
  • “搜索有关第三季度路线图的所有内容”
  • “创建一个名为 #project-atlas 的频道,并邀请设计团队”

功能领域及工具

| 领域 | 工具数量 | 亮点 | |---|---|---| | 对话 | 28 | 历史记录、线程、回复、创建、存档、邀请、标记已读 | | 文件 | 16 | 上传、共享、编辑、列表、远程文件 | | 聊天 | 14 | 发送、回复、安排、更新、删除、临时消息 | | 用户 | 12 | 个人资料、在线状态、查找、列表 | | 列表 | 12 | 创建、编辑项目、管理访问权限 | | 旧版 | 11 | 斜杠命令、文件编辑、机器人列表 | | 团队 | 9 | 信息、偏好设置、访问日志、账单 | | 应用 | 8 | 清单、连接、授权 | | 用户组 | 7 | 创建、更新、管理成员 | | 工作流 | 7 | 特色工作流、步骤完成情况 | | 画布 | 6 | 创建、编辑、部分、访问控制 | | 通话 | 6 | 开始、结束、管理参与者 | | + 23 个以上 | | 勿扰、提醒、书签、反应、固定、星标、视图、搜索、认证、机器人、表情符号等 |

此外,还有一个 cache_clear 实用工具,可按需清除响应缓存。

超越官方 API

提供 15 个未记录和旧版端点,这些是 Slack 自身应用使用的内部 API。需要会话令牌 (xoxc + xoxd)。

会话端点 — 官方 API 未公开的工作区状态

| 端点 | 提供的内容 | |---|---| | client.boot | 完整的工作区启动信息 — 频道、用户、偏好设置、功能标志 | | client.counts | 每个频道/直接消息/线程的未读计数以及提及计数 | | client.userBoot | 经过身份验证的用户特定的启动数据 | | threads.getView | 线程收件箱 — 带有已读/未读状态的线程列表 |

旧版端点 — 官方 API 缺少的功能

| 端点 | 提供的内容 | |---|---| | chat.command | 以编程方式执行斜杠命令 | | commands.list | 列出所有斜杠命令,包括自定义命令 | | files.edit | 就地编辑文件的标题、内容或文件类型 | | files.share | 将文件共享到频道 | | bots.list | 列出工作区中的所有机器人用户 | | team.prefs.get | 团队级别的偏好设置 — 保留期、权限、域名 | | users.prefs.get | 所有用户偏好设置 — 通知、侧边栏、主题 | | users.prefs.set | 设置任何单个用户偏好设置 | | users.admin.invite | 通过电子邮件邀请用户(企业网格) | | users.admin.setInactive | 停用用户账户(企业网格) | | channels.delete | 已弃用的方法 — 为完整性而包含 |

📚 详细文档

身份验证

| 变量 | 是否必需 | 描述 | |---|---|---| | SLACK_XOXP_TOKEN | | 来自你的 Slack 应用的用户 OAuth 令牌 | | SLACK_XOXC_TOKEN | 否 | 用于未记录端点的浏览器会话令牌 | | SLACK_XOXD_TOKEN | 否 | 浏览器会话 cookie(与 xoxc 配对) |

⚠️ 重要提示

xoxp 令牌涵盖所有 193 个官方 API 工具。对于未记录的端点(未读计数、工作区启动、文件编辑),你还需要 xoxc + xoxd,可以在登录 slack.com 时从浏览器 cookie 中获取。

缓存

响应会自动缓存,以减少 API 调用:

  • 稳定数据(用户、团队、机器人、表情符号) — 1 小时 TTL
  • 动态数据(频道列表、成员、书签) — 5 分钟 TTL
  • 旧线程conversations_replies 且时间戳大于 1 小时) — 1 小时 TTL
  • 有限历史记录conversations_history 且日期范围较旧) — 1 小时 TTL

可以使用 cache_clear 工具在需要最新数据时清除缓存。

🔧 技术细节

开发步骤

git clone https://github.com/karbassi/slack-mcp.git
cd slack-mcp
uv sync
uv run ruff check .
uv run pytest tests/
uv run pytest tests/ -m integration  # 需要在 .env 中设置令牌

📄 许可证

MIT

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client