Files
qiming/qiming-mcp-proxy/docs/analysis/WINDOWS_FIX_SUMMARY.md
2026-06-01 13:03:20 +08:00

184 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Windows 测试问题修复总结
## 测试环境
- 版本: v0.1.37
- 平台: Windows
## 发现的问题
### 1. ✅ 隐藏 CMD 窗口没有效果
**问题分析**:
-`mcp-streamable-proxy/src/server_builder.rs` 中,`CREATE_NO_WINDOW` 标志设置得太早
- 后续的 `cmd.env()``cmd.args()` 调用可能导致标志被重置或无效
**修复方案**:
-`CREATE_NO_WINDOW` 设置移到所有 `env()``args()` 调用之后
- 确保在创建 `TokioChildProcess` 之前最后一步设置
**已修复文件**:
- `/Users/apple/workspace/mcp-proxy/mcp-streamable-proxy/src/server_builder.rs`
**状态**: ✅ 已修复
---
### 2. ❓ mcp-proxy 启动不成功
**需要的信息**:
1. 完整的错误日志(请提供)
2. 使用的命令行参数
3. 配置文件内容(如果有)
**可能的原因**:
- Node.js 可执行文件路径问题
- PATH 环境变量未正确继承
- 子进程创建失败
- MCP 服务配置错误
**诊断步骤**:
```bash
# 1. 检查日志文件
cat logs/mcp-proxy.log
# 2. 使用详细模式运行
mcp-proxy --verbose
# 3. 检查 Node.js 是否可用
where node # Windows
node --version
# 4. 检查 PATH 环境变量
echo %PATH%
```
**状态**: ⏳ 等待错误日志
---
### 3. ❓ 如果用户已经安装 Node.js 无法进入后续安装流程
**问题不清楚**:
这个描述需要更多上下文。可能的理解:
**理解 A**: mcp-proxy 尝试安装 Node.js但检测到已安装的 Node.js 后卡住
- 问题: mcp-proxy 本身不包含 Node.js 安装逻辑
- 代码中只有 PATH 继承和 npm 路径添加
- 需要确认是否是其他工具(如 MCP 服务本身)的行为
**理解 B**: 某个 MCP 服务需要 Node.js但检测逻辑有问题
- 可能的原因: Node.js 在 PATH 中但可执行文件名不对node.exe vs node
- 可能的原因: Node.js 版本不兼容
**理解 C**: npm 包安装过程卡住
- 可能的原因: npm 缓存问题
- 可能的原因: 网络连接问题
- 可能的原因: 权限问题
**需要的信息**:
1. 具体是什么"后续安装流程"
2. 卡在哪个步骤?有什么错误提示?
3. 这个安装流程是 mcp-proxy 触发的还是某个 MCP 服务?
4. Node.js 安装路径是什么?
**可能的修复方案**:
如果是 Node.js 可执行文件检测问题,可以添加检测逻辑:
```rust
// 检查 Node.js 是否可用
fn is_node_available() -> bool {
#[cfg(windows)]
let node_cmd = "node.exe";
#[cfg(not(windows))]
let node_cmd = "node";
std::process::Command::new(node_cmd)
.arg("--version")
.output()
.is_ok()
}
```
**状态**: ⏳ 等待详细描述
---
## 当前代码状态
### PATH 环境变量处理
✅ 正确继承父进程 PATH
✅ Windows 上自动添加 `%APPDATA%\npm` 到 PATH
✅ 支持配置文件中自定义 PATH
### Windows CMD 窗口隐藏
`mcp-streamable-proxy`: 使用 `CREATE_NO_WINDOW` (已修复顺序)
`mcp-sse-proxy`: 使用 `CreationFlags(0x08000000)`
`mcp-proxy/client/core/command.rs`: 使用 `CreationFlags(0x08000000)`
---
## 下一步行动
### 立即需要
1. **问题 2**: 提供完整的 mcp-proxy 启动错误日志
2. **问题 3**: 详细描述"无法进入后续安装流程"的具体情况
### 测试验证
1. 编译新版本并在 Windows 上测试
2. 验证 CMD 窗口是否成功隐藏
3. 测试各种 Node.js 安装场景:
- 未安装 Node.js
- 通过官方安装包安装
- 通过 nvm-windows 安装
- 通过 fnm 安装
- Node.js 在自定义路径
### 构建测试版本
```bash
# 更新版本号
# 编辑 mcp-proxy/Cargo.toml, 修改 version = "0.1.38"
# 构建
cargo build --release -p mcp-proxy
# 生成可执行文件位置
# target/release/mcp-proxy.exe
```
---
## 请提供以下信息
为了准确诊断和修复剩余的两个问题,请提供:
### 问题 2 (mcp-proxy 启动失败)
```bash
# 运行这些命令并提供输出
mcp-proxy --version
mcp-proxy <你的命令参数> --verbose
# 如果有日志文件,提供内容
type logs\mcp-proxy.log
```
### 问题 3 (Node.js 安装流程)
请描述:
1. 完整的操作步骤(从头到尾做了什么)
2. 期望的行为是什么
3. 实际发生了什么
4. 有什么错误提示或卡住的界面
5. 你的 Node.js 安装方式和路径
### 系统信息
```powershell
# Windows 版本
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
# Node.js 信息
where node
node --version
npm --version
# PATH 环境变量
echo %PATH%
```