2026-07-16 UTC+8

流程制定

MCP 开发计划

制定 AoifeLab MCP 子系统完整开发流程:Canonical Spec 契约、Streamable HTTP Server、Registry 发布、UE 引擎翻译与 M0–M6 分阶段路线图。

AoifeLab Web 将渲染知识体系、特性库与 Shader 资产通过 Model Context Protocol 暴露给 Agent 平台,使 AI 能读取结构化数据并指导各引擎内的效果实现。
本文档为 MCP 子系统的完整开发计划,与 渲染验证与引擎落地技术选型 配套。


1. 总体目标

1.1 要解决的问题

当前网站已沉淀渲染知识框架、特性库与 HLSL 参考实现,但这些资产仅供人类浏览。Agent 无法:

  • 按语义检索「透射」特性的输入、通道、参数契约
  • 理解该特性在材质研发管线中的上下游位置
  • 将语言无关的 Spec 翻译为 UE / Unity 等引擎的具体实现步骤

MCP 子系统的目标是打通 网站资产 → Agent 可读协议 → 引擎落地 的自动化链路。

1.2 成功标准

阶段成功标准
MCP 可读Cursor / Claude Desktop 等客户端可连接 /api/mcp,调用 Tool 返回 Canonical Spec
MCP 可发现发布至 MCP Registry,可被下游聚合器搜索
Agent 可指导Agent 凭 Spec + HLSL + 框架上下文,生成 UE Custom HLSL 落地步骤
闭环可验证引擎落地后,结合 RenderDoc MCP 完成抓帧复核

1.3 总体架构

┌─────────────────────────────────────────────────────────────┐
│  网站数据层(唯一真相源)                                      │
│  framework-data · knowledge-data · mcp-feature-specs        │
│  repo-feature-shaders · repo-feature-categories             │
└──────────────────────────┬──────────────────────────────────┘
                           │
┌──────────────────────────▼──────────────────────────────────┐
│  MCP Server(/api/mcp · Streamable HTTP)                     │
│  Resources · Tools · Prompts                                │
└──────────────────────────┬──────────────────────────────────┘
                           │
          ┌────────────────┼────────────────┐
          ▼                ▼                ▼
   MCP Registry      Cursor / Claude    自建 Agent 平台
          │                │                │
          └────────────────┼────────────────┘
                           ▼
┌─────────────────────────────────────────────────────────────┐
│  引擎翻译层(Engine Adapter)                                 │
│  UE(首验)→ Unity → Godot …                                 │
└──────────────────────────┬──────────────────────────────────┘
                           ▼
                    引擎内验证(RenderDoc MCP)

2. 核心设计原则

原则说明
Spec 为契约Canonical Spec 是语言无关的特性定义;MCP 返回 Spec,不返回页面 HTML
数据单源MCP Server 直接读取 lib/,不与页面维护两套内容
能力分层Resources(只读知识)/ Tools(检索与翻译动作)/ Prompts(预置工作流)
验证门控validated 标记控制 MCP 推荐优先级;未验证特性返回 draft 状态
UE 优先首条引擎落地链路面向 UE;HLSL 资产与 translate_to_engine 先适配 UE
渐进暴露先只读检索,再引擎指导,最后 Authoring(写文件 / 触发 Editor 脚本)

3. 数据层设计

3.1 特性规格层(Canonical Spec)

文件: lib/mcp-feature-specs.ts
页面: /tools/mcp/feature-spec
状态: ✅ 初版已完成(Transmission 完整 Spec,其余 draft)

每个特性存一份与语言无关的定义,是 MCP 往各引擎翻译时的契约:

{
  "id": "Transmission",
  "inputs": ["BaseColor", "Normal", "ViewDir", "UV"],
  "channels": {
    "iChannel0": { "role": "environment", "type": "cube|2d" },
    "iChannel1": { "role": "thickness", "channel": "R" },
    "iChannel2": { "role": "absorption", "channel": "RGB" }
  },
  "parameters": {
    "IOR": { "default": 1.45, "range": [1.0, 2.5] },
    "TransmissionWeight": { "default": 1.0, "range": [0, 1] }
  },
  "algorithm": "refract_sample + beer_lambert + schlick_fresnel",
  "validated": true
}

字段说明:

