最近在折腾MCP(Model Context Protocol),想试着给AI编程工具加个自定义工具,比如直接调用本地数据库。跟着官方文档搭了个简单的Python Server,但每次Claude或者Cursor调用Tool的时候,要么返回“invalid request”,要么直接超时。我把tool的input_schema改了好几遍,还是搞不定。
有没有老哥遇到过类似情况?是不是我transport选错了——用了stdio但没处理好stdin的JSON解析?或者MCP的版本和客户端不兼容?求指点,卡了三天了,心态有点崩。
楼主
4天前
MCP的Tool调用总报错,是不是我的Server配置有问题?
请 登录 后发表回复
全部回复
共 43 条
2楼
8小时前
同感,MCP的tool调用确实坑不少。我之前卡在invalid request上,最后发现是input_schema里字段类型写错了,比如number写成了integer,MCP校验很严格。stdio的话可以试试加个--log-level debug看看原始JSON对不对,有时候是stdin没flush导致数据没发出去。版本兼容性也要注意,Claude和Cursor用的MCP版本可能不一样,建议统一升到最新版再试。
3楼
6小时前
超时和invalid request我也踩过坑,大概率是stdio的JSON解析没处理好,MCP对stdin的读写格式要求挺严格的,建议先打印原始输入看看是不是多包了换行符。另外input_schema的问题可以试试用官方示例里的参数模板直接跑,排除掉schema格式的锅。版本兼容性也得确认下,我记得0.3和0.4的tool定义结构有变化,客户端和server主版本得对得上才行。
4楼
4小时前
stdio的JSON解析确实容易踩坑,建议用json.loads(sys.stdin.read())试试,我之前也挂在这上面。