MCP简易Slack机器人
一个使用模型上下文协议(MCP)增强其外部工具功能的简单Slack机器人。
功能

- AI驱动助手:使用LLM能力响应频道和私信中的消息
- MCP集成:完全访问SQLite数据库和网页抓取等MCP工具
- 多LLM支持:兼容OpenAI、Groq和Anthropic模型
- 应用主页标签:展示可用工具和使用信息
安装
1. 创建Slack应用
- 访问api.slack.com/apps并点击"创建新应用"
- 选择"从应用清单创建"并选择您的Workspace
- 将
mcp_simple_slackbot/manifest.yaml的内容复制到清单编辑器 - 创建应用并将其安装到您的Workspace
- 在"基本信息"部分,向下滚动到"应用级令牌"
- 点击"生成令牌和权限范围"并:
- 输入名称如"mcp-assistant"
- 添加
connections:write权限范围 - 点击"生成"
- 记录您的:
- 机器人令牌(
xoxb-...)位于"OAuth & Permissions" - 应用令牌(
xapp-...)刚刚生成的令牌
- 机器人令牌(
2. 安装依赖
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
source venv/bin/activate # 在Windows上:venv\Scripts\activate
# 安装项目依赖
pip install -r mcp_simple_slackbot/requirements.txt
3. 配置环境变量
在mcp_simple_slackbot目录中创建.env文件(参考.env.example模板):
# Slack API凭证
SLACK_BOT_TOKEN=xoxb-your-token
SLACK_APP_TOKEN=xapp-your-token
# LLM API凭证
OPENAI_API_KEY=sk-your-openai-key
# 或使用GROQ_API_KEY或ANTHROPIC_API_KEY
# LLM配置
LLM_MODEL=gpt-4-turbo
运行机器人
# 导航到模块目录
cd mcp_simple_slackbot
# 直接运行机器人
python main.py
机器人将:
- 连接到所有配置的MCP服务器
- 发现可用工具
- 以Socket模式启动Slack应用
- 监听提及和私信
使用方法
- 私信:向机器人发送私信
- 频道提及:在频道中提及机器人
@MCP Assistant - 应用主页:访问机器人的应用主页查看可用工具
架构
机器人采用专注型架构:
- SlackMCPBot:管理Slack事件和消息处理的核心理类
- LLMClient:处理与LLM API(OpenAI、Groq、Anthropic)的通信
- Server:管理与MCP服务器的通信
- Tool:代表来自MCP服务器的可用工具
当收到消息时,机器人将:
- 将消息发送给LLM,并附带可用工具
- 如果LLM响应包含工具调用,则执行该工具
- 将结果返回给LLM进行解析
- 将最终响应交付给用户
致谢
本项目基于MCP简易聊天机器人示例。
许可证
MIT许可证