## 版本与环境 - 受影响路径:database/ai_tools.py、discovery_tools.py、observability_tools.py、schema_algorithms_tools.py、standards_tools.py、server/mcp_server.py。 - 运行时:Python 3.10+,MCP stdio/HTTP 响应边界。 - 数据库:使用固定驱动值 stub 复现,不需要真实数据库凭据。 - 安装方式:仓库虚拟环境,PYTHONPATH=src。 ## 问题与预期行为 PR #162 已将数据库查询与原子代码生成响应切换到共享 JSON 序列化器,但其他 MCP 响应模块仍直接调用标准库 json.dumps。Decimal、日期时间、UUID、二进制等驱动值进入组合 payload 后,可能在 MCP 边界触发 TypeError,客户端无法获得结构化响应。 预期行为:所有 MCP 响应入口使用 utils.json_serialization.dumps;已支持驱动值按共享合同编码,未知对象继续显式失败,不静默丢数据。 ## 最小复现 在 AI、工具发现或可观测性响应的嵌套 payload 中注入 Decimal("1.25"),调用对应 handler 的 JSON 响应路径。修复前会命中直接 json.dumps 并抛出 TypeError;预期由共享编码器生成有效 JSON。 ## 验收标准 - [ ] 指定 MCP 响应模块全部使用共享序列化器。 - [ ] Decimal、日期时间、UUID、bytes/memoryview 和 timedelta 的回归测试通过。 - [ ] 未知对象仍显式抛出 TypeError。 - [ ] 公共工具名、输入 schema、字段结构和文本格式不变。 - [ ] 相关单元测试、Ruff、格式检查和 git diff --check 通过。 ## 非目标、风险与安全 本 Issue 不修改 LLM 外部请求体、日志 JSON、工具输入 schema、数据库查询或既有类型映射。风险是遗漏的新工具仍可能绕过共享入口;后续新增 MCP 工具必须复用该序列化器。不得在复现或报告中粘贴凭据、连接串或完整数据库输出。
Activity
ZhaoXingPeng commentedon Sep 9, 2026
已由 PR #162 合并并进入 main,当前交付项完成,关闭本 Issue。