Skip to content

fix(mcp): expose context_type filter#3181

Open
huangruiteng wants to merge 2 commits into
volcengine:mainfrom
huangruiteng:codex/mcp-search-filter-parity
Open

fix(mcp): expose context_type filter#3181
huangruiteng wants to merge 2 commits into
volcengine:mainfrom
huangruiteng:codex/mcp-search-filter-parity

Conversation

@huangruiteng

@huangruiteng huangruiteng commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

动机

修复 #2990

MCP 的 findsearch 目前无法按 context_type 限定检索范围,而 REST、SDK、CLI 与底层 search service 已支持该输入。调用方因此只能依赖 URI 前缀等方式绕行。

根据 maintainer review,本 PR 只补齐 context_type,不向 MCP 暴露通用 metadata filter

改动思路

复用现有 search-filter normalization,把 MCP 的可选 context_type 转为底层 effective filter,再传给 SearchService.find / SearchService.search。不传该参数时行为保持不变,非法输入继续返回 InvalidArgumentError

关键调用链 / 伪代码

MCP find/search(query, context_type?)
  -> merge_search_filter(None, context_type=context_type)
  -> effective_filter
  -> SearchService.find/search(..., filter=effective_filter)

具体改动

  • 为两个 MCP retrieval tools 暴露可选 context_type
  • 将归一化后的 context-type filter 传给 search service;
  • 不暴露通用 metadata filter
  • 同步更新中英文 MCP 文档;
  • 增加 MCP schema 与参数转发回归覆盖。

修复后复现建议

通过 MCP 分别调用 find / search

context_type = "memory"

修复前 MCP schema 不接受该参数;修复后 schema 会暴露 context_type,service 收到对应 effective filter。省略参数时结果与修复前一致,schema 中仍不包含通用 filter

验证

  • tests/server/test_mcp_endpoint.py:49 passed;
  • FastMCP schema:find / search 包含 context_type,不包含 filter
  • Ruff check / format:passed;
  • git diff --check:passed。

对主干的风险与未覆盖

改动仅涉及 MCP 输入与既有 search service 参数传递;不传新参数时保持原行为。本 PR 不增加 metadata filter、tag 或 time-range 快捷参数。

@huangruiteng

Copy link
Copy Markdown
Contributor Author

@qin-ctx 请协助 review:本 PR 修复 #2990,改动是「fix(mcp): expose retrieval filters」。必要性、验证与风险已写在 PR 描述中,谢谢!

@qin-ctx

qin-ctx commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

context_type可以支持,但是fileter不用支持

@huangruiteng huangruiteng changed the title fix(mcp): expose retrieval filters fix(mcp): expose context_type filter Jul 13, 2026
@huangruiteng

Copy link
Copy Markdown
Contributor Author

已按 review 收缩:保留 context_type 支持,移除 MCP 通用 metadata filter;代码、schema 测试、中英文文档和 PR 描述均已同步。隔离本机配置后,tests/server/test_mcp_endpoint.py 49/49 通过,Ruff 与 git diff --check 通过。

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

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

2 participants