Slack MCP主机
Slack机器人将MCP(机器控制协议)服务器与Slack集成在一起,在专用通道中提供LLM驱动的交互。机器人可以从配置的MCP服务器执行工具,并以用户友好的格式呈现结果。
特性
- 🤖 Slack中LLM驱动的对话
- 🔧 与多个MCP服务器集成
- 📝 Markdown渲染支持
- 🔍 可折叠工具执行结果
- 💾 对话历史维护
- 🔐 安全配置管理
先决条件
- Python 3.11+
- 紫外线 用于依赖关系管理
- 具有管理员权限的Slack工作区
- OpenAI API访问
- 一个或多个MCP服务器
设置
- 克隆存储库
git clone https://github.com/yourusername/slack-mcp-host.git
cd slack-mcp-host- 创建并激活虚拟环境
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- 安装依赖项
uv sync- 配置环境
cp .env.example .env编辑 .env 使用您的凭据:
SLACK_API_KEY=xoxb-your-slack-bot-token
OPENAI_API_KEY=your-openai-api-key
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4
# MCP Servers
SLACK_MCP_NEO4J_MOVIES=uvx mcp-neo4j-cypher --url neo4j+s://demo.neo4jlabs.com --username movies --password movies
SLACK_MCP_TIME=uvx mcp-server-time- 创建Slack应用程序
- 首选 api.slack.com/apps
- 点击“创建新应用”→ “来自应用程序清单”
- 选择您的工作区
- 复制并粘贴以下内容
manifest.yml - 创建应用程序并将其安装到您的工作区
部署
Cloudflare员工
- 安装牧马人
npm install -g wrangler- 登录Cloudflare
wrangler login- 设置秘密
wrangler secret put SLACK_API_KEY
wrangler secret put OPENAI_API_KEY- 部署
wrangler deploy- 更新Slack应用程序配置
- 转到您的Slack应用程序设置
- 将事件订阅URL更新为Cloudflare Workers URL:
https://slack-mcp-host..workers.dev/slack/events
用法示例
以下是一个交互流程示例:
- 用户开始对话
User: Can you help me find movies directed by Christopher Nolan?- Bot以工具执行作为响应
Bot: I'll help you find movies directed by Christopher Nolan using the Neo4j Movies database.
Tool Results
Tool neo4j_movies result:
- Inception (2010)
- The Dark Knight (2008)
- Interstellar (2014)
- Memento (2000)
- The Prestige (2006)
Would you like to know more details about any of these movies?- 用户跟进
User: Tell me more about Inception- Bot执行另一个查询
Bot: I'll get the details about Inception for you.
Tool Results
Tool neo4j_movies result:
Title: Inception (2010)
Director: Christopher Nolan
Cast: Leonardo DiCaprio, Joseph Gordon-Levitt, Ellen Page
Plot: A thief who steals corporate secrets through dream-sharing technology is given the inverse task of planting an idea into the mind of a C.E.O.
The movie received critical acclaim for its innovative storytelling and visual effects. Would you like to know about any other movies or specific aspects of Inception?发展
为了在当地发展:
uvicorn src.api:app --reload --port 8000使用 ngrok 或类似于暴露您的本地服务器:
ngrok http 8000使用ngrok URL更新Slack应用程序的事件订阅URL。
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
