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

4.4 KiB
Raw Permalink Blame History

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 服务配置错误

诊断步骤:

# 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 可执行文件检测问题,可以添加检测逻辑:

// 检查 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 在自定义路径

构建测试版本

# 更新版本号
# 编辑 mcp-proxy/Cargo.toml, 修改 version = "0.1.38"

# 构建
cargo build --release -p mcp-proxy

# 生成可执行文件位置
# target/release/mcp-proxy.exe

请提供以下信息

为了准确诊断和修复剩余的两个问题,请提供:

问题 2 (mcp-proxy 启动失败)

# 运行这些命令并提供输出
mcp-proxy --version
mcp-proxy <你的命令参数> --verbose

# 如果有日志文件,提供内容
type logs\mcp-proxy.log

问题 3 (Node.js 安装流程)

请描述:

  1. 完整的操作步骤(从头到尾做了什么)
  2. 期望的行为是什么
  3. 实际发生了什么
  4. 有什么错误提示或卡住的界面
  5. 你的 Node.js 安装方式和路径

系统信息

# Windows 版本
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"

# Node.js 信息
where node
node --version
npm --version

# PATH 环境变量
echo %PATH%