anov-dev-copilot-mcp
v0.14.0
Published
MCP Server for ANOV-DEV Copilot
Readme
anov-dev-copilot-mcp
anov-dev-copilot-mcp 是 ANOV-DEV Copilot 的核心引擎层,它是一个完全符合 Model Context Protocol (MCP) 标准的服务端实现。
它的主要作用是作为“桥梁”挂载在 AI Agent(如 Antigravity、Claude Code、Cursor)上,赋予 AI 主动创建云端项目、获取工程模板、解压与校验工程、分析布局防重叠、解析 MasterGo 设计稿 1:1 高保真还原以及将矢量组件注入 Vue 3 代码落盘的完整动态能力。
环境变量与配置
启动 MCP 服务需要通过环境变量或编辑器 MCP 配置传入鉴权信息。推荐使用脚手架 CLI 一键注入,或在编辑器配置的 env 字段中显式配置:
| 变量名 | 必填 | 说明 |
| :--- | :---: | :--- |
| API_BASE_URL | 是 | ANOV 接口服务的 Base URL(如 http://192.168.11.164:9999 或 https://api.anov.dev) |
| ACCESS_TICKET | 是 | 调用 ANOV 平台接口的访问令牌(Access Ticket) |
| MG_MCP_TOKEN | 否 | MasterGo 访问令牌(用于 MasterGo 设计稿 1:1 还原与矢量图层提取) |
[!TIP] 如何获取 MasterGo 访问令牌 (
MG_MCP_TOKEN):
- 登录 mastergo.com
- 点击右上角个人头像,进入「个人设置」→「安全设置」→「个人访问令牌」
- 点击「生成新令牌」并复制即可。
注:若本地已有 MasterGo DSL 文件,调用
anov-mastergo-restore时指定dslPath即可离线还原,无需配置 Token。
提供的工具 (Tools)
该 MCP Server 向 AI 注册了以下 9 个核心工具:
1. anov-list-versions
列出 ANOV-DEV 框架的最新可用版本列表。
- 参数:无
- 返回:最新框架的
name和version信息(JSON) - 接口:
GET /console/v1/devs/demos/v1
2. anov-create-project
在 ANOV 云端创建一个新的可视化大屏项目。
参数:
| 参数名 | 类型 | 必填 | 说明 | | :--- | :--- | :---: | :--- | |
screenName|string| 是 | 大屏名称(2-50 字符) | |frameworkVersion|string| 是 | 要使用的框架版本 | |screenRemark|string| 否 | 大屏描述/备注 | |tenantCode|string| 否 | 租户代码(有默认值) | |deptCode|string| 否 | 部门代码(有默认值) | |screenType|number| 否 | 大屏类型(默认2) | |ueEnabled|boolean| 否 | 是否开启流媒体(默认false) | | (其他 UE 参数) | - | 否 | 流媒体连接数等高级配置 |接口:
POST /console/v1/devs/v1
3. anov-get-latest-project
获取最近创建的大屏项目的 screenKey。
- 参数:无
- 返回:最近项目的
screenKey字符串 - 接口:
GET /console/v1/devs/v1/conditions(按创建时间倒序取第一条)
4. anov-download-template
下载并解压指定大屏项目的工程模板到本地工作区。
参数:
| 参数名 | 类型 | 必填 | 说明 | | :--- | :--- | :---: | :--- | |
screenKey|string| 是 | 目标大屏的唯一标识符 | |targetDir|string| 否 | 解压目标目录(相对工作区根目录,默认".") | |overwrite|boolean| 否 | 是否覆盖已有文件(默认true) |安全机制:内置 Zip-Slip 防护,防止路径穿越攻击。
接口:
GET /console/v1/devs/v1/{screenKey}/download-source
5. anov-check-project
检测指定目录是否为有效的 ANOV-DEV 项目。
参数:
| 参数名 | 类型 | 必填 | 说明 | | :--- | :--- | :---: | :--- | |
projectDir|string| 是 | 待验证的项目根目录的绝对路径 | |requireOmniUi|boolean| 否 | 是否同时验证@anov/omni-ui组件库已安装(默认false) |检测逻辑:判断目录下是否存在
package.json,且其中包含至少一个@anov/前缀的依赖包。
6. anov-validate-layout
校验 ANOV-DEV 页面中的绝对定位配置,检测组件重叠与对齐偏差。
参数:
| 参数名 | 类型 | 必填 | 说明 | | :--- | :--- | :---: | :--- | |
projectDir|string| 是 | 项目根目录的绝对路径(包含src/与package.json) | |route|string| 否 | 待校验的页面路由名称(若省略则扫描src/pages/下所有页面) |检测能力:
- 自动识别并排除全屏背景/地图等底层组件;
- 智能识别容器嵌套(Container Containment)并建立父子关系;
- 精准计算非容器组件间的碰撞重叠区域(坐标、尺寸与重叠面积);
- 智能告警同列组件微小像素偏差(20px 以内的对齐瑕疵)。
7. anov-mastergo-restore
MasterGo 设计稿 1:1 高保真 HTML 还原、LLM 专用轻量模板、独立 SVG 雪碧图生成与静态资源离线化工具。
参数:
| 参数名 | 类型 | 必填 | 说明 | | :--- | :--- | :---: | :--- | |
url|string| 否 | MasterGo 设计稿链接(支持常规 URL 或/goto/短链) | |fileId|string| 否 | MasterGo 文件 ID(当未传url时与layerId配合必填) | |layerId|string| 否 | MasterGo 画布/图层 ID | |sourceLayerId|string| 否 | MasterGo 源图层 ID | |token|string| 否 | MasterGo 访问令牌(若省略则自动读取环境变量MG_MCP_TOKEN) | |outputDir|string| 否 | 产物输出目录(默认"mg-resources") | |skipImages|boolean| 否 | 是否跳过图片下载(默认false) | |concurrency|number| 否 | 并发下载数(默认4) | |dslPath|string| 否 | 本地已有 DSL JSON 文件路径(提供时执行 100% 离线还原) | |mode|string| 否 | 产物模式:"both"(默认) /"llm"/"full"|核心产物:
reference.html:1:1 像素级高保真测量参考稿(仅供人工浏览器量测,注意:避免直接作为上下文输入)reference.llm.html:专供 LLM 消费的极简模板(包含@@SVG:{key}@@占位符)icons-sprite.svg:独立 SVG 雪碧图(聚合全部去重图标符号)svg_map.json:净化后的矢量图标映射字典(供anov-apply-design注入)assets/images/:全离线化的高清图片素材与路径自动重写mastergo_dsl_full.json:全量单树 DSL 数据
8. anov-slice-design
根据切片计划机械执行 reference.llm.html 的 DOM 切割,提取各 Part 独立子树、归一化坐标、收集 SVG 占位符与文本清单。
参数:
| 参数名 | 类型 | 必填 | 说明 | | :--- | :--- | :---: | :--- | |
slicingPlan|object \| string| 否 | 结构化切片计划对象或 JSON 字符串(含 header、commonComps 及 parts 数组) | |planPath|string| 否 |slicing-plan.json磁盘文件路径(与slicingPlan二选一) | |htmlPath|string| 否 |reference.llm.html路径(如src/pages/[route]/mg-resources/reference.llm.html) | |htmlContent|string| 否 | 直接传入的 HTML 字符串内容(可选) | |outputDir|string| 否 | 切片产物输出目录(默认与htmlPath所在目录一致) |核心产物:
slices/[partId].html:各 Part 独立的极简 HTML 切片文件,绝对坐标已基于各 Part 自身 Bounding Box 归一化。slices-manifest.json:切片元数据清单(包含每个切片的尺寸、坐标、SVG 占位符列表、抽取文本清单与图表类型)。
9. anov-apply-design
将 MasterGo 矢量图标净化后注入 Vue 3 SFC 单文件组件并物理落盘到工程目录。
参数:
| 参数名 | 类型 | 必填 | 说明 | | :--- | :--- | :---: | :--- | |
code|string| 是 | 包含@@SVG:{key}@@占位符的 Vue 3 SFC 组件代码 | |outputFilePath|string| 是 | 目标输出文件路径(如src/pages/overview/comps/LeftTop.vue) | |svgMapPath|string| 否 |svg_map.json文件路径(省略时自动在目标目录及mg-resources/中搜索) | |svgMap|object| 否 | 直接传入的 SVG 映射字典对象 | |overwrite|boolean| 否 | 是否覆盖目标文件(默认true) |功能:精准将
reference.llm.html阶段生成的@@SVG:{key}@@占位符替换为真实的净化内联 SVG,并自动写入磁盘对应文件。
提供的提示词 (Prompts)
anov-project-init
引导 AI 按标准流程完成 ANOV 大屏项目的初始化与模板下载。
标准工作流:
- 调用
anov-list-versions获取最新框架版本 - 调用
anov-create-project创建大屏项目 - 调用
anov-get-latest-project获取新项目的screenKey - 向用户确认后再执行下载(安全防护)
- 调用
anov-download-template下载并解压到工作区
在 AI 编辑器中集成
方式一:使用 CLI 一键配置(推荐)
通过配套的脚手架工具 anov-dev-copilot-cli,可自动检测并为 Cursor、Claude Code、Antigravity 一键写入配置:
# 交互式引导配置(自动提示输入 API URL、Ticket 及可选的 MasterGo Token)
npx anov-dev-copilot-cli setup
# 或通过命令行参数静默配置
npx anov-dev-copilot-cli setup-mcp \
--api-url "http://192.168.11.164:9999" \
--ticket "你的_ANOV_ACCESS_TICKET" \
--mg-mcp-token "你的_MG_MCP_TOKEN" \
-y连通性测试与环境诊断命令
配置完成后,可随时使用 CLI 验证配置是否生效:
# 自动检测并测试当前有效配置
npx anov-dev-copilot-cli doctor
# 或使用等效别名:check / test / list-version
npx anov-dev-copilot-cli check
# 显式测试指定 Agent 的全局配置
npx anov-dev-copilot-cli doctor antigravity
npx anov-dev-copilot-cli check -e claude
npx anov-dev-copilot-cli test -a cursor方式二:手动配置
若需要手动添加,可在对应编辑器的配置文件中配置 mcpServers:
| 编辑器 | 配置文件路径 |
| :--- | :--- |
| Antigravity | ~/.gemini/config/mcp_config.json |
| Cursor | ~/.cursor/mcp.json |
| Claude Code | ~/.claude.json |
| 项目工作区本地 | .mcp.json 或 mcp_config.json |
配置示例(npx 模式,推荐):
{
"mcpServers": {
"anov-dev-copilot": {
"command": "npx",
"args": ["-y", "anov-dev-copilot-mcp"],
"env": {
"API_BASE_URL": "http://192.168.11.164:9999",
"ACCESS_TICKET": "你的_ANOV_ACCESS_TICKET",
"MG_MCP_TOKEN": "你的_MG_MCP_TOKEN(可选)"
}
}
}
}本地开发调试模式:
{
"mcpServers": {
"anov-dev-copilot": {
"command": "node",
"args": ["/绝对路径/到/anov-dev-mcp/packages/mcp/dist/index.js"],
"env": {
"API_BASE_URL": "http://192.168.11.164:9999",
"ACCESS_TICKET": "你的_ANOV_ACCESS_TICKET",
"MG_MCP_TOKEN": "你的_MG_MCP_TOKEN(可选)"
}
}
}
}[!IMPORTANT] 配置完成后,请务必重启 AI 编辑器或在 MCP 面板中重载 (Reload) 该 MCP Server,以使新配置生效。
开发与构建
# 在 packages/mcp 目录下执行编译构建
pnpm build
# 启动热更新监视模式
pnpm dev
# 运行单元测试
pnpm test