字段类型含义
idstring与渲染特性库 label 一致
inputsstring[]函数 g(Input) 的输入,来自特性依赖层
channelsRecord采样通道语义(role / type / channel)
parametersRecord宿主材质可调参数(default + range)
algorithmstring算法组合标识,与 Shader 语言无关
validatedboolean网站验证通过后打标

规划扩展: 将单一 validated 拆为 algorithmValidated(WebGL 函数验证)与 lookdevValidated(WebGPU 画面验证),与技术选型文档 §4.3 对齐。

3.2 Shader 资产分层

同一 Spec 维护多语言载体:

Canonical Spec(契约)
    ├── glsl   → WebGL 网站预览(渲染特性库,待建)
    ├── wgsl   → WebGPU 网站预览(实验台,待建)
    └── hlsl   → UE MCP 导出(repo-feature-shaders.ts,进行中)

文件映射:

载体文件状态
HLSLlib/repo-feature-shaders.ts✅ Transmission
GLSLlib/feature-shader-glsl.ts❌ 待建
WGSLlib/feature-shader-wgsl.ts❌ 待建

3.3 框架上下文层

文件: lib/framework-data.ts
用途: MCP Tool get_framework_context 返回特性在数据流中的 roleinputsoutputs 上下游节点。

示例:Transmission 属于 rendering-feature 节点,上游为 shading-model-step,下游为 feature-dependency

3.4 知识体系层

文件: lib/knowledge-data.ts
用途: MCP Resource 暴露五大知识体系的节点详情,供 Agent 理解渲染与性能背景。


4. 站点入口(已完成)

入口路径状态
工具首页卡片/tools
导航子菜单工具 → MCP
MCP 介绍页/tools/mcp
特性规则设计/tools/mcp/feature-spec

相关实施记录:


5. MCP Server 设计

5.1 技术选型

