SuperAPI AI 工具集

add-integration-api-tool

智能体与模型

查看项目

更新于 10-16 06:14

技能介绍

用途:在 UniFi MCP 代码库中新增对接 UniFi 公共 Integration API(X-API-Key 认证,路径前缀 /proxy/network/integration/v1/...)的工具,并正确处理与 V2 controller API 的边界,避免 ID 混用导致静默失败或操作错误资源。

两个 API 面不可互换:V2 用 session cookie,路径为 /proxy/network/api/... 与 /proxy/network/v2/api/...,ID 是 Mongo ObjectID,字段为 snake_case;Integration 用 X-API-Key 头,路径为 /proxy/network/integration/v1/...,ID 是 UUID,字段为 camelCase,且覆盖范围是精选子集。同一逻辑资源在两套 API 中 ID 不通用,且无原生桥接字段。

主要步骤:一、识别工具所属 family(返回 ID 与接受 ID 可互换的一组工具);能归入现有 family 就加入,否则新建并记录边界。二、在工具描述中限定 ID 作用域,凡返回可能与其它 family 混淆的 ID,都必须在 MCP、GraphQL、REST 描述中写明这些 ID 仅能传给同 family 工具。三、要求 API key 并提供修复提示,在 manager 层统一检查(如 has_api_key),否则报错提示创建 Network API token 并设置 UNIFI_API_KEY 或 UNIFI_NETWORK_API_KEY。四、禁止默认静默做 ID 转换;zones 是既有例外,仅因满足 1:1、稳定、确定三项条件;策略不满足(V2 约 180 条对 Integration 约 25 条,V2 有 8 个重名,Integration 元数据无桥接字段)。五、确需桥接时写成命名明确的桥接工具,不要藏在其它工具里。六、测试覆盖 family 边界:无 API key 快速失败并带修复信息、返回限定 UUID、桥接失败模式。七、文档把 Integration API 工具归组,改完 REST/GraphQL 描述后运行 make pre-commit 重新生成 OpenAPI 与参考文档。

限制:family 作用域目前只是约定,无运行时或类型强制,跨 family ID 误用会由 controller 返回 400 并表现为工具错误;更强强制手段(NewType、正则校验、tools_manifest.json 增设 family 字段)暂缓,待 Integration API 面扩展后再议。参考实现位于 apps/network/src/unifi_network_mcp/tools/firewall.py。