本篇分享:用 Python + Flask 做后端,用 Slack 做前端交互,调用 OpenAI API,构建一个真正能派上用场的 MCP bot(Model-Connected Process bot)。它不唠嗑,它帮你干活。
🧩 系统架构
上图就是交互路径,所有请求都从 Slack 出发,然后打通模型、业务逻辑、内部服务。
Flask 是整个 glue code 的核心,Slack 是用户接口,GPT 是大脑,中间业务 API 则是肌肉。
🧪 Flask Server 核心代码
用 Flask 写一个 webhook 接口,Slack 的 slash command 会打到这里:
ini
from flask import Flask, request, jsonify
import openai
import os
import requests
app = Flask(__name__)
openai.api_key = os.getenv("OPENAI_API_KEY")
@app.route('/slack/command', methods=['POST'])
def handle_command():
user_input = request.form.get('text')
user_id = request.form.get('user_id')
# 调用业务逻辑,生成 prompt
prompt = f"你是一个企业助理,现在请根据以下指令生成内容:{user_input}"
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
result = response.choices[0].message['content']
# 回传给 Slack
return jsonify({
"response_type": "in_channel",
"text": f"<@{user_id}> 的请求结果如下:\n{result}"
})
if __name__ == '__main__':
app.run(port=5001)
几行代码就把一个"能干活"的 bot 原型跑起来了。再把这个核心 prompt 设计得足够靠谱 ------ 它是整个 MCP 系统的灵魂。
⚙️ Slack 侧配置
来到 Slack App 中创建一个 Slash Command,比如 /mcp
,设置 Request URL 为你的服务器地址,例如 https://yourdomain.com/slack/command
。
权限方面要添加 commands
和 chat:write
,然后生成 bot token,加到你代码里作为 Authorization
头或者环境变量。
别忘了验证请求来自 Slack,可以加上签名校验逻辑来防止恶意调用。
🧠 模型不只是聊天,它是控制中枢
重申:我们不是在做聊天机器人,我们是在构建一个可以理解语义、调动资源、完成任务的自动化大脑。
比如,我们的 HR MCP bot 接到"生成 HR 周报"的请求后,会自动:
- 抓取上周的 KPI 数据 📊
- 聚合日报系统内容 🧾
- 模板化输出,写好开头结尾 📃
- 发给 HRBP 甚至同步上 Slack 📬
一整套链路,完全自动,一小时变 10 秒。
🔚 结语:模型很强,流程更关键
大模型能力强毋庸置疑,但想让它真为业务赋能,就得设计好"怎么用"。流程是它的舞台,数据是它的燃料,MCP 就是那个连起来的神经网络。
Slack + Flask + OpenAI API 是经验证下来顺手的一套组合 ------ 简洁、快速、强大,完美适合小团队、创新场景。
📣 如果你也在做 AI 产品,或者想尝试 MCP 方向的落地,可以从这个小 bot 开始。