维度选型理由
协议MCP 2025-11-25当前稳定规范
传输Streamable HTTP远程 Server 标准方式;适配 Vercel Serverless
SDK@modelcontextprotocol/sdk官方 TypeScript SDK
部署Next.js App Router /api/mcp与网站同域,复用 lib/ 数据
会话无状态(sessionIdGenerator: undefinedVercel 友好;后续可按需加 Redis

5.2 目录规划

Git/
├── app/api/mcp/route.ts          # HTTP 入口(GET / POST / DELETE / OPTIONS)
├── lib/mcp/
│   ├── server.ts                 # McpServer 实例与能力注册
│   ├── tools.ts                  # Tool 定义与 handler
│   ├── resources.ts              # Resource 定义与 handler
│   └── prompts.ts                # Prompt 模板
└── lib/mcp-feature-specs.ts      # 已有:Spec 数据层

5.3 Resources(只读知识)

Agent 通过 URI 读取静态内容,适合上下文自动注入。

URI内容数据源
aoife://feature/{id}特性 Canonical Spec JSONmcp-feature-specs.ts
aoife://feature/{id}/hlslHLSL 参考实现repo-feature-shaders.ts
aoife://framework/{nodeId}框架节点详情 + 上下游framework-data.ts
aoife://knowledge/{systemId}/{nodeId}知识体系节点knowledge-data.ts
aoife://pipeline/flow完整数据流概览framework-data.ts

5.4 Tools(可调用动作)

Agent 主动调用,返回结构化结果。

Tool参数返回优先级
search_featuresquery, category?匹配特性列表(id / detail / validated)P0
get_feature_specidCanonical Spec JSONP0
get_feature_hlslidHLSL 源码或占位说明P0
get_framework_contextnodeId节点 role + inputs/outputs 邻居P1
list_features_by_categorycategory分类下全部特性 Spec 摘要P1
get_validation_checklistid验证项清单(Fresnel / 厚度 / 吸收等)P1
translate_to_engineid, engineUE / Unity 实现步骤与节点映射P2
search_knowledgequery知识体系检索P2

5.5 Prompts(预置工作流)

Prompt参数行为
implement-rendering-featurefeatureName, targetEngine串联:查 Spec → 读 HLSL → 框架上下文 → 引擎步骤 → 验证清单
explain-pipeline-positionfeatureName解释特性在材质研发管线中的位置
compare-featuresfeatureA, featureB对比两个特性的输入、算法与适用场景

5.6 API 路由实现要点

// 概念示意
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"
import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js"

export async function POST(req: Request) {
  const transport = new WebStandardStreamableHTTPServerTransport({
    sessionIdGenerator: undefined,
  })
  const server = createAoifeMcpServer()
  await server.connect(transport)
  return transport.handleRequest(req)
}

注意事项:

  • 导出 GETPOSTDELETEOPTIONS
  • 配置 CORS 以支持浏览器类 Client
  • 错误时返回标准 JSON-RPC 错误格式
  • 生产环境可加 API Key 或 OAuth(P3)

6. Registry 发布与可发现性

6.1 发布流程

  1. 部署 /api/mcp 至生产域名
  2. 编写 server.json
{
  "name": "com.aofielab/rendering-knowledge",
  "version": "1.0.0",
  "description": "渲染与性能一体化知识体系:特性 Spec、HLSL 参考、管线上下文与 UE 落地指导",
  "websiteUrl": "https://你的域名",
  "remotes": [{
    "type": "streamable-http",
    "url": "https://你的域名/api/mcp"
  }]
}
  1. mcp-publisher CLI 发布
  2. 证明命名空间:com.aofielab(DNS TXT)或 io.github.账号(GitHub OAuth)

6.2 客户端配置示例

Cursor(~/.cursor/mcp.json):

{
  "mcpServers": {
    "aofielab": {
      "url": "https://你的域名/api/mcp"
    }
  }
}

6.3 可发现性策略

  • /tools/mcp 接入方式区块补充 Registry 链接与配置片段
  • server.json 描述含关键词:rendering, shader, HLSL, UE5, material feature
  • Registry 是元数据目录;终端用户仍在各客户端手动或经由聚合器添加 MCP

7. 引擎翻译层

7.1 首验引擎:Unreal Engine

阶段集成方式MCP 能力优先级
P0Custom HLSL 节点返回 HLSL 文本 + 参数说明✅ 首选
P1Material Function返回 MF 结构与节点图描述第二阶段
P2Substrate Slab返回 Slab 配置建议后期
Custom Shading Model改引擎源码不做

7.2 translate_to_engine 输出结构(规划)

{
  "engine": "UE5",
  "feature": "Transmission",
  "steps": [
    "创建 Custom HLSL 函数节点,粘贴 get_feature_hlsl 返回的代码",
    "在母材质中暴露 IOR、TransmissionWeight 参数,范围见 Spec",
    "绑定 iChannel0 为 Scene Texture / Cube,iChannel1 为厚度贴图 R"
  ],
  "parameters": { "...": "来自 Spec" },
  "validation": ["掠射角 Fresnel 增强", "厚区 Beer-Lambert 吸收", "薄区保留 BaseColor"]
}

7.3 首条落地链路

网站 Canonical Spec + HLSL(Transmission)
    → MCP get_feature_spec / get_feature_hlsl
    → Agent 生成 UE Custom HLSL 部署步骤
    → 写入 UE 工程 Content/Shaders/Features/
    → LookDev 场景目视确认
    → RenderDoc MCP 抓帧对比(验证闭环)

7.4 扩展引擎(P5)

引擎适配器重点
UnityShader Graph Custom Function / HLSLINCLUDE
Godotvisual shader 或 .gdshader
自研引擎按 Spec 的 algorithm 字段映射内部材质系统

8. 与网站验证闭环的关系

MCP 不替代网站内 GPU 验证,而是读取验证结果:

WebGL 特性库验证(algorithmValidated)
    ↓
Canonical Spec.validated = true
    ↓
MCP 优先推荐 + translate_to_engine
    ↓
UE 落地
    ↓
RenderDoc MCP 引擎内复核
验证层运行时影响 MCP 行为
函数级WebGL / GLSL控制 algorithmValidated
画面级WebGPU / WGSL控制 lookdevValidated
引擎级UE + RenderDocTool 返回的验证清单

9. 实施路线图

阶段总览

阶段名称核心产出依赖
M0站点入口/tools/mcp/tools/mcp/feature-spec
M1MCP Server 骨架/api/mcp + search_features + get_feature_specM0
M2知识暴露扩展Resources + get_feature_hlsl + get_framework_contextM1
M3引擎指导translate_to_engine(UE) + implement-rendering-feature PromptM2
M4Registry 发布server.json + 生产部署 + 客户端文档M1
M5UE Authoring写 HLSL 文件 + Editor Python 脚本(可选)M3
M6跨引擎扩展Unity / Godot 适配器M3

M0 — 站点入口 ✅ 已完成

  • 工具导航子菜单 MCP
  • /tools/mcp 介绍页
  • /tools/mcp/feature-spec 特性规则设计
  • lib/mcp-feature-specs.ts 数据层

M1 — MCP Server 骨架(当前重点)

任务文件说明
安装 SDKpackage.json@modelcontextprotocol/sdk
HTTP 入口app/api/mcp/route.tsStreamable HTTP 无状态
Server 注册lib/mcp/server.tsname / version / capabilities
P0 Toolslib/mcp/tools.tssearch_features, get_feature_spec
本地验证Cursor 连接 localhost:3000/api/mcp 测试

完成标准: Cursor 中调用 get_feature_spec("Transmission") 返回完整 JSON。

M2 — 知识暴露扩展

任务说明
Resources 注册aoife://feature/{id} 等 URI
get_feature_hlsl返回 repo-feature-shaders.ts 内容
get_framework_context返回上下游节点
list_features_by_category按 Optical Transport 等分类列表
补全 Spec逐特性完善 fullSpecs(与 Shader 资产计划同步)

完成标准: Agent 能一次性获取 Transmission 的 Spec + HLSL + 管线位置。

M3 — 引擎指导

任务说明
translate_to_engine先实现 UE5 输出模板
get_validation_checklist按特性生成验证项
implement-rendering-feature Prompt串联完整工作流
MCP 页第二、三张卡片链到管线上下文 / 引擎指导子页(可选)

完成标准: Agent 凭 MCP 输出可生成 UE Custom HLSL 落地文档。

M4 — Registry 发布

任务说明
生产部署/api/mcp 公网可访问
server.json填写 remotes URL
DNS / GitHub 验证命名空间所有权
站点文档更新/tools/mcp 接入配置可复制

完成标准: Registry API 可搜索到 com.aofielab/rendering-knowledge

M5 — UE Authoring(可选,高权限)

任务说明
写文件 Tooldeploy_hlsl_to_ue(需本地路径参数)
Editor 脚本Python / 命令行触发材质更新
安全门控仅 elicitation 确认后执行写操作

M6 — 跨引擎扩展

  • Unity Shader Graph 适配
  • Godot 适配
  • 各引擎 translate_to_engine 分支

10. 代码与页面对照表

模块路径 / 文件当前状态MCP 目标状态
特性规格lib/mcp-feature-specs.ts✅ 初版补全各特性 + 双验证状态
HLSL 资产lib/repo-feature-shaders.ts✅ Transmission逐特性补充,MCP 可读
MCP Serverapp/api/mcp/route.ts❌ 待建Streamable HTTP 端点
MCP 工具lib/mcp/tools.ts❌ 待建P0 Tools
MCP 资源lib/mcp/resources.ts❌ 待建URI 资源
MCP 介绍app/tools/mcp/page.tsx补充 Registry 配置
规则设计app/tools/mcp/feature-spec/page.tsx与 Spec 数据同步
框架数据lib/framework-data.tsMCP 上下文源
知识数据lib/knowledge-data.tsMCP Resource 源

11. 风险与约束

风险缓解
Serverless 冷启动延迟无状态 + 轻量 Tool;避免大文件内联
Spec 与 Shader 不同步Spec 为唯一真相源;Shader 从 Spec 注释生成
引擎翻译质量不稳定输出结构化步骤 + 验证清单,而非保证可编译
Registry 预览期变更锁定 v0.1 API;server.json 版本化管理
写文件安全风险Authoring 放 M5,需用户确认(elicitation)

12. 与其他子系统协作

子系统协作方式
渲染特性库 WebGL 验证algorithmValidated 回写 Spec
实验台 WebGPU 验证lookdevValidated 回写 Spec
Shader 资产计划每新增 HLSL,get_feature_hlsl 自动覆盖
RenderDoc MCP引擎落地后的抓帧验证
技术选型文档双运行时、UE 首验、Spec 契约保持一致

13. 相关文档


修订记录

日期说明
2026-07-16初版:完整 MCP 开发计划,含架构、数据层、Server 设计、Registry、引擎翻译与 M0–M6 路线图