mcpField
S
Slack MCP Server

Slack MCP Server

本地服务
github.com/SergioKingOne通信协作173 周前更新

关于 Slack MCP Server

Slack MCP Server 让 LLM 搜索、读取和管理工作区内容。它结合操作工具、工作区资源和面向常见团队流程的提示词。

主要功能

  1. 01浏览频道及频道详情
  2. 02读取消息和讨论串
  3. 03搜索工作区消息
  4. 04列出用户和共享文件
  5. 05添加或移除消息表情回应
  6. 06工作区资源与流程提示词

适用场景

  1. 01查找特定主题的讨论
  2. 02查看近期频道动态
  3. 03汇总每日站会信息
  4. 04查询工作区成员或频道

MCP 相关

向 MCP 客户端提供 Slack 工作区工具,可操作频道、消息、用户、文件和表情回应,并提供工作区资源与流程提示词。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"slack-mcp-server-sergiokingone": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
启动命令npx -y @modelcontextprotocol/inspector

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@modelcontextprotocol/inspector

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Slack MCP 服务

一个全面的模型上下文协议(MCP)服务,可让大模型与 Slack 工作区交互。此服务提供搜索、读取和管理 Slack 内容的工具,以及用于获取工作区信息的资源和适用于常见工作流的提示词。

功能

🛠️ 工具(11 个)
  • 频道管理
    • slack_list_channels - 浏览公开和私密频道
    • slack_get_channel_info - 获取详细的频道信息
    • slack_list_bookmarks - 列出频道中的书签
  • 消息操作
    • slack_list_messages - 读取频道和讨论串中的消息
    • slack_list_threads - 查找讨论串
    • slack_search_messages - 搜索整个工作区
  • 用户管理
    • slack_get_user_info - 获取详细的用户信息
    • slack_list_users - 列出工作区用户
  • 内容与回应
    • slack_list_files - 浏览共享文件
    • slack_add_reaction - 添加表情回应
    • slack_remove_reaction - 移除表情回应
📚 资源(4 个)
  • slack://workspace - 工作区信息
  • slack://me - 当前机器人用户信息
  • slack://users - 完整的用户目录
  • slack://channels - 所有可访问的频道
💡 提示词(5 个)
  • find_recent_discussions - 搜索有关特定主题的讨论
  • channel_activity_summary - 总结频道活动
  • team_member_activity - 查看团队成员的参与情况
  • daily_standup_helper - 收集每日站会信息
  • knowledge_search - 查找机构知识

快速开始

1. 创建 Slack 应用
  1. 前往 api.slack.com/apps,然后点击“Create New App”
  2. 选择“From scratch”,并为应用命名
  3. 选择要安装应用的工作区
2. 配置 OAuth 权限范围

在应用设置中,前往“OAuth & Permissions”,并添加以下机器人令牌权限范围:

必要权限范围:

  • channels:read - 查看频道基本信息
  • channels:history - 查看公开频道中的消息
  • groups:read - 查看私密频道的基本信息
  • groups:history - 查看私密频道中的消息
  • users:read - 查看工作区中的人员
  • users:read.email - 查看电子邮件地址
  • team:read - 查看工作区信息

实现完整功能所需的其他权限范围:

  • im:read - 查看私信
  • im:history - 查看私信中的消息
  • mpim:read - 查看群组私信
  • mpim:history - 查看群组私信中的消息
  • search:read - 搜索消息
  • files:read - 查看文件
  • reactions:read - 查看表情回应
  • reactions:write - 添加和移除回应
  • bookmarks:read - 查看书签
3. 安装应用
  1. 在“OAuth & Permissions”中,点击“Install to Workspace”
  2. 复制“Bot User OAuth Token”(以 xoxb- 开头)
4. 配置 Claude Desktop

将以下内容添加到 Claude Desktop 配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@sergdev1/slack-mcp-server"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567"
      }
    }
  }
}

使用示例

使用工具
"Search for messages about the deployment"
"List all channels I have access to"
"Show me threads in #engineering from the last week"
"Get information about user U1234567890"
"Add a thumbsup reaction to message 1234567890.123456 in channel C1234567890"
使用资源

资源可帮助快速访问常用信息:

"Check the workspace resource for company info"
"Look at the users resource to see all team members"
"Review the channels resource for a complete channel list"
使用提示词

提示词可为常见任务提供引导式工作流:

"Use the find_recent_discussions prompt to search for budget talks"
"Run the channel_activity_summary for #general and #random"
"Execute daily_standup_helper for the #engineering channel"
"Use knowledge_search to find our deployment process"

详细 API 参考

工具
slack_list_channels

列出 Slack 工作区中的频道。

参数:

  • exclude_archived(布尔值,可选):排除已归档的频道(默认值:true)
  • types(字符串,可选):频道类型(默认值:"public_channel,private_channel")
  • limit(数字,可选):要返回的频道数量上限(默认值:100)
  • cursor(字符串,可选):分页游标
slack_search_messages

搜索工作区中的消息。

