从开发机到本地:MCP天气服务项目完整踩坑与部署指南
大家好,今天我想分享一下我把一个 MCP 架构的天气服务项目,从远程开发机完整迁移到本地 Windows 电脑并成功运行的全过程。这个过程中踩了不少坑,希望我的经验能帮到大家少走弯路。:这是 PowerShell 执行策略限制导致的,执行前面提到的策略调整命令即可。整个过程虽然踩了不少坑,但最终还是成功把项目从开发机迁移到了本地。如果一切正常,终端会返回北京的天气信息,这就说明整个服务已经成功运行
大家好,今天我想分享一下我把一个 MCP 架构的天气服务项目,从远程开发机完整迁移到本地 Windows 电脑并成功运行的全过程。这个过程中踩了不少坑,希望我的经验能帮到大家少走弯路。
项目背景
这是一个典型的前后端分离项目:
- 服务端:Node.js 编写,负责提供天气数据接口
- 客户端:Python 编写,负责提供交互查询能力
- 目标:在本地 Windows 环境完整部署并运行,实现 get_weather Beijing 这样的天气查询功能
本地环境准备
在开始之前,我们需要确保本地环境满足基本要求:
- Node.js:我推荐安装 LTS 版本(18.x / 20.x),版本太旧会导致依赖不兼容
- Python:需要 3.8 及以上版本,确保能运行现代 Python 代码
- PowerShell 执行策略:默认策略会阻止脚本运行,需要临时调整
|
PowerShell |
服务端部署(Node.js)
这是最容易踩坑的部分,因为服务端需要编译才能运行。
1. 进入服务端目录
|
PowerShell |
⚠️ 注意:npm 相关命令必须在这个目录下执行,因为这里才有 package.json 文件。
2. 安装依赖
|
PowerShell |
我在这里遇到了两个问题:
- 问题 1:EBADENGINE 警告,提示 Node.js 版本过旧
✅ 解决:升级 Node.js 到 LTS 18.x 以上
- 问题 2:E401 错误,提示 npm 登录凭证过期
✅ 解决:执行 npm logout 后重新安装
3. 编译源码
|
PowerShell |
编译完成后,会在当前目录生成 build 文件夹,里面就是编译好的可运行 index.js 文件。这一步非常重要,直接运行源码会因为 ES6 语法兼容问题报错。
客户端部署(Python)
客户端的坑主要集中在虚拟环境和路径问题上。
1. 进入客户端目录
|
PowerShell |
2. 安装依赖
|
PowerShell |
3. 启动客户端与服务端
|
PowerShell |
⚠️ 注意:Windows 路径用反斜杠 \,所以这里是 ..\mcp-server...,而不是开发机上的斜杠 /。
我在这里遇到的问题:
- 问题 1:无法加载.venv模块 错误
✅ 解决:这是 PowerShell 执行策略限制导致的,执行前面提到的策略调整命令即可
- 问题 2:启动后长时间无响应
✅ 解决:这是 uv 工具在自动创建虚拟环境,耐心等待即可,或者手动创建虚拟环境再启动
✅ 验证运行
启动成功后,终端会出现 Query: 提示符,这时就可以输入查询指令了:
|
Plain Text |
如果一切正常,终端会返回北京的天气信息,这就说明整个服务已经成功运行了!
退出与清理
- 停止服务:在运行中的终端按 Ctrl + C
- 清理虚拟环境(可选):直接删除 .venv 文件夹
优化建议
- 脚本化启动:把所有步骤整合为一个 .ps1 脚本,以后双击就能一键启动
- 固定端口:在服务端配置中固定端口,避免端口冲突
- 增加日志:在服务端增加日志输出,便于定位运行时问题
总结
整个过程虽然踩了不少坑,但最终还是成功把项目从开发机迁移到了本地。核心要点就是:
- 分清服务端和客户端的目录,不要在错误的目录执行命令
- 服务端必须编译后才能运行,直接运行源码会报错
- Windows 和 Linux 的路径分隔符不同,注意区分
- PowerShell 的执行策略会影响虚拟环境的激活,需要提前调整
希望我的经验能帮到大家,如果有问题欢迎在评论区交流!
更多推荐

所有评论(0)