

近日,mcp-go框架发布了v0.39.1版本,该版本主要修复了一个与工具输出Schema序列化相关的重要问题。本次更新虽仅包含一个关键修复,但对确保工具接口的稳定性和数据一致性具有重要意义。
在之前的版本中,当工具的OutputSchema未明确设置时(即其Type字段为空),序列化后的JSON仍会包含一个空的outputSchema字段。这种行为可能导致某些客户端解析时出现预期外的错误,尤其是在依赖Schema类型校验的场景中。
本次修复的核心改动位于mcp/tools.go文件的MarshalJSON方法中。具体逻辑调整为:
OutputSchema和RawOutputSchema,仍会返回冲突错误。OutputSchema.Type不为空时,才在序列化结果中包含outputSchema字段。Type为空),则完全省略该字段,避免返回空值。修复后的核心逻辑如下: .
if t.RawOutputSchema != nil {
// 处理原始Schema
} else if t.OutputSchema.Type != "" { // 仅当Type非空时返回Schema
m["outputSchema"] = t.OutputSchema
}为确保修复的可靠性,本次更新还增强了测试用例(mcp/tools_test.go),新增以下场景验证:
outputSchema字段。该修复属于向后兼容性改动,不会破坏现有接口的行为。仅当工具未定义输出Schema时,序列化结果不再包含空字段,从而避免客户端解析异常。
mcp-go v0.39.1虽是一个小版本更新,但通过精准修复工具输出Schema的序列化逻辑,进一步提升了框架的鲁棒性。建议所有使用工具输出Schema功能的用户升级至此版本,以确保数据交互的稳定性。
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,让AI助力您的未来发展。