Slack集成服务器

一个生产就绪的模型上下文协议(MCP)服务器,用于全面的Slack集成,使AI助手能够通过标准化、安全的工具与Slack工作区无缝交互。

  • by atarukun
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 atarukun/slack-mcp

使用说明

Slack MCP服务器

A. 生产准备就绪 用于全面集成Slack的模型上下文协议(MCP)服务器。使AI助手能够通过标准化、安全的工具与Slack工作区无缝交互。

🚀 快速开始

Warp.dev用户

  1. 构建Docker镜像:

    git clone https://github.com/atarukun/slack-mcp.git
    cd slack-mcp
    docker build -t slack-mcp:latest .
    
  2. 在扭曲中配置:

    {
      "slack-mcp": {
        "command": "docker",
        "args": [
          "run", "--rm", "-i",
          "-e", "SLACK_BOT_TOKEN=xoxb-your-actual-slack-bot-token",
          "slack-mcp:latest"
        ],
        "env": {},
        "working_directory": null,
        "start_on_launch": true
      }
    }
    
  3. 获取您的Slack机器人令牌 从https://api.slack.com/apps

  4. 开始使用Slack工具 在Warp!

适用于Claude桌面用户

看 配置指南.md 有关详细的设置说明。

✨ 特性

🔐 身份验证和安全

  • 通过环境变量进行安全的机器人令牌处理
  • 自动令牌验证和格式检查
  • 速率限制合规性(最小间隔1秒)
  • 支持Bot(xoxb-)和用户(xoxp-)代币

💬 消息传递工具

  • send_message:向频道、用户或线程发送消息
  • 带Slack块和附件的富文本格式
  • 线程回复支持 thread_ts 参数
  • 多通道消息广播

🏢 工作区发现

  • list_channels:分类频道列表,格式美观
  • get_channel_info:详细的渠道信息和统计数据
  • 支持公共、私人和存档渠道
  • 成员数量和渠道元数据

👥 用户管理

  • get_user_info:全面的用户资料信息
  • 显示名称、标题、状态消息和时区数据
  • 管理员和机器人帐户检测
  • 基于电子邮件的用户查找

🔌 连接与测试

  • test_slack_connection:全面的连接测试
  • 工作区信息显示(名称、域、品牌)
  • API配置详细信息和诊断
  • set_slack_token:运行时令牌配置

🏗️ 建筑

Docker第一设计

  • 针对开发和生产进行了优化的多级Dockerfile
  • Python 3.12完全支持异步
  • uv 包管理器,用于快速、可靠的依赖关系管理
  • 非root用户执行以确保安全
  • 内置健康检查和监测

MCP协议实现

  • FastMCP框架 用于自动刀具注册
  • STDIO传输 实现最大的客户端兼容性
  • 异步操作 通过适当的错误处理
  • 类型安全 具有完整的Pydantic验证
  • 速率限制 内置于所有API操作中

📊 当前状态

版本:1.4.1(文件操作已删除)
已完成的阶段:第6页,共13页
可用工具:29个生产就绪的MCP工具 测试:已通过ILDM工作区验证

可用工具

核心工具(第1-3阶段)

  1. set_slack_token -配置身份验证
  2. test_slack_connection -验证连接和工作区信息
  3. send_message -向频道/用户发送格式化消息
  4. get_channel_info -获取详细的频道信息
  5. list_channels -通过分类探索工作空间频道
  6. get_user_info -检索全面的用户资料

扩展消息传递工具(第4阶段)

  1. update_message -编辑/更新现有消息
  2. delete_message -从频道中删除消息
  3. pin_message -将重要信息固定到频道
  4. unpin_message -取消订阅来自频道的消息
  5. get_message_permalink -生成可共享的消息链接
  6. schedule_message -安排邮件以备将来发送
  7. get_thread_replies -检索并显示线程对话
  8. send_direct_message -向用户发送私人消息

渠道管理工具(第5阶段)

  1. create_channel -创建新的公共或私人频道
  2. archive_channel -存档渠道以保存历史
  3. set_channel_topic -设置或更新频道主题
  4. set_channel_purpose -设置频道目的/描述
  5. join_channel -加入公共频道
  6. leave_channel -离开频道
  7. invite_to_channel -邀请用户加入频道
  8. remove_from_channel -从频道中删除用户
  9. list_channel_members -列出频道的所有成员

用户管理工具(第6阶段)

  1. get_user_info -获取Slack用户的详细信息
  2. list_workspace_members -列出工作区中的所有成员(带分类)
  3. search_slack_users -按姓名、电子邮件或标题搜索用户
  4. get_user_presence -获取用户当前的在线状态(活动/离开)
  5. get_user_timezone -获取用户的时区信息
  6. get_user_conversations -列出用户所属的所有对话

📖 文档

🛠️ 发展

先决条件

  • Docker和Docker Compose
  • Python 3.12+(用于本地开发)
  • Slack Bot令牌来自https://api.slack.com/apps

地方发展

# Clone and setup
git clone https://github.com/atarukun/slack-mcp.git
cd slack-mcp

# Build development container
docker build --target development -t slack-mcp-dev .

# Run with development setup
docker-compose up --build

# Run tests
source .venv/bin/activate
python test_tools.py

生产部署

# Build production image
docker build --target production -t slack-mcp:latest .

# Run production container
docker run --rm -i \
  -e SLACK_BOT_TOKEN=xoxb-your-token \
  slack-mcp:latest

🤝 贡献

欢迎投稿!该项目遵循结构化的开发路线图:

  • 第1-3阶段: ✅ 核心实施(已完成)
  • 第4-5阶段: ✅ 扩展消息传递、渠道管理(已完成)
  • 第6阶段:使用基本工具进行用户管理(将更高级的用户管理完全移至第10阶段)
  • 第7-9阶段:搜索、交互元素和其他高级功能
  • 第10-13阶段:分析、工作流程、生产功能

看 ROADMAP.md 详细的开发阶段。

📄 许可证

MIT许可证 -看 许可证 文件以获取详细信息。

👨‍💻 作者

布伦农教堂 (atarukun@gmail.com )

🙏 致谢


⭐ 标记此存储库 如果你觉得它有用的话!
🐛 报告问题 在GitHub上
💡 建议功能 通过GitHub讨论