You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

VSCode与Terminal运行含MCP Tools的Python代码时工具检测结果不一致问题排查

VSCode与Terminal运行含MCP Tools的Python代码时工具检测结果不一致问题排查

遇到这种跨环境的工具加载差异确实挺头疼的,我帮你梳理几个最可能的排查方向:

  • 检查VSCode使用的Python解释器环境
    这是最常见的原因:Terminal里你激活了正确的虚拟环境(装有praisonaiagentsfastmcp等依赖),但VSCode可能默认用了系统Python或者其他未安装对应依赖的虚拟环境。
    解决方法:点击VSCode左下角的Python版本标识,选择和Terminal中which python(Linux/macOS)或where python(Windows)输出一致的解释器;也可以在VSCode的终端里先手动激活你的虚拟环境,再运行代码。

  • 确认VSCode的工作目录是否正确
    如果VSCode的默认工作目录不是你的代码所在文件夹,可能导致MCP server的路径识别异常,工具无法被正确注册。
    解决方法:右键点击你的项目根文件夹,选择「Set as Workspace Folder」;或者在VSCode终端里手动cd到代码所在目录后再执行脚本。

  • 验证VSCode的.env文件加载是否正常
    虽然你提到.env没问题,但VSCode的调试模式或终端可能存在.env加载优先级差异。
    解决方法:如果用调试模式运行,检查.vscode/launch.json里是否添加了"envFile": "${workspaceFolder}/.env"配置;如果是终端运行,在脚本开头添加print(os.environ.get("你的环境变量键名")),确认变量能被正确读取。

  • 排查MCP工具的同步/异步注册差异
    你的server.py里混合了异步工具(get_weatherget_stock_price)和同步工具(get_special_number),不同环境下的事件循环处理可能导致同步工具未被正确检测。
    解决方法:尝试把get_special_number改成异步函数(添加async关键字),或者查看FastMCP的文档,确认同步工具是否需要额外配置才能在VSCode环境下被识别。

  • 排除VSCode扩展或缓存的干扰
    部分VSCode扩展(尤其是AI代理、LLM相关的)可能会干扰MCP工具的注册流程,或者Python插件的缓存导致依赖识别异常。
    解决方法:暂时禁用非必要的扩展,重启VSCode后重试;或者在VSCode设置中搜索「Python: Clear Cache」,清除插件缓存后再运行代码。

你可以先从检查Python解释器环境开始,这是最容易排查的点,确认后再逐步验证其他方向。

内容来源于stack exchange

火山引擎 最新活动