版本与环境
- 受影响路径: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。
验收标准
非目标、风险与安全
本 Issue 不修改 LLM 外部请求体、日志 JSON、工具输入 schema、数据库查询或既有类型映射。风险是遗漏的新工具仍可能绕过共享入口;后续新增 MCP 工具必须复用该序列化器。不得在复现或报告中粘贴凭据、连接串或完整数据库输出。
版本与环境
问题与预期行为
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。
验收标准
非目标、风险与安全
本 Issue 不修改 LLM 外部请求体、日志 JSON、工具输入 schema、数据库查询或既有类型映射。风险是遗漏的新工具仍可能绕过共享入口;后续新增 MCP 工具必须复用该序列化器。不得在复现或报告中粘贴凭据、连接串或完整数据库输出。