一个基于Electron和MCP (Model Context Protocol) 的聊天应用,集成了Ollama和天气服务。
- 🤖 集成Ollama本地AI模型 (使用qwen2.5:0.5b)
- 🌤️ 内置天气查询功能
- 💬 美观简约的聊天界面
- 🔌 支持MCP协议的工具扩展
- Node.js (v16或更高版本)
- Python 3.7+
- Ollama (已安装并运行在localhost:11434)
- qwen2.5:0.5b模型 (已通过Ollama安装)
- 克隆或下载此项目
- 安装Node.js依赖:
npm install
- 确保Ollama已安装并运行:
# 检查Ollama状态 ollama list - 安装qwen2.5:0.5b模型 (如果尚未安装):
ollama pull qwen2.5:0.5b
Windows用户:
start.batLinux/macOS用户:
chmod +x start.sh
./start.sh-
启动Python天气服务器:
cd python-server python weather_server.py -
在新终端中启动Electron应用:
npm start
npm run dev- 启动应用后,您可以在聊天界面中与AI助手对话
- 直接询问天气信息,例如:"北京今天的天气怎么样?"
- 应用会自动识别天气查询并调用天气服务
mcp-host-chat/
├── main.js # Electron主进程
├── preload.js # 预加载脚本
├── package.json # 项目配置和依赖
├── src/
│ ├── main/ # 主进程代码
│ │ ├── mcp-ollama-client.js # Ollama客户端
│ │ └── mcp-host-manager.js # MCP主机管理器
│ └── renderer/ # 渲染进程代码
│ ├── index.html # 主页面
│ ├── styles.css # 样式文件
│ └── app.js # 前端逻辑
└── python-server/ # Python MCP服务器
├── weather_server.py # 天气服务实现
└── requirements.txt # Python依赖
项目包含一个Python实现的MCP天气服务器,提供以下功能:
- 获取指定城市的天气信息
- 支持多个主要城市的天气查询
- 提供温度、湿度、风速等详细信息
天气服务器会在需要时自动启动,无需手动运行。
- 在
python-server目录下创建新的服务器文件 - 实现MCP协议接口
- 在
mcp-host-manager.js中注册新服务
在main.js中修改模型名称:
mcpOllamaClient = new MCPOllamaClient('http://localhost:11434', 'your-model-name');- 确保Ollama服务正在运行
- 检查端口11434是否可用
- 确认qwen2.5:0.5b模型已安装
- 确保Python 3.7+已安装
- 检查防火墙设置
- 查看控制台错误信息
MIT License