一个集成MCP(机器控制协议)服务器与Slack的机器人,提供在专用频道中的LLM驱动交互。该机器人可以从配置的MCP服务器执行工具,并以用户友好的格式展示结果。
git clone https://github.com/yourusername/slack-mcp-host.git
cd slack-mcp-host
uv venv
source .venv/bin/activate # 在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 服务器
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
manifest.yml的内容npm install -g wrangler
wrangler login
wrangler secret put SLACK_API_KEY
wrangler secret put OPENAI_API_KEY
wrangler deploy
https://slack-mcp-host.<your-worker-subdomain>.workers.dev/slack/events这是一个交互流程示例:
用户:你能帮我找到克里斯托弗·诺兰导演的电影吗?
机器人:我将使用Neo4j Movies数据库帮助您查找克里斯托弗·诺兰导演的电影。
<details><summary>工具结果</summary>
工具neo4j_movies结果:
- 盗梦空间 (2_010_)
- 黑暗骑士 (2_008_)
- 星际穿越 (2_014_)
- 记忆碎片 (2_000_)
- 奇迹 (2_006_)
</details>
您想了解更多关于这些电影中的哪一部?
用户:告诉我更多关于盗梦空间的信息。
机器人:我将为您获取关于《盗梦空间》的详细信息。
<details><summary>工具结果</summary>
工具neo4j_movies结果:
标题:盗梦空间 (2_010_)
导演:克里斯托弗·诺兰
演员:莱昂纳多·迪卡普里奥,约瑟夫·高登-莱维特,艾伦·佩吉
剧情:一名通过梦境共享技术窃取企业秘密的小偷被赋予了相反的任务,即将一个想法植入一位CEO的心中。
</details>
这部电影因其创新的故事讲述和视觉效果而受到好评。您还想了解其他电影还是《盗梦空间》的具体方面?
为了本地开发运行:
uvicorn src.api:app --reload --port 8000
使用ngrok或其他类似工具公开您的本地服务器:
ngrok http 8000
用ngrok URL更新您的Slack应用的事件订阅URL。
git checkout -b feature/amazing-feature)git commit -m '添加惊人的功能')git push origin feature/amazing-feature)本项目根据MIT许可证发布 - 查看LICENSE文件以获取详细信息。 </中文翻译>