跳到主要内容

Skill与MCP集成

核对日期:2026-08-26。

1. 定义与边界

MCP Server 暴露原子能力:tools、resources、prompts。Skill 把其中一类任务收成步骤、完成定义和失败停点。

二者不是替代关系:

对象解决什么不解决什么
MCP Tool一次可审计调用任务顺序、何时停、如何向用户交代
MCP PromptServer 侧任务简报版本治理、触发评测、权限策略
Skill何时用哪些工具、完成标准新的 RPC;不能扩大工具权限
Host 策略引擎允许 / 审批 / 拒绝任务领域知识

本仓库的对照实现是 frontend-workspace-mcp:它已经注册 Prompt implement-from-designreview-design-fidelity,以及设计稿、契约、诊断工具。项目 Skill 应教 Agent 怎么走完任务,不要再把 README 里的工具清单抄一遍。

协议细节见 ../04-工具调用体系/MCP在Agent中的位置.md。选型见 能力分层与选型.md

2. 为什么重要

接上 MCP 之后,常见失败不是「工具调不通」,而是:

  • 模型在 20+ 个 frontend 工具里乱序试探,把 clear_design_cacherun_design_gate 当同级操作。
  • 把 MCP Prompt 当任务完成:拉了一段英文简报,没有跑对比就声称「还原度没问题」。
  • Skill 再列一遍 schema,和 Server 描述双份漂移。
  • 设计稿认证绕过本机约束,把蓝湖凭据写进 Skill。

Skill 的正确位置是编排:先证据、后实现或走查;门禁不过不得宣称完成。

3. 核心机制

加载顺序:

  1. Host 只把 Skill 的 name + description 放进发现层。
  2. 命中后加载 SKILL.md 正文。
  3. 正文要求调用的工具,必须已经在当前会话的 MCP 清单里;缺失则停,而不是虚构结果。
  4. 写操作仍走策略引擎,与 Skill 是否加载无关。

MCP Prompt 可以当作步骤 0 的简报,不能替代门禁。frontend-workspace-mcp 的 Prompt 明确写了:MCP 不写业务代码,只返回基于证据的实现指引。实现仍由 Agent 在工作区里改文件,变更可审计。

4. 架构模式

4.1 用任务包住 Server,而不是 1:1 绑定

一个 Server 可以支撑多个 Skill:

Skill任务关键工具(按序,不是清单)完成定义
implement-from-design按设计稿实现页面前先取证解析链接 → 设计上下文 → 工作区索引 / 组件 → API 契约有设计上下文与契约结论后才改代码;未取证不得开写
review-design-fidelity对照缓存设计稿走查必要时缓存资产 → 页面诊断 → 对比 → 评审 workflow → 门禁run_id / 报告路径;未跑对比不得声称通过

不要为每个 tool 做一个 Skill。也不要做一个 frontend-workspace-god 覆盖实现、走查、运维排障。

4.2 本仓库落地约束

frontend-workspace-mcp 的设计稿链路有硬边界,Skill 必须复述,不能改口径:

  • 蓝湖只走本机 lanhuMcpUrl / LANHU_MCP_URL,且仅允许 http://127.0.0.1:* / http://localhost:*
  • 对比与报告写在 .mcp-cache/frontend/,不把业务源码当缓存目录。
  • compare_page_to_design 给的是可解释差异(尺寸、文本、颜色、布局,以及可选 PNG image diff),不是设计工具级像素审稿。
  • 缺截图、非法 PNG 会带 reasonCode / fallbackAction;Skill 应要求 Agent 把降级写进结论,而不是假装对比完整。
  • v 系列能力不执行业务代码、不自动改业务源码。改代码是 Agent 侧动作,须走仓库权限与 HITL。

4.3 Prompt 与 Skill 分工

MCP Prompt implement-from-design
= Server 提供的短简报(工作区、设计 URL、pageId、路由)

