基于 LangChain + DeepSeek + FastMCP 的智能聊天机器人,支持日程管理、AI 图像生成和天气查询等功能。





# 安装主应用依赖
pip install -r requirements.txt
# 安装 MCP 服务依赖
cd mcp_weather_service
pip install -r requirements.txt
cd ..
必需配置:
DeepSeek API 密钥(用于 AI 对话)
创建 .env 文件,填写:
DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxx
高德地图 API 密钥(用于天气查询功能)
编辑 mcp_weather_service/fastmcp_server.py 修改第 17 行:
AMAP_API_KEY = "your_amap_api_key_here"
千问 API 密钥(用于 AI 图像生成)
编辑 config.json 填写:
{
"tongyi": {
"api_key": "sk-xxxxxxxxxxxxx",
...
}
}
无需配置:
终端 1 - 启动 MCP 天气服务:
cd mcp_weather_service
python fastmcp_server.py --sse
终端 2 - 启动主应用:
python app.py
终端 3 - 打开前端:
双击 index.html 文件,或在浏览器中打开(CTRL+O)。
尝试这些命令:
┌─────────────────────────────────────────────────────────────┐
│ 前端 (index.html) │
│ 用户界面 + 交互 + 卡片展示 │
└────────────────────────┬────────────────────────────────────┘
│ HTTP/AJAX
▼
┌─────────────────────────────────────────────────────────────┐
│ 主应用服务 (app.py:5000) │
│ Flask + LangChain + DeepSeek │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ 日程工具 │ │ 画图工具 │ │ 天气工具 │ │
│ │ (本地) │ │ (千问API) │ │ (MCP调用) │ │
│ └────────────┘ └────────────┘ └──────┬─────┘ │
└───────────────────────────────────────────┼─────────────────┘
│ MCP 协议 (SSE)
▼
┌──────────────────────────────────┐
│ MCP 客户端 (mcp_client.py) │
│ 封装 MCP SSE 通信 │
└──────────────┬───────────────────┘
│ SSE 长连接
▼
┌──────────────────────────────────┐
│ MCP 天气服务 (fastm[...]
特性:
cursor-web-project/
├── app.py # 主应用服务(Flask + LangChain Agent)
├── mcp_client.py # MCP 客户端(SSE 长连接)
├── index.html # 前端页面
├── requirements.txt # 主应用依赖
├── config.json # 画图配置(千问 API)
├── .env # 环境变量(DeepSeek API Key)
│
├── mcp_weather_service/ # MCP 天气服务目录
│ ├── fastmcp_server.py # FastMCP 服务器(SSE 模式)
│ └── requirements.txt # MCP 服务依赖
│
└── generated_images/ # AI 生成的图片存储目录
| 服务 | 端口 | 描述 |
|---|---|---|
| 主应用(Flask) | 5000 | AI 代理 + API 接口 |
| MCP 天气服务 | 8001 | FastMCP 服务器(SSE 模式) |
日程查询:
查询技术部的员工日程
查询全体员工的工作安排
AI 绘画:
画一个大黄蜂机器人
生成一个赛博朋克风格的未来城市
天气查询:
北京天气
上海今天天气怎么样
查询广州未来3天的天气
普通对话:
帮我写一段 Python 代码
解释一下什么是 MCP 协议