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启动时的环境差异:
启动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")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
相关产品推荐
相关产品推荐

