节点在线、应用在线、配置在线使用令牌查询
|
# Specification Quality Checklist: MCP HTTP æœåŠ¡
**Purpose**: éªŒè¯ spec 完整性与质é‡ï¼Œç¡®ä¿è¿›å…¥è§„划阶段å‰è§„æ ¼å°±ç»ª
**Created**: 2026-07-16
**Updated**: 2026-07-16(补充审视:search_resources æå‡ä¸ºå·¥å…· + 补充 6 个è¿ç»´/审计 action → 5 工具 + 27 action)
**Feature**: [spec.md](/NewLife/Stardust/Blob/master/.trae/specs/add-mcp-feature/checklists/./spec.md)
## Content Quality
- [x] æ— å®žçŽ°ç»†èŠ‚ï¼ˆè¯è¨€ã€æ¡†æž¶ã€API 细节)
- [x] èšç„¦ç”¨æˆ·ä»·å€¼ä¸Žä¸šåŠ¡éœ€æ±‚
- [x] é¢å‘éžæŠ€æœ¯åˆ©ç›Šç›¸å…³è€…å¯è¯»
- [x] æ‰€æœ‰å¿…å¡«ç« èŠ‚å·²å®Œæˆ
## Requirement Completeness
- [x] æ— [NEEDS CLARIFICATION] æ ‡è®°æ®‹ç•™
- [x] éœ€æ±‚å¯æµ‹è¯•ä¸”æ— æ§ä¹‰
- [x] æˆåŠŸæ ‡å‡†å¯åº¦é‡
- [x] æˆåŠŸæ ‡å‡†ä¸ŽæŠ€æœ¯æ— å…³ï¼ˆæ— å®žçŽ°ç»†èŠ‚ï¼‰
- [x] 所有验收场景已定义(9 个场景覆盖:LLM 接入/查询/写æ“作/æœç´¢/Token 创建/ç¦ç”¨/动作过滤/过期/扩展)
- [x] 边缘情况已识别(Token 过期ã€Token ç¦ç”¨ã€èµ„æºæœªæŽˆæƒã€åŠ¨ä½œè¢«ç¦ç”¨ã€é—´æŽ¥èµ„æºæ ¡éªŒã€å¤šèµ„æºåŒæ—¶æ ¡éªŒï¼‰
- [x] èŒƒå›´å·²æ˜Žç¡®ç•Œå®šï¼ˆå« Out of Scope)
- [x] ä¾èµ–与å‡è®¾å·²è¯†åˆ«
## Clarify 会è¯å†³è®®ï¼ˆ2026-07-16)
通过 5 个高影å“é—®é¢˜å®Œæˆæ¾„清,关键决议:
1. **工具结构**:4 个 MCP 工具 = `list_authorized_resources` + `get_resource` + `list_actions` + `invoke_action`。`list_actions` 解决了"LLM 如何知é“能调什么"的关键缺å£
2. **扩展机制**:纯代ç 驱动(实现 `IMcpAction` 接å£ï¼Œåå°„è‡ªåŠ¨æ³¨å†Œï¼Œæ— DB é…置表)
3. **资æºç±»åž‹**:`get_resource` æ”¯æŒ 6 ç±»æ ¸å¿ƒï¼ˆproject/node/app/deploy/pipeline/service),其余通过 action 间接访问
4. **æŽˆæƒæ¨¡åž‹**ï¼šä»…æ¡†æž¶å±‚ç»Ÿä¸€æ ¡éªŒï¼ˆaction 声明 `RequiredResource`,框架æå–èµ„æº ID æ ¡éªŒï¼Œaction 内ä¸å†æ ¡éªŒï¼‰
5. **首批动作**:精简到 22 个高频 action(4+4+2+7+2+2+1),补充 `search_resources` 和 `deploy_list_nodes`
## 补充审视决议(2026-07-16)
在 22 action åŸºç¡€ä¸Šé‡æ–°å®¡è§†å·¥å…·è¾¹ç•Œä¸Žè¿ç»´è¦†ç›–度:
1. **search_resources æå‡ä¸ºç¬¬ 5 个 MCP 工具**:与 `get_resource` å½¢æˆ"æŒ‰å…³é”®å—æœç´¢â†’按 ID 获å–"的查询原è¯å¯¹ï¼ŒLLM 工作æµè¯ä¹‰ä¸€è‡´
2. **补充 get_audit_log action**(system 模å—):LLM 自çœç”¨ï¼ŒæŸ¥å½“å‰ Token 最近的调用记录,便于多轮对è¯å›žé¡¾ä¸Šä¸‹æ–‡
3. **补充 5 个è¿ç»´ action**:
- `app_restart` / `app_stop` / `app_start`(app 模å—):应用生命周期控制,通过 `app_send_command` 下å‘对应命令实现
- `deploy_compile`(deploy 模å—):仅编译ä¸éƒ¨ç½²ï¼Œå¯¹åº” `DeployService.Compile`
- `pipeline_cancel`(deploy 模å—ï¼‰ï¼šå–æ¶ˆæ£åœ¨è¿è¡Œçš„æµæ°´çº¿
4. **最终规模**:5 个 MCP 工具 + 27 个 action(4+7+2+9+2+2+1)
## Feature Readiness
- [x] æ‰€æœ‰åŠŸèƒ½éœ€æ±‚æœ‰æ˜Žç¡®éªŒæ”¶æ ‡å‡†
- [x] ç”¨æˆ·åœºæ™¯è¦†ç›–ä¸»è¦æµç¨‹ï¼ˆå«ä»£ç 扩展场景)
- [x] 功能满足æˆåŠŸæ ‡å‡†ä¸å®šä¹‰çš„å¯åº¦é‡ç»“æžœ
- [x] è§„æ ¼ä¸æ— 实现细节泄æ¼
- [x] 5 工具 + 27 action è¾¹ç•Œæ¸…æ™°ï¼Œæ— é‡å
- [x] èµ„æºæŽˆæƒæ ¡éªŒæœºåˆ¶æ˜Žç¡®ï¼ˆç›´æŽ¥/间接/多资æº/列表过滤)
- [x] 扩展机制定义清晰(开å‘è€…æ·»åŠ å®žçŽ°ç±»å³å¯æš´éœ²æ–°åŠ¨ä½œï¼‰
- [x] `search_resources` 与 `get_resource` å½¢æˆæŸ¥è¯¢åŽŸè¯å¯¹ï¼Œå·¥å…·èŒè´£æ¸…æ™°
- [x] è¿ç»´ action 覆盖应用生命周期(restart/stop/start)+ 编译(compile)+ æµæ°´çº¿å–消(cancel)
## Notes
### 关键设计调整(基于 clarify 会è¯ï¼‰
1. **从 31 个工具收敛为 4 个工具 + 22 个 action**:é¿å…工具列表臃肿,LLM 通过 `list_actions` 自å‘现å¯ç”¨åŠ¨ä½œåŠå‚æ•° schema
2. **代ç 驱动扩展机制**ï¼šæ— DB é…置表,开å‘è€…æ·»åŠ `IMcpAction` 实现类å³å¯æš´éœ²æ–°åŠ¨ä½œï¼Œç¬¦åˆ Stardust çŽ°æœ‰é£Žæ ¼
3. **框架层统一授æƒ**:action ä»…åšä¸šåŠ¡åˆæ³•æ€§æ ¡éªŒï¼Œèµ„æºæŽˆæƒæ ¡éªŒç»Ÿä¸€ç”± `McpService` 框架层完æˆ
4. **é—´æŽ¥èµ„æºæ ¡éªŒ**:通过 `ResourceRequirement.Indirect + IndirectEntity` å£°æ˜Žï¼Œæ¡†æž¶å±‚è‡ªåŠ¨åæŸ¥ï¼ˆå¦‚ deploy_id → AppDeploy.ProjectId)
### ä¿ç•™çš„设计
- `EnableMcp` 默认 `false`
- 独立 `McpToken` + `McpTokenResource` ä¸¤å¼ è¡¨
- ä¸‰ç±»èµ„æº OR 关系(Project/Node/App)
- `IsAll=true` é€šé…æŽˆæƒ
- `McpAudit` 审计表
### 待规划阶段处ç†
- `IMcpAction` 接å£çš„具体实现细节(基类设计ã€ä¾èµ–注入方å¼ã€åå°„æ‰«ææœºåˆ¶ï¼‰
- `ResourceRequirement` çš„é—´æŽ¥æŸ¥æ‰¾å®žçŽ°ï¼ˆå¦‚ä½•æ ¹æ® `IndirectEntity` åæŸ¥ ProjectId/AppId)
- `InputSchema` 的具体 JSON Schema 结构定义
- `McpService` 的动作注册时åºä¸Žå¹¶å‘安全
- 4 个 MCP 工具的具体实现结构
|