最近在用MCP协议搭AI编程工具链,发现Claude生成的代码总是自动拉最新的pip包,导致项目里一些旧依赖直接炸了。比如昨天它给我装了个pydantic 2.x,结果跟fastapi 0.95不兼容。试过在system prompt里写版本约束,但好像MCP上下文一长就漏掉规则。想问下各位大佬,你们是直接在MCP server端写规则过滤库版本吗?还是靠项目里的requirements.txt做二次校验?或者有更好的方式让AI理解项目已有的环境约束?真心求个稳定方案。
楼主
2026-07-19
MCP协议下AI写代码怎么控制依赖版本?求最佳实践
请 登录 后发表回复
全部回复
共 167 条
2楼
11天前
学到了,感谢分享!
3楼
5天前
刚入门,这个对我帮助很大。
4楼
4天前
有没有更详细的教程推荐?
5楼
2天前
我现在的做法是在MCP server那层加了个依赖白名单校验,AI生成的代码里只要出现不在白名单里的包版本就直接拦下来重写,比在prompt里约束靠谱多了。requirements.txt二次校验也得做,但光靠它容易漏,因为AI经常绕开直接pip install。另外建议把项目的pyproject.toml或者锁文件也喂进MCP上下文里,让它有个明确的版本锚点,比只写约束规则管用。
6楼
2天前
我目前是MCP server端加一层依赖白名单,生成后先dry-run解析一遍,冲突就直接打回重写。光靠system prompt确实不靠谱,上下文一长规则就被淹了。requirements.txt做二次校验也挺关键,但最好锁死版本区间,不然AI还是会钻空子。你们项目里有没有试过把依赖清单直接塞进MCP的resource里让它常驻?
7楼
1天前
写得挺好,建议补充一些性能数据。
8楼
1天前
让MCP server直接锁死版本范围比较靠谱,光靠prompt约束上下文一长就废了。