项目 Skill implement-from-design
= Host 侧:何时触发、何时不要触发、步骤、停点、完成定义、禁止事项

若 Host 能拉取 MCP Prompt,可在步骤一开始读取,作为参数备忘。冲突时以 Skill 的完成定义和本仓库安全边界为准。

5. 工程实现

5.1 步骤状态,而不是「调过就算」

type DesignTaskStep =
| "resolve_link"
| "design_context"
| "workspace_index"
| "api_contract"
| "compare"
| "gate";

interface SkillRunState {
skillName: string;
skillVersion: string;
completedSteps: readonly DesignTaskStep[];
evidenceRefs: readonly string[];
blockedReason?: string;
}

function canClaimFidelityPass(state: SkillRunState): boolean {
return state.completedSteps.includes("compare") || state.completedSteps.includes("gate");
}

前端工具卡仍按 toolCallId 展示,见 ../18-Agent前端与交互/流式Tool-Use与前端状态.md。Skill 不发明第二套事件。

5.2 缺失 MCP 时的失败语义

skill: review-design-fidelity
required-mcp: frontend-workspace
on-missing-server: stop
user-message: 未连接 frontend-workspace MCP,无法做设计稿对比。不要用肉眼描述代替 compare_page_to_design。

「看起来差不多」不是合法降级。合法降级只有工具返回的 reasonCode

5.3 资源只读

frontend://design/*frontend://reports/* 来自缓存。Skill 可以让 Agent 读 resource 核对报告,但不得把 resource 内容当授权去改生产配置。

6. 生产实践

实践说明
Skill 写顺序和停点「先证据后实现」;门禁 fail 则列出 findings,不改口
工具描述留在 Serverschema 变更只改 MCP,Skill 只点名
本机凭据不进 MarkdownSkill 只写「使用环境变量名」,不写 URL 默认值里的密钥
mock provider 标明无蓝湖时可用 mock 跑通流程,结论必须标注 mock,不得当真实走查
与 HITL 对齐改业务文件、清缓存等写操作仍审批,见 ../18-Agent前端与交互/HITL交互界面.md

仓库内对应项目 Skill:

  • .cursor/skills/implement-from-design/SKILL.md
  • .cursor/skills/review-design-fidelity/SKILL.md

7. 常见反模式

反模式表现后果修正
把 Server 当任务接上 MCP 就宣称「能做设计走查」乱序调用、无完成定义用 Skill 收步骤
Skill 复制工具表README 工具列表贴进 SKILL.md双份漂移只写任务步骤
Prompt = 完成只拉 review-design-fidelity Prompt无对比报告Prompt 作简报,工具出证据
远程蓝湖Skill 教 Agent 填公网 MCP URL凭据出本机维持 localhost 约束
无图硬说通过缺截图仍 pass虚假门禁输出 reasonCode,gate 按阈值 fail/skip
MCP 直接改源码把对比工具理解成自动修复不可审计写入Server 只出证据;改代码走 Agent + 权限

8. 评测方法

指标说明
Step Order Accuracy实现类任务是否在改代码前取到设计上下文
Evidence Before Claim声称通过前是否有 compare / gate 结果
MCP Absence Handling未连接 Server 时是否停止而非编造
Secret HygieneSkill 与 trace 中是否出现蓝湖 token
Prompt/Skill DriftMCP Prompt 与 SKILL.md 完成定义是否冲突

样本应覆盖:有设计链接、只有 OpenAPI、缺截图、mock provider、MCP 未启动。

9. 安全与治理

  • Skill 引用 MCP 不等于对该用户开放全部 tools;allowlist 仍在 Host。
  • clear_design_cache 等破坏性工具不应出现在走查 Skill 的默认步骤里。
  • 工具返回按不可信内容处理,见 ../04-工具调用体系/Tool-Poisoning与防护.md
  • 设计稿与页面截图可能含业务信息,报告目录纳入数据分级,不把 .mcp-cache 同步进公开文档站点。

10. 权威资料