Skip to content

[Feature] 支持大规模 MCP 工具目录的宿主检索、按需加载 Schema 与原生执行路由 #2349

Open

Description

@duhu2000

希望 Octop 支持数百工具的单入口连接,同时避免每轮向模型注入全部工具定义。建议实现如下闭环:

  1. OAuth 后在宿主侧获取并管理完整授权目录;若存在分页,遍历目录游标。目录完整保存在宿主,不代表所有定义都进入模型上下文。
  2. 为模型提供宿主自定义搜索入口,在已授权目录中按用户意图检索候选工具,可限定连接器/company 来源。
  3. 仅将命中的工具名称、描述、输入 Schema 及执行所需元数据提供给当前轮次;候选不足时允许继续搜索。
  4. 模型生成参数后,宿主使用原有 MCP tools/call 调用原始工具名。调用前校验参数、连接器归属和当前授权,保持现有用户确认机制。
  5. 结果返回模型,必要时继续发现和调用;招聘分页严格复用真实响应游标。

实现建议(待社区结合代码评估)

优先级 建议 验收重点
P0 增加目录同步诊断:原始数量、缓存版本、过滤原因、会话注册数量 可定位“已连接但少工具”发生在哪层
P0 授权更新、账号切换、重连后使旧目录失效并刷新执行绑定 不复用其它账号权限,不出现仅名称可见却不能执行
P1 宿主搜索层,例如 search_mcp_tools(query, connector, limit) 搜索覆盖完整已授权目录;此名称为建议的宿主接口,不是要求服务端新增的 MCP 标准方法
P1 候选 Schema 装载及本轮原生工具绑定;若模型不支持动态注册,可评估宿主执行包装层 包装层仍验证 Schema,并映射原工具 tools/call;不扩大授权
P1 命名空间保存连接器 ID 与原始工具名,避免同名工具串路由 company 限定下不偷偷调用 ipr/risk 等其它连接
P1 展示“搜索→加载定义→执行”的脱敏事件 用户可理解和验收按需加载,错误能区分鉴权、目录、参数和上游问题
P2 目录变更通知(服务支持时)、缓存刷新、候选排序和上下文预算优化 数量增长、工具移除、权限收缩后仍一致

服务端保持现有授权、路由和计费链路;此建议不涉及新增消费预扣、结算或计费去重改造。不要求支持全部工具的模型一次接收全部 Schema。具体数量和性能需实测,不能仅依据目录 186 项就宣布按需加载成功。

验收计划

案例 方法 通过条件
目录同步 对比同一次授权的服务端目录、宿主缓存和会话绑定 工具集合一致,任何过滤可解释;186 为本次产品目标而非永久硬编码
历史专利 新会话限定 company,自然语言发起历史专利查询 检索并加载正确定义,真实调用成功,不用当前专利替代
标准信息 同条件查询标准信息 company 路由成功,不借其它 server
招聘分页 第一页及响应 next_cursor 对应第二页 保持查询条件,复用真实游标;无数据时记录并更换有分页数据的测试样本
按需证据 检查模型输入和宿主事件 有候选检索与 Schema 装载记录;未预先注入全量定义
新会话/重连 创建干净会话,刷新连接再执行 不依赖旧会话目录,执行绑定有效
权限隔离 撤销/失效测试授权或更换非试点测试账号 不使用旧目录绕过权限,不串用凭据

每项留存版本、时间、脱敏输入、原始返回摘要及服务端关联记录。空结果可以证明路由到达,但不能替代招聘第二页验收。

替代方案与相关问题

全量注入 Schema 会增加上下文占用;固定白名单可能隐藏已授权能力;多个连接器可作为兼容方式,但不满足单入口发现目标。分页探测已有 #2298 / #2299,本提案不替代该修复,也不预设当前运行时完全没有按需能力,请维护者指出可复用机制。当前仅为测试账号试点,不涉及全量开启。

关联目录复验报告:#2348。本增强建议与该报告的根因定位分别推进。

Activity

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