返回 MCP 目录
public公开dns本地运行

mcp-slack-agent-team

一个基于Slack的Claude Code远程控制和多智能体团队管理MCP服务器,支持通过Slack频道发送命令、接收结果、协调多智能体团队,并提供持久化状态、后台轮询、通用审批钩子等高级功能。

article

README

🚀 mcp-slack-agent-team

这是一个基于Slack的Claude Code远程控制及多智能体团队管理MCP服务器。可以在Slack频道中向Claude Code智能体发送命令、接收结果,并协调多智能体团队。

🚀 快速开始

# 1. 克隆项目并安装依赖
git clone https://github.com/berrzebb/mcp-slack-agent-team.git
cd mcp-slack-agent-team/mcp-servers/slack
npm install
npm run build

# 2. 进行连接测试
cp .env.example .env
# 在.env文件中输入SLACK_BOT_TOKEN和SLACK_DEFAULT_CHANNEL
npx tsx src/test.ts

注册到Claude Code

.claude/settings.json~/.claude.json 中进行如下配置:

{
  "mcpServers": {
    "slack": {
      "command": "node",
      "args": ["path/to/mcp-slack-agent-team/mcp-servers/slack/dist/wrapper.js"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_DEFAULT_CHANNEL": "C채널ID"
      }
    }
  }
}

✨ 主要特性

  • 远程控制:在Slack中输入命令,智能体执行并将结果以线程形式回复。
  • 命令循环:使用 slack_command_loop 完全替代聊天界面。
  • 非阻塞检查:通过 slack_command_loop(timeout=0)slack_team_wait(timeout=0) 避免在工作时错过Slack命令。
  • 多智能体团队:创建专用频道,设置角色名称和图标,支持广播和存档。
  • 智能体角色:提供12种命名角色(如Aria、Sage、Forge等),自动显示角色专属名称和表情符号。
  • @提及系统:使用角色名称、角色和成员ID进行@提及,提及信息会存入队列,等待接收者确认。
  • 反应命令:将Slack表情符号反应(✅❌🚀🔄🗑️❓)自动转换为命令。
  • 后台收集:每10秒自动轮询消息,防止在不调用工具的情况下丢失Slack消息。
  • 多进程安全:采用SQLite WAL、busy_timeout、轮询器DB列表和按团队单独存储。
  • 永久上下文管理:基于SQLite存储任务、决策和智能体上下文,压缩上下文后可立即恢复。
  • 热重载:使用 slack_reload 进行代码构建和服务器重启,通过 wrapper.js 保持与Claude Code的连接。
  • 通用审批钩子:支持Bash命令、MCP工具和权限请求,自动绕过安全命令。
  • 速率限制器:集中控制Slack API调用(令牌桶 + 429自动退避)。
  • 仪表盘:以可视化仪表盘展示团队进度、智能体状态和速率限制器指标。
  • 心跳监测:监测智能体存活状态,自动检测并通知无响应的智能体。
  • DM和定时消息:支持个人DM、定时发送和消息固定。
  • 收件箱搜索:使用FTS5全文搜索功能搜索收件箱消息。
  • 优雅关闭:在接收到SIGINT/SIGTERM信号时自动保存状态并发送Slack通知。
  • 文件传输:支持在Slack中下载和上传文件(如图像、文档、日志等)。
  • 长消息自动处理:自动分割发送或上传文件。
  • 成本报告:通过与ccusage集成,在Slack中报告Claude Code令牌和成本。
  • 会话恢复:在压缩或重启后自动恢复状态。

📦 安装指南

# 1. 克隆项目并安装依赖
git clone https://github.com/berrzebb/mcp-slack-agent-team.git
cd mcp-slack-agent-team/mcp-servers/slack
npm install
npm run build

# 2. 进行连接测试
cp .env.example .env
# 在.env文件中输入SLACK_BOT_TOKEN和SLACK_DEFAULT_CHANNEL
npx tsx src/test.ts

💻 使用示例

基础用法

# 克隆项目并安装依赖
git clone https://github.com/berrzebb/mcp-slack-agent-team.git
cd mcp-slack-agent-team/mcp-servers/slack
npm install
npm run build

# 进行连接测试并配置环境变量
cp .env.example .env
# 在.env文件中输入SLACK_BOT_TOKEN和SLACK_DEFAULT_CHANNEL
npx tsx src/test.ts

高级用法

{
  "mcpServers": {
    "slack": {
      "command": "node",
      "args": ["path/to/mcp-slack-agent-team/mcp-servers/slack/dist/wrapper.js"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_DEFAULT_CHANNEL": "C채널ID"
      }
    }
  }
}

📚 详细文档

项目结构

