You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode中RooCode扩展连接Superset MCP服务器报-32000错误排查

关于RooCode连接Superset MCP服务器报-32000错误的排查方案

问题背景

在VSCode中通过RooCode扩展连接新的Superset MCP服务器时,触发MCP error -32000: Connection closed错误,但time MCP服务器可正常运行。Superset MCP项目基于Python venv虚拟环境,main.py脚本手动启动无异常,相关配置如下:

.env文件

SUPERSET_BASE_URL=https://localhost:8090/
SUPERSET_USERNAME=user
SUPERSET_PASSWORD=userPass

mcp.json配置

{
  "mcpServers": {
    "superset-mcp": {
      "command": "python",
      "args": ["main.py"],
      "cwd": "C:\\Users\\UserName\\superset-mcp",
      "env": {
        "SUPERSET_BASE_URL": "https://localhost:8090/",
        "SUPERSET_USERNAME": "user",
        "SUPERSET_PASSWORD": "userPass"
      }
    },
    "time": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "mcp/time"]
    }
  }
}

-32000错误的成因

该错误是JSON-RPC协议的通用错误码,核心原因是RooCode与MCP服务器的连接意外中断,常见触发场景包括:

  • 脚本启动时调用了系统Python而非虚拟环境中的解释器,导致依赖包缺失
  • mcp.json中配置的环境变量不全,与手动运行时的环境存在差异
  • 脚本初始化阶段静默失败(无明显回溯但进程退出)
  • VSCode进程权限不足,无法访问虚拟环境目录或Superset服务
  • 资源/端口冲突(VSCode进程上下文与手动运行时的资源占用不同)

排查步骤

  • 指定虚拟环境的Python解释器:将mcp.json中command字段的python替换为虚拟环境的绝对路径,例如C:\\Users\\UserName\\superset-mcp\\venv\\Scripts\\python.exe,避免调用系统Python
  • 添加调试日志定位差异:修改main.py,在脚本开头写入调试信息到本地文件,对比手动运行与RooCode启动时的环境差异:
    import os
    import sys
    with open("mcp_debug.log", "w", encoding="utf-8") as f:
        f.write(f"Python解释器路径: {sys.executable}\n\n")
        f.write("已安装依赖包:\n")
        f.write(os.popen(f"{sys.executable} -m pip list").read() + "\n\n")
        f.write("环境变量:\n")
        for k, v in os.environ.items():
            f.write(f"{k}: {v}\n")
    
    启动RooCode后查看生成的mcp_debug.log,重点检查依赖包是否存在、环境变量是否完整
  • 在VSCode终端手动验证:打开VSCode终端,切换到项目目录,执行venv\Scripts\activate激活虚拟环境,再运行python main.py,观察是否有隐藏报错或异常输出
  • 补全mcp.json的环境变量:确认手动运行时依赖的所有环境变量(除了已配置的三个)都已添加到mcp.json的env字段中,避免环境缺失导致初始化失败
  • 测试Superset连接有效性:在main.py中添加Superset登录测试代码,直接输出连接结果,排除证书、URL格式等问题:
    from supersetapiclient import SupersetClient
    try:
        client = SupersetClient(
            baseurl=os.getenv("SUPERSET_BASE_URL"),
            username=os.getenv("SUPERSET_USERNAME"),
            password=os.getenv("SUPERSET_PASSWORD"),
            verify_ssl=False  # 临时关闭SSL验证排查问题
        )
        print("Superset连接成功")
    except Exception as e:
        print(f"Superset连接失败: {str(e)}")
    
  • 提升VSCode权限:右键以管理员身份运行VSCode,排查是否因权限不足导致无法访问虚拟环境或Superset服务

内容的提问来源于stack exchange,提问作者Laura Díaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 21:23:23