使用说明
Slack MCP服务器
使用fastMCP构建的专用模型上下文协议(MCP)服务器,提供智能Slack与人工智能驱动的自然语言搜索功能的集成。
特性
Slack集成工具
- slack_list_channels:列出所有可访问的Slack频道
- slack_get_channel_消息:从特定频道获取最新消息
- slack_search_消息:跨渠道搜索消息(使用回退实现)
- slack_smart_search: 🧠 基于人工智能的自然语言搜索,具有智能查询理解功能
- slack_get_user_info:获取Slack用户的信息
- slack_send_message:向Slack频道发送消息
开发工具
- ping测试:连接测试工具(仅限开发服务器)
资源
- slack://channels:将所有可访问的Slack频道作为资源列出
- slack://status:将Slack连接状态作为资源进行检查
安装
此项目使用 紫外线 用于依赖性管理。
-
克隆存储库:
git clone <your-repo-url> cd slack-mcp-server -
安装依赖项:
uv sync -
安装MCP CLI工具(用于开发):
uv add "mcp[cli]" -
安装MCP检查器(用于测试):
npm install -g @modelcontextprotocol/inspector -
设置环境变量:
# Required for Slack integration export SLACK_BOT_TOKEN=xoxb-your-slack-bot-token-here export SLACK_APP_TOKEN=xapp-your-slack-app-token-here # Optional for enhanced AI features export OPENAI_API_KEY=your-openai-api-key-here
用法
生产服务器
使用fastMCP运行生产服务器:
uv run python main.py
带MCP检查器的开发服务器
对于开发和测试,请使用开发服务器(main_dev.py)与MCP检查员:
快速设置(推荐)
使用提供的设置脚本进行自动配置:
# Run the setup script (creates wrapper and starts inspector)
./setup_inspector.sh
此脚本将:
- 在中创建包装器脚本
~/bin/mcp-server-everything - 自动启动MCP检查器
- 提供用于连接的检查器URL
手动设置
如果您更喜欢手动设置:
-
设置环境变量:
export SLACK_BOT_TOKEN=xoxb-your-token-here export SLACK_APP_TOKEN=xapp-your-app-token-here export OPENAI_API_KEY=your-openai-key-here # Optional -
启动开发服务器:
uv run python main_dev.py -
在单独的终端中,启动MCP检查器:
npx @modelcontextprotocol/inspector -
连接到服务器:
- 使用检查器提供的URL(包括会话令牌)
- 对于当地发展,通常:
http://localhost:3000
连接到服务器
服务器实现MCP协议,可以通过任何兼容MCP的客户端连接。服务器将处理:
- 工具发现和执行
- 资源访问
- 正确的错误处理和响应
例子
通过MCP客户端连接后,您可以使用Slack工具:
-
基本松弛操作 (需要SLACK_BOT_TOKEN):
- 列出频道:
slack_list_channels() - 获取消息:
slack_get_channel_messages("C1234567890", limit=20) - 搜索邮件:
slack_search_messages("deployment", channel_id="C1234567890") - 获取用户信息:
slack_get_user_info("U1234567890") - 发送消息:
slack_send_message("C1234567890", "Hello from MCP!")
- 列出频道:
-
🧠 AI驱动的智能搜索 (通过OPENAI_API_KEY增强):
- 自然语言搜索:
slack_smart_search("Show me discussions about deployment from last week") - 以用户为中心的搜索:
slack_smart_search("What did John say about the API changes?") - 主题分析:
slack_smart_search("Find decisions made about the mobile app") - 情感搜索:
slack_smart_search("Show me concerns people raised about performance")
- 自然语言搜索:
资源
- slack://channels:将所有可访问的Slack频道作为资源列出
- slack://status:将Slack连接状态作为资源进行检查
Slack集成设置
第一步:创建Slack Bot
-
点击“创建新应用”→ “从头开始”
-
为您的应用命名并选择工作区
-
转到侧栏中的“OAuth和权限”
-
添加以下内容 Bot令牌范围:
channels:read(列出频道)channels:history(读取频道消息)groups:read(列出私人频道)groups:history(阅读私人频道消息)chat:write(发送消息)users:read(获取用户信息)app_mentions:read(接受提及)im:history(阅读直接消息)mpim:history(阅读群组私信)
备注:
search:read范围可能不适用于所有应用程序。该服务器包含一个回退搜索实现,可以在没有此作用域的情况下工作。
步骤2:安装Bot
- 点击“安装到工作区”并授权应用程序
- 复制“Bot用户OAuth令牌”(以开头
xoxb-) - 设置环境变量:
export SLACK_BOT_TOKEN=xoxb-your-token-here
步骤3:邀请Bot加入频道
邀请您的机器人加入您希望它访问的频道:
/invite @your-bot-name
步骤4:测试集成
启动服务器,Slack工具将可用。服务器将显示启动时是否启用了Slack集成。
AI功能
智能搜索功能有两种模式:
增强模式(使用OpenAI API密钥)
- 高级自然语言查询理解
- 智能结果汇总
- 更好地处理同义词和上下文
- 智能提取时间、用户和内容过滤器
回退模式(无OpenAI API密钥)
- 基于语义相似性的基本关键字搜索
- 基于规则的时间/用户过滤器查询解析
- 简单的结果计数
要启用增强模式,请设置OpenAI API密钥:
export OPENAI_API_KEY=your-openai-api-key-here
安全
- 所有Slack工具都会验证输入并优雅地处理异常
- Slack集成需要使用适当的作用域设置适当的OAuth令牌
- Slack API调用是有费率限制的,包括全面的错误处理
- AI搜索功能尊重Slack权限和频道访问
- 机器人令牌通过环境变量进行安全管理
- 不存储或记录敏感数据
发展
要扩展此以Slack为中心的服务器,请执行以下操作:
- 使用添加新的Slack工具
@mcp.tool()装饰器 - 使用添加新的Slack资源
@mcp.resource()装饰器 - 增强AI搜索功能
ai_search.py - 确保正确的错误处理和类型提示
- 使用MCP客户端或MCP检查器进行测试
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 使用真实的Slack数据进行彻底测试
- 提交拉取请求
许可证
MIT许可证