参数:

  • query(字符串,必填):包含 Slack 修饰符的搜索查询
  • count(数字,可选):每页结果数(默认值:20)
  • page(数字,可选):页码(默认值:1)
  • highlight(布尔值,可选):是否高亮匹配项(默认值:true)
  • sort(字符串,可选):按 'score' 或 'timestamp' 排序(默认值:'score')
  • sort_dir(字符串,可选):排序方向,'asc' 或 'desc'(默认值:'desc')

搜索修饰符:

  • from:@username - 来自特定用户的消息
  • in:#channel - 特定频道中的消息
  • after:2024-01-01 - 日期之后的消息
  • before:2024-12-31 - 日期之前的消息
  • has:link - 包含链接的消息
  • has:file - 包含文件的消息
slack_add_reaction / slack_remove_reaction

管理消息上的表情符号回应。

参数:

  • channel(字符串,必填):频道 ID
  • timestamp(字符串,必填):消息时间戳
  • name(字符串,必填):不带冒号的表情符号名称(例如,'thumbsup')
资源

通过 URI 访问资源,并返回 JSON 数据:

  • slack://workspace:返回工作区 ID、名称、域名和企业信息
  • slack://me:返回机器人用户 ID、名称和身份验证详情
  • slack://users:返回所有活跃用户及其个人资料
  • slack://channels:返回所有可访问频道及其元数据
提示词

每个提示词都接受参数,并为大模型返回结构化消息:

find_recent_discussions
  • topic(字符串,必填):要搜索的主题
  • days(字符串,可选):回溯天数(默认值:"7")
channel_activity_summary
  • channel_names(字符串,必填):以逗号分隔的频道名称
  • hours(字符串,可选):要分析的小时数(默认值:"24")

高级配置

环境变量
  • SLACK_BOT_TOKEN(必填):你的 Slack 机器人令牌
  • SLACK_TEAM_ID(可选):用于团队信息的工作区 ID
安全最佳实践
  1. 令牌安全

    • 切勿将令牌提交到版本控制系统
    • 使用环境变量存储敏感数据
    • 定期轮换令牌
  2. 频道访问权限

    • 必须将机器人邀请到私有频道:/invite @your-bot-name
    • 私信需要用户明确授权
  3. 速率限制

    • 遵守 Slack 的速率限制
    • 对重试实施指数退避
    • 缓存频繁访问的数据

开发

项目结构
slack-mcp-server/
├── src/
│   ├── index.ts       # Main server entry point
│   ├── slack-client.ts # Slack API client wrapper
│   ├── tools.ts       # Tool implementations
│   ├── resources.ts   # Resource handlers
│   ├── prompts.ts     # Prompt definitions
│   └── types.ts       # TypeScript interfaces
├── package.json
├── tsconfig.json
└── README.md
从源代码构建
# Clone the repository
git clone https://github.com/sergdev1/slack-mcp-server.git
cd slack-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev
测试
# Set your Slack token
export SLACK_BOT_TOKEN="xoxb-your-bot-token"
export SLACK_TEAM_ID="T01234567"  # Optional

# Run the server
npm test

# Use MCP Inspector for testing
npx @modelcontextprotocol/inspector
扩展服务

添加新工具:

  1. 在 tools.ts 中定义架构
  2. 实现处理函数
  3. 使用 server.tool() 注册

添加新资源:

  1. 在 resources.ts 中定义处理函数
  2. 使用 server.resource() 注册

添加新提示词:

  1. 在 prompts.ts 中定义模板
  2. 使用 server.prompt() 注册

故障排除

常见问题
“channel_not_found” 错误
  • 确保机器人是该频道的成员
  • 确认使用的是频道 ID,而不是名称
  • 确认频道未被归档
“missing_scope” 错误
  • 为你的应用添加所需的 OAuth 权限范围
  • 将应用重新安装到工作区
  • 某些权限范围需要管理员批准
未返回消息
  • 确认机器人具有对应频道类型的历史记录权限范围
  • 检查时间范围参数
  • 确保指定范围内的频道有消息
搜索无法使用
  • 需要 search:read 权限范围
  • 搜索索引可能会有延迟
  • 检查查询语法是否有效
调试模式

通过设置以下内容启用调试日志:

DEBUG=slack-mcp-server npm run dev

贡献

欢迎贡献!请:

  1. Fork 此仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add amazing feature')
  4. 推送到该分支(git push origin feature/amazing-feature)
  5. 创建 Pull Request
代码风格
  • 使用 TypeScript 确保类型安全
  • 遵循现有代码模式
  • 为公共 API 添加 JSDoc 注释
  • 为新功能编写测试

许可证

MIT 许可证 - 详情请参阅 LICENSE 文件

致谢

更新日志

v2.0.0
  • 新增 8 个工具(搜索、用户、文件、回应)
  • 新增 4 个资源,便于快速访问数据
  • 新增 5 个适用于常见工作流的提示词
  • 改进错误处理和验证
  • 改进 TypeScript 类型
  • 模块化代码架构
v1.0.0
  • 首次发布
  • 基础频道、消息和线程工具

为 MCP 社区倾心打造 ❤️

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。