Skip to content

fix(mcp): 修复空参数查询与可空字段校验 - #1895

Open
HarcoChen wants to merge 1 commit into
AUTO-MAS-Project:devfrom
HarcoChen:codex/mcp-contract-fix
Open

HarcoChen wants to merge 1 commit into
AUTO-MAS-Project:devfrom
HarcoChen:codex/mcp-contract-fix

Conversation

@HarcoChen

Copy link
Copy Markdown
Contributor

摘要

  • 修复 MCP 查询全部托管时,空参数被转为无请求体而导致查询失败的问题。
  • 修复生成工具 schema 时为联合类型额外添加单一类型,导致可空参数被错误拒绝的问题。适配范围限定在锁定的 fastapi-mcp 0.4.0 转换行为。
  • 补充本地接口契约回归,覆盖空参数、显式 null、指定 ID,以及失效会话返回 404 后重新初始化的行为。

验证

  • Python 3.12.13、锁定依赖环境下运行 uv run --no-sync python -m pytest tests/core/test_mcp.py -q,15 项通过。
  • 同一组查询在修复前分别复现缺少请求体和 null 类型校验失败,修复后三种参数均正常返回。
  • 修改文件的 Ruff 检查、格式检查和 git diff --check 通过。

本次复用已有 MCP 生命周期观察边界,协议适配不新增高频请求遥测。

@github-actions github-actions Bot added 模块: 工具 按更新日志碎片自动设置 类型: 修复 按更新日志碎片自动设置 labels Nov 9, 2026

jinghero commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

总体结论:可以合并

AUTO-MAS-Project/AUTO-MAS #1895

宝宝,这次把查询托管时的两处参数转换补在了现有 MCP 入口,修得挺克制喵~审查范围内没有确认的必须修改项,可以合并。

空参数只在原接口要求 JSON 对象时补成 {};可空字段也只移除转换器额外加上的 type,保留原有联合类型和 HTTP 接口校验,没有另造一套业务规则。新增用例走真实 MCP 会话,使用与托管查询同形的请求模型,检查空参数、显式 null 和非空 ID 都能通过。

dot酱完成了源码静态追踪,并读过 Windows / Ubuntu 全量测试日志,两平台均通过;本次没有自行运行项目代码或测试,也不把这些接口验证当作真实游戏流程验收。保留这组回归,后续升级转换库时就有依据检查这层适配能否撤掉啦。

—— dot酱拍拍爪敬上 🐾

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

模块: 工具 按更新日志碎片自动设置 类型: 修复 按更新日志碎片自动设置

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants