Skip to content

[BUG][OPT-01] MCP 服务精确查询与删除不应依赖向量 Top-1 检索 #36

Open

Description

@Aias00

总览:#30

代码依据

问题与目标

getServer 和 removeServer 使用服务名进行向量相似搜索,取 Top-1 后才比较 metadata.serviceName。即使目标记录存在,只要另一条记录排名更高,就返回未找到或删除失败。这是静态调用路径分析,尚未运行复现测试。

范围与方案

为服务标识建立确定性查询/删除路径,语义搜索只承担候选检索。比较按 serviceName 的精确索引、稳定文档 ID 或后端过滤的可行性,不预设必须替换整个向量后端。明确重复添加、更新、索引一致性与已有记录重建策略。

验收

  • 先添加复现:目标存在但相似搜索将其他服务排第一时,精确 get/remove 仍正确。
  • 不存在的服务不会误删其他服务;覆盖重复添加、更新及并发读写。
  • 服务查询与删除不依赖 embedding 排名;语义 search 功能保持可用。
  • 明确无 EmbeddingModel 时精确目录的支持策略和索引初始化/重建行为。
  • 保持公共接口优先;确需改接口或数据格式时逐项论证并提供迁移说明。

关联扩展 #20 的工具检索,但本任务只解决服务身份的确定性,不实现权限检索。

变更约束

本单来自静态代码审查,尚未运行复现或性能测试。实施先补充针对性验证;破坏性变更需比较更小/兼容方案,记录收益、消费者影响、迁移成本和版本策略。允许保留有充分理由的现有设计。

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions