Slack MCP 机器人

一个将MCP(机器控制协议)服务器与Slack集成的机器人,提供LLM驱动的交互功能,支持在专用频道中执行工具并展示结果。

  • by jexp
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 jexp/slack-mcp-host

使用说明

Slack MCP主机

Slack机器人将MCP(机器控制协议)服务器与Slack集成在一起,在专用通道中提供LLM驱动的交互。机器人可以从配置的MCP服务器执行工具,并以用户友好的格式呈现结果。

特性

  • 🤖 Slack中LLM驱动的对话
  • 🔧 与多个MCP服务器集成
  • 📝 Markdown渲染支持
  • 🔍 可折叠工具执行结果
  • 💾 对话历史维护
  • 🔐 安全配置管理

先决条件

  • Python 3.11+
  • 紫外线 用于依赖关系管理
  • 具有管理员权限的Slack工作区
  • OpenAI API访问
  • 一个或多个MCP服务器

设置

  1. 克隆存储库
git clone https://github.com/yourusername/slack-mcp-host.git
cd slack-mcp-host
  1. 创建并激活虚拟环境
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 安装依赖项
uv sync
  1. 配置环境
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
  1. 创建Slack应用程序
  • 首选 api.slack.com/apps
  • 点击“创建新应用”→ “来自应用程序清单”
  • 选择您的工作区
  • 复制并粘贴以下内容 manifest.yml
  • 创建应用程序并将其安装到您的工作区

部署

Cloudflare员工

  1. 安装牧马人
npm install -g wrangler
  1. 登录Cloudflare
wrangler login
  1. 设置秘密
wrangler secret put SLACK_API_KEY
wrangler secret put OPENAI_API_KEY
  1. 部署
wrangler deploy
  1. 更新Slack应用程序配置
  • 转到您的Slack应用程序设置
  • 将事件订阅URL更新为Cloudflare Workers URL: https://slack-mcp-host.<your-worker-subdomain>.workers.dev/slack/events

用法示例

以下是一个交互流程示例:

  1. 用户开始对话
User: Can you help me find movies directed by Christopher Nolan?
  1. Bot以工具执行作为响应
Bot: I'll help you find movies directed by Christopher Nolan using the Neo4j Movies database.

<details><summary>Tool Results</summary>
Tool neo4j_movies result:
- Inception (2010)
- The Dark Knight (2008)
- Interstellar (2014)
- Memento (2000)
- The Prestige (2006)
</details>

Would you like to know more details about any of these movies?
  1. 用户跟进
User: Tell me more about Inception
  1. Bot执行另一个查询
Bot: I'll get the details about Inception for you.

<details><summary>Tool Results</summary>
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.
</details>

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。

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。