commands/                          # Claude Code斜杠命令
├── slack-loop.md                  #   /slack-loop — Slack命令等待循环
└── slack-team-resume.md           #   /slack-team-resume — 团队会话恢复

mcp-servers/slack/                 # Slack MCP服务器
├── src/
│   ├── index.ts                   #   入口点 (工具注册 + 服务器启动)
│   ├── wrapper.ts                 #   自动重启包装器 (支持热重载)
│   ├── background-poller.ts       #   后台消息收集器 (每10秒一次)
│   ├── types.ts                   #   接口、常量、类型定义 + 智能体角色
│   ├── db.ts                      #   SQLite初始化 + 数据访问助手
│   ├── state.ts                   #   基于SQLite的状态管理 + 团队注册表
│   ├── slack-client.ts            #   WebClient + sendSmart + 消息分割
│   ├── formatting.ts              #   消息格式 + 富格式实用工具
│   ├── rate-limiter.ts             #   集中式速率限制器 (令牌桶 + 自动退避)
│   ├── approval-hook.ts           #   通用Slack审批钩子 (Bash + 工具 + 权限)
│   ├── test.ts                    #   连接测试
│   ├── check.ts                   #   简单连接检查
│   └── tools/                     #   工具模块 (共55个)
│       ├── basic.ts               #     基本通信 + 反应管理 + 诊断 (11个)
│       ├── content.ts             #     代码/代码片段上传 (2个)
│       ├── loop.ts                #     命令循环 + 收件箱 + 反应命令 (3个)
│       ├── team.ts                #     团队管理 + 提及 + 通知集成 (14个)
│       ├── context.ts             #     团队上下文管理 + whoami (8个)
│       ├── approval.ts            #     审批请求 (1个)
│       ├── file.ts                #     文件下载/上传 (2个)
│       ├── state.ts               #     状态保存/恢复 + 成本报告 (3个)
│       └── dashboard.ts           #     仪表盘 + 心跳 + DM + 预约/权限 (11个)
├── package.json
├── tsconfig.json
└── .env.example

工作流程

用户 (Slack)             智能体 (Claude Code)
    │                            │
    ├─── 输入命令 ────────────→│  slack_command_loop
    │                            ├── 👀 确认接收
    │                            ├── 执行任务
    │                            ├── 发送结果 (线程)
    │←── 接收结果 ────────────┤  ✅ 完成
    ├─── 提供反馈 ──────────────→│  slack_wait_for_reply
    │                            └── 等待下一个命令

提供的工具 (55个)

| 类别 | 工具 | |----------|------| | 基本通信 + 反应 (11) | slack_send_message, slack_respond, slack_update_message, slack_read_messages, slack_reply_thread, slack_add_reaction, slack_remove_reaction, slack_list_channels, slack_get_thread, slack_reload, slack_inbox_status | | 内容 (2) | slack_upload_snippet, slack_send_code | | 命令循环 + 收件箱 (3) | slack_command_loop, slack_check_inbox, slack_wait_for_reply | | 团队管理 + 通知 (14) | slack_team_create, slack_team_register, slack_team_send, slack_team_read, slack_team_wait, slack_team_thread, slack_team_status, slack_team_broadcast, slack_team_report, slack_team_close, slack_mention_check, slack_check_all_notifications, slack_team_update_message, slack_team_delete_message | | 团队上下文 (8) | slack_team_assign_task, slack_team_update_task, slack_team_list_tasks, slack_team_save_context, slack_team_get_context, slack_team_log_decision, slack_team_decisions, slack_whoami | | 审批 (1) | slack_request_approval | | 文件 (2) | slack_download_file, slack_upload_file | | 状态 + 成本 (3) | slack_save_state, slack_load_state, slack_cost_report | | 仪表盘 + 运营 (11) | slack_progress_dashboard, slack_heartbeat, slack_heartbeat_status, slack_thread_summary, slack_search_inbox, slack_pin_message, slack_send_dm, slack_schedule_message, slack_team_request_permission, slack_list_permissions, slack_resolve_permission |

所需的Slack Bot Token权限范围

| 权限范围 | 用途 | |-------|------| | chat:write | 发送消息 | | chat:write.customize | 显示智能体角色专属名称和图标 | | channels:history | 读取频道消息 | | groups:history | 读取私有频道消息 | | reactions:write | 添加反应 | | reactions:read | 读取反应 (审批钩子) | | channels:read / groups:read | 查看频道列表 | | channels:manage | 创建/存档团队频道 | | channels:join | 自动加入频道 | | users:read | 自动检测机器人ID | | files:write | 上传文件 | | pins:write | 固定/解除固定消息 | | im:write | 发送DM(直接消息) |

详细设置指南:mcp-servers/slack/README.md

📄 许可证

本项目采用MIT许可证。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端