Support version in ai maintainer sdk and fix some errors when build#13401
Support version in ai maintainer sdk and fix some errors when build#13401KomachiSion merged 4 commits intoalibaba:v3.0-developfrom
Conversation
|
Thanks for your this PR. 🙏 感谢您提交的PR。 🙏 |
新增MCP服务器版本管理功能及前端界面优化变更文件
时序图SequenceDiagram:
participant Frontend as "前端McpDetail组件"
participant MaintainerSDK as "Maintainer客户端SDK"
participant RegistryAPI as "MCP注册中心API"
Frontend->>MaintainerSDK: 调用getMcpServerDetail("server1", "v1.2")
MaintainerSDK->>RegistryAPI: 发送GET请求携带mcpName和version参数
RegistryAPI-->>MaintainerSDK: 返回指定版本的McpServerDetailInfo
MaintainerSDK-->>Frontend: 返回数据供前端展示分页端点配置
Frontend->>MaintainerSDK: 分页请求(offset=0, limit=50)
MaintainerSDK->>RegistryAPI: 调用searchMcpServerByName接口
💡 小贴士与 lingma-agents 交流的方式📜 直接回复评论
📜 在代码行处标记
📜 在讨论中提问
|
There was a problem hiding this comment.
🔍 代码评审报告
🎯 评审意见概览
| 严重度 | 数量 | 说明 |
|---|---|---|
| 🔴 Blocker | 0 | 阻断性问题,需立即修复。例如:系统崩溃、关键功能不可用或严重安全漏洞。 |
| 🟠 Critical | 1 | 严重问题,高优先级修复。例如:核心功能异常或性能瓶颈影响用户体验。 |
| 🟡 Major | 1 | 主要问题,建议修复。例如:非核心功能缺陷或代码维护性较差。 |
| 🟢 Minor | 0 | 次要问题,酌情优化。例如:代码格式不规范或注释缺失。 |
总计: 2 个问题
📋 评审意见详情
💡 单文件建议
以下是文件级别的代码建议,聚焦于代码的可读性、可维护性和潜在问题。
☕ ai/src/main/java/com/alibaba/nacos/ai/index/McpServerIndex.java (1 💬)
- 方法注释参数顺序与实际参数不一致 (L31-L35)
📜 console-ui/src/pages/AI/McpDetail/McpDetail.js (1 💬)
- 生产代码中存在调试日志 (L73)
🚀 跨文件建议
以下是对代码架构和设计的综合分析,聚焦于跨文件交互、系统一致性和潜在优化空间。
🔍 1. 接口参数名称变更导致前后端不一致性风险
在NacosAiMaintainerServiceImpl.java中,多个API方法的参数名称从"name"统一改为"mcpName",但未同步更新前端调用逻辑。例如console-ui/src/pages/AI/NewMcpServer/NewMcpServer.js中仍存在使用旧参数名的潜在风险。需检查前端所有相关接口调用是否同步更新参数名,否则可能导致接口参数传递错误。
📌 关键代码:
params.put("mcpName", mcpName);serviceName: serviceName || ',🔍 2. 版本控制功能缺乏跨模块一致性验证
McpMaintainerService.java新增了支持版本号的getMcpServerDetail方法,但McpHandler.java的deleteMcpServer方法仍仅依赖名称和命名空间删除服务器。需确保版本控制逻辑在创建/更新/删除等操作中保持一致,否则可能导致版本隔离失效或误删问题。
📌 关键代码:
public McpServerDetailInfo getMcpServerDetail(String mcpName, String version)@param mcpId id of the mcp server🔍 3. 已废弃API端点未清理依赖
McpRegistryController.java删除了publishMcpServer接口,但未检查其他模块是否存在对该端点的引用。需确认console-ui或其他客户端是否仍有调用该接口的代码,否则可能导致404错误。
📌 关键代码:
该方法已被删除🔍 4. 分页参数验证未全局覆盖
在ListServerForm.java中新增MAX_LIST_SIZE验证,但McpServerIndex.java的searchMcpServerByName方法参数limit未在接口定义中明确最大值限制。需确保所有分页接口参数均遵循统一限制规则,否则可能引发后端数据溢出风险。
📌 关键代码:
if (limit > Constants.MAX_LIST_SIZE)@param limit list limit🔍 5. 版本控制功能测试覆盖不足
新增的版本控制功能(如McpMaintainerService.getDetailByVersion)缺少对应的单元测试案例,需补充针对版本参数不同场景(指定版本/未指定版本/无效版本)的测试用例,确保版本隔离逻辑正确。
🔍 6. 端点配置构建存在重复逻辑
McpDetail.js中构建endpoints的逻辑与PlainMcpServerIndex.java中的配置映射存在相似性,建议将endpoint组合规则提取为公共工具类,避免代码重复和维护成本增加。
📌 关键代码:
const endpoint = item.address + item.port + item.pathprivate Page<ConfigInfo> searchMcpServers(String namespace, String serverName, String search, int limit)💡 小贴士
与 lingma-agents 交流的方式
📜 直接回复评论
直接回复本条评论,lingma-agents 将自动处理您的请求。例如:
-
在当前代码中添加详细的注释说明。
-
请详细介绍一下你说的 LRU 改造方案,并使用伪代码加以说明。
📜 在代码行处标记
在文件的特定位置创建评论并 @lingma-agents。例如:
-
@Lingma-Agent 分析这个方法的性能瓶颈并提供优化建议。
-
@Lingma-Agent 对这个方法生成优化代码。
📜 在讨论中提问
在任何讨论中 @lingma-agents 来获取帮助。例如:
-
@Lingma-Agent 请总结上述讨论并提出解决方案。
-
@Lingma-Agent 请根据讨论内容生成优化代码。
| * @param namespaceId namespaceId | ||
| * @param name mcp server name | ||
| * @param search search mode | ||
| * @param offset offset to list | ||
| * @param limit list limit |
There was a problem hiding this comment.
方法注释参数顺序与实际参数不一致
🟡 Major | 🧹 Code Smells
📋 问题详情
searchMcpServerByName方法的注释未包含新增的search、offset、limit参数,导致文档与代码不一致。这会误导开发者理解方法参数,影响代码可维护性。
💡 解决方案
需要将新增的参数在注释中按顺序正确描述:
- * @param namespaceId namespaceId
- * @param name mcp server name
- * @param search search mode
- * @param offset offset to list
- * @param limit list limit
+ * @param namespaceId 命名空间ID
+ * @param name 服务名称
+ * @param search 搜索模式
+ * @param offset 分页起始偏移量
+ * @param limit 每页最大数量committable_suggestion_code: |
/**
- Search Mcp server by name and namespaceId.
- @param namespaceId 命名空间ID
- @param name 服务名称
- @param search 搜索模式
- @param offset 分页起始偏移量
- @param limit 每页最大数量
- @return MCP Server Summery
*/
您的反馈对我们很重要!(建议右键在新标签页中打开以下链接)
| }); | ||
| } | ||
|
|
||
| console.log(result.data); |
* Feat support mcp registry api (#13376) * Support tag fuzzy search (#13387) * support tag fuzzy search * support tag fuzzy search * Merge pull request #13391 from luoxiner/support-mcp-multi-version Feat Support Mcp Registry * Add copyright for mcp-adapter pom. * Support version in ai maintainer sdk and fix some errors when build (#13401) * add version for ai maintainer sdk and support display mcp server config * fix pmd errors * fix empty endpoint * remote publish api * fix tag fuzzy search sql unit test (#13402) * Fix unit test. --------- Co-authored-by: Xin Luo <65529035+luoxiner@users.noreply.github.com> Co-authored-by: Sunrisea <49605583+Sunrisea@users.noreply.github.com> Co-authored-by: luoxin.luo <luoxin.luo@alibaba-inc.com>
Please do not create a Pull Request without creating an issue first.
What is the purpose of the change
Support version in ai maintainer sdk.
Support display mcp server config.
Fix PMD errors.
Brief changelog
XX
Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily:
[ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.mvn -B clean package apache-rat:check findbugs:findbugs -Dmaven.test.skip=trueto make sure basic checks pass. Runmvn clean install -DskipITsto make sure unit-test pass. Runmvn clean test-compile failsafe:integration-testto make sure integration-test pass.