Files
JY1.0/docs/JY1.0-MCP服务设计文档.md

23 KiB
Raw Blame History

JY1.0 项目结构、功能全景与 MCP 服务设计文档

1. 文档目标

本文档用于指导为「景耀 JY1.0」MES 前端项目创建配套 MCP 服务,使 AI 助手能够安全、可控地理解项目结构、查询业务功能、定位页面/API、生成代码建议、辅助排障并在授权范围内调用项目相关工具。

本文档覆盖:

  • 当前前端项目结构与技术栈。
  • 现有业务功能模块全景。
  • 前端与 ASP.NET .ashx 后端的通信规范。
  • MCP 服务的资源、工具、提示词、权限和数据模型设计。
  • MCP 服务的实施路线、部署方式和验收标准。

2. 项目概述

JY1.0 是江苏高精机械设备有限公司使用的制造执行系统前端,基于 Vue 2 和 Element UI 构建,后端以 ASP.NET 通用处理程序 .ashx 暴露统一入口。系统覆盖销售、基础资料、技术、精工车间、装配、采购、仓储、设备、可视化等制造业务。

项目特点:

  • 前端为单页应用,基于 vue-element-admin 改造。
  • 运行时路由主要由后端菜单数据动态注入。
  • 业务请求统一 POST 到 MESCommonBase.ashx 一类端点。
  • 业务字段大量使用中文数据库字段名。
  • 页面以 Element UI 表单、筛选栏、表格、弹窗、分页为主。
  • 文件上传下载、Excel 导出、图片/PDF 查看属于重要业务能力。

3. 技术栈

类别 技术
框架 Vue 2.5.17
路由 Vue Router 3.0.7
状态 Vuex 3.0.1
UI Element UI 2.13
HTTP Axios 0.18
图表 ECharts 4
构建 Webpack 4
样式 SCSS、Stylus
文档/导出 xlsx、xlsx-style、FileSaver、jsPDF、html2canvas、docxtemplater
鉴权存储 js-cookie
富文本 TinyMCE 4.7.5
预览 v-viewer

约束:

  • 不使用 Vue 3。
  • 不使用 TypeScript。
  • 不使用 Composition API。
  • 业务页面保持 Vue 2 Options API 风格。
  • 请求封装沿用现有 CreateDataExecDatabasegetTable 等全局方法。

4. 项目目录结构

根目录主要内容:

路径 说明
src/ 前端源码
src/views/ 页面视图,按业务模块组织
src/api/ API 函数,部分新页面直接在视图内调用 CreateData
src/utils/ 请求封装、CRUD 工具、鉴权、通用方法
src/router/ 静态路由与动态路由生成
src/store/ Vuex 模块
src/components/ 通用组件
src/icons/svg/ SVG 图标
src/styles/ 全局样式
static/config.js 服务地址、上传下载地址、WebSocket 地址
build/config/ Webpack 构建配置
dist/dist.zipdist.7z 构建产物

src/views 已识别的业务目录:

模块目录 功能定位
SalesManagement 销售、合同、订单、发货、售后、统计分析
BasicData 基础资料、人员、角色、菜单、工艺、班次、日历、物料
TechnologyCenter 技术中心、BOM、图纸、物料查询、图纸确认
SeikoWorkshop 精工车间、工艺制定、生产计划、派工、执行、质检、追溯
AssemblyManagement 装配任务、装配执行、领料、补货、滑台/专机装配
PurchasingManagement 采购订单、到货通知、供应商、外协采购查询
WarehouseManagement 仓储、入库、出库、库存、盘点、调拨、补货、库位
DeviceManagement 设备状态、点检、维修、实时监控、能耗、异常原因
ManufacturingCenter 制造中心相关页面
WarehouseVisualization 仓库可视化
dashboard 首页仪表盘
login 登录页
layout 主框架、导航、侧边栏、标签页

5. 业务功能全景

5.1 登录、权限与菜单

核心文件:

  • src/api/login.js
  • src/store/modules/user.js
  • src/store/modules/permission.js
  • src/router/index.js
  • src/router/getRouter.js
  • src/permission.js

功能:

  • 用户名密码登录。
  • Cookie 保存 token、用户姓名、人员流水号、工号等。
  • 登录后获取用户信息和角色菜单。
  • 后端返回菜单数据,前端按 pid 递归构建路由。
  • 动态组件路径映射到 src/views 下的 Vue 文件。
  • 路由 meta.title 为中文标题,meta.icon 对应 src/icons/svg 文件。

动态路由核心模式:

component: () => import(`@/views${data[i].component}`)

5.2 统一请求机制

核心文件:

  • src/utils/request.js
  • src/utils/curd.js
  • static/config.js

请求入口:

  • Axios baseURL 来自 static/config.jsrequest_config
  • 业务请求 url 通常为空字符串。
  • 由后端统一入口根据 name 字段路由到存储过程或 SQL 逻辑。

标准请求字段:

字段 说明
type 操作类型,常见为 1 查询、2 增删改、7 批量,也存在项目内扩展值如 11122001
name 后端过程名、业务路由名或特殊 SQL 字符串
param 参数,旧 API 多为 key=value&key2=value2,新全局方法多为参数数组 JSON 字符串
pageSize 分页大小
pageList 当前页
UserID 当前用户,来自 Cookie
ModularID 当前路由路径

全局工具:

方法 用途
CreateData(type, name, data, pageSize, pageList) 构建后端请求参数
ExecDatabase(num) 向主服务发送 POST
ExecDatabase1(num) 向备用服务发送 POST
getTable(requestData, param, e) 分页表格查询并格式化日期
getData(requestData, carrier, param) 普通查询
getSelect(requestData, select, carrier, param) 下拉框查询
addForm(form, callback) 打开新增表单并重置
editForm(row, form, callback) 行数据填充到编辑表单
addTable(...) 新增表格行
editTable(...) 编辑表格行
deleteRow(...) 删除表格行
exportExcel_NPOI(param) 触发后端 NPOI Excel 导出
setColumnWidth(str) 按中文字段名设置表格列宽

5.3 基础数据

目录:

  • src/views/BasicData
  • src/api/BasicData

覆盖功能:

  • 菜单管理。
  • 系统角色维护。
  • 用户权限管理。
  • 人员管理。
  • 车间人员角色管理。
  • 班次管理。
  • 工厂日历。
  • 物料维护。
  • 零件编号维护。
  • 工艺分类、工艺名称、工艺要求维护。
  • 设备能力设置。
  • 设备人员维护。
  • 项目管理显示。

MCP 需识别这些页面与 API 名称,支持按中文功能名定位文件、定位后端 name 调用点。

5.4 销售管理

目录:

  • src/views/SalesManagement
  • src/api/SalesManagement

覆盖功能:

  • 客户管理。
  • 公司信息维护。
  • 产品维护。
  • 报价创建。
  • 销售合同、机床合同、售后合同。
  • 合同查询、合同审核、合同新版页面。
  • 订单管理、订单下发、订单查询、订单审核。
  • 订单进度、订单进度总览、订单追溯、物料追溯。
  • 发货通知、发货记录、发货审核、产品发货、发货通知查询。
  • 售后、售后查询。
  • 统计分析:区域销售、订单趋势、产品类别、产品占比、产品定价、设备利用率、工时统计等。

5.5 技术中心

目录:

  • src/views/TechnologyCenter

覆盖功能:

  • BOM 基础数据。
  • BOM 维护、BOM 查询、BOM 库存查询。
  • BOM 导入。
  • 物料维护、物料查询。
  • 零件图导入。
  • 图纸确认、图纸确认分发、图纸确认查询。

5.6 精工车间

目录:

  • src/views/SeikoWorkshop

覆盖功能:

  • 工艺制定、工艺文档管理、工序查询。
  • 生产计划、生产任务查询。
  • 车间派工、生产执行、在加工零件。
  • 零件追溯、订单工时、工时统计。
  • 工况页面、设备监控。
  • 物料审核、采购合同审核。
  • 质检维护、自检记录、质检信息查询、采购质检、其他质检。
  • 报废投产、其他工作完成、测试数据录入。
  • Andon/异常提示相关页面。

5.7 装配管理

目录:

  • src/views/AssemblyManagement

覆盖功能:

  • 装配任务查询。
  • 接收装配任务。
  • 装配执行。
  • 专机装配执行。
  • 滑台装配执行。
  • 补货单、滑台补货单。
  • 装配领料、临时领料。
  • 装配开始、完成、自检、暂停、恢复、打回。
  • 装配参数、调试数据、滑台调试数据维护。

5.8 采购管理

目录:

  • src/views/PurchasingManagement

覆盖功能:

  • 供应商管理。
  • 到货通知。
  • 采购订单。
  • 外协采购订单。
  • 订单查询。
  • 外协订单查询。
  • 外购件查询。
  • 外协件查询。

5.9 仓储管理

目录:

  • src/views/WarehouseManagement

覆盖功能:

  • 采购件入库。
  • 外协入库。
  • 入库扫描。
  • 入库记录、采购入库记录、外协记录、主轴库存记录。
  • 出库、出库明细、采购出库记录。
  • 领料单查询、物料领用。
  • 退料记录。
  • 库存查询、库存记录、库存汇总、库存盘点。
  • 调拨查询、外协调拨。
  • 补货、补货查询、新补货查询。
  • 库位管理、物料库位、模具管理。
  • 外协厂维护。
  • 仓库可视化。

5.10 设备管理

目录:

  • src/views/DeviceManagement

覆盖功能:

  • 设备状态。
  • 设备状态监控。
  • 设备信息。
  • 实时信息、历史信息、当前监控。
  • 点检、点检记录。
  • 维修记录。
  • 设备能耗。
  • 灯控。
  • 不合格原因。

5.11 文件、打印、导出和可视化

功能:

  • 文件上传:uploadFile.ashxMESUploadFile.ashxuploadOP.ashxuploadPerson.ashx 等。
  • 文件下载:downloadFile.ashxMESDownloadFile.ashxMESDownloadFileNew.ashx 等。
  • Excel 导出:通过 ExcelDownLoad 指向统一服务。
  • 图片/PDF 查看:v-viewer、文件服务接口。
  • 条码/二维码:@xkeshi/vue-barcodeqrcode
  • 图表ECharts。
  • 3D/可视化:仓储可视化、设备监控中存在图片、布局图和部分 Three.js 依赖。

6. MCP 服务总体设计

6.1 MCP 服务定位

MCP 服务作为 AI 助手和 JY1.0 项目之间的受控桥梁,负责提供:

  • 项目结构检索。
  • 页面、组件、API、路由定位。
  • 业务功能索引。
  • 后端 name 调用点分析。
  • 中文字段与页面表格列提取。
  • 代码规范检查。
  • 文档知识库检索。
  • 可选的只读运行状态查询。
  • 经审批的代码生成建议。

MCP 服务不应直接绕过现有前端权限去修改生产业务数据。所有业务数据写操作必须默认关闭,除非后续建立明确的审批、审计和沙箱机制。

6.2 设计原则

  • 只读优先:默认工具只读取代码、文档和元数据。
  • 最小权限:按工具粒度授权,不暴露任意 shell。
  • 中文友好:所有业务搜索支持中文字段、中文页面名、中文过程名。
  • 可追溯:工具返回文件路径、行号、调用链、数据来源。
  • 与现有规范兼容:保留 Vue 2、Element UI、统一 .ashx 请求模式。
  • 安全隔离:生产数据库写操作不通过 MCP 直接暴露。

6.3 推荐技术选型

方案
MCP SDK Node.js MCP SDK 或 Python MCP SDK
语言 Node.js 18+ 优先,便于解析 JS/Vue 项目
传输 本地 stdio 用于 IDE/桌面助手;内网可选 Streamable HTTP
索引 ripgrep + 自建 JSON 索引
代码解析 @babel/parservue-template-compiler、正则辅助
文档解析 Markdown 原生、docx 可用 mammoth
向量库 本地 Chroma/Qdrant/Milvus轻量阶段可用 SQLite + 向量扩展
嵌入模型 DeepSeek 不提供嵌入时,可选 bge-m3、bge-large-zh、text2vec
LLM DeepSeek Chat / DeepSeek Reasoner

7. MCP Resources 设计

Resources 用于暴露只读上下文。

Resource URI 内容 来源
jy://project/overview 项目概览、技术栈、目录说明 自动生成
jy://project/package package.json 依赖、脚本 package.json
jy://project/config 服务地址配置摘要,敏感值脱敏 static/config.js
jy://router/static 静态路由 src/router/index.js
jy://router/dynamic-builder 动态路由生成逻辑 src/router/getRouter.js
jy://api/request-wrapper 请求封装说明 src/utils/request.jssrc/utils/curd.js
jy://modules/list 业务模块目录与页面数量 扫描 src/views
jy://api/list API 文件与导出函数 扫描 src/api
jy://icons/list SVG 图标清单 扫描 src/icons/svg
jy://docs/index 项目文档索引 docs/AGENTS.md

8. MCP Tools 设计

8.1 项目结构工具

scan_project_structure

用途:返回项目目录树、模块数量、关键文件状态。

输入:

{
  "maxDepth": 3,
  "includeFiles": true
}

输出:

{
  "root": "D:/景耀/JY1.0",
  "modules": ["SalesManagement", "BasicData"],
  "keyFiles": ["package.json", "static/config.js"],
  "tree": []
}

list_business_modules

用途:列出 src/views 下全部业务模块、页面数量、页面路径。

输入:

{
  "module": "WarehouseManagement",
  "includePages": true
}

输出需包含:

  • 模块英文目录。
  • 建议中文名称。
  • 页面列表。
  • 每个页面的 index.vue 路径。

8.2 页面与组件分析工具

analyze_vue_page

用途:分析指定 Vue 页面。

输入:

{
  "path": "src/views/WarehouseManagement/PurchasePartsStorage/index.vue"
}

输出:

  • 页面标题推断。
  • template 使用的 Element UI 组件。
  • 表格列中文字段。
  • data 字段。
  • methods 列表。
  • 调用的 CreateData/ExecDatabase
  • 后端 name 清单。
  • 上传下载/打印/导出能力。

find_pages_by_keyword

用途:按中文或英文关键词查页面。

输入:

{
  "keyword": "入库",
  "scope": "views"
}

输出:

  • 命中文件。
  • 命中行号。
  • 上下文片段。
  • 可能关联模块。

8.3 API 与后端过程分析工具

list_backend_operations

用途:扫描项目中所有 CreateData、API 文件 name 字段、SQL 字符串。

输入:

{
  "module": "AssemblyManagement",
  "operationType": "query"
}

输出字段:

字段 说明
file 文件路径
line 行号
type 请求类型
name 后端过程名或 SQL
params 参数名列表
page 页面路径

trace_backend_name

用途:根据后端 name 反查调用点。

输入:

{
  "name": "装配执行_开始装配"
}

输出:

  • 调用页面。
  • 方法名。
  • 参数来源。
  • 用户操作入口。
  • 相关表格/弹窗。

8.4 字段与表格工具

extract_table_columns

用途:提取指定页面所有 el-table-column 的中文 label、prop、slot 字段。

输入:

{
  "path": "src/views/SeikoWorkshop/PartTraceability/index.vue"
}

输出:

{
  "tables": [
    {
      "columns": [
        {"label": "订单号", "prop": "订单号", "width": "140px"}
      ]
    }
  ]
}

find_chinese_field

用途:根据中文字段名搜索全项目引用。

输入:

{
  "field": "订单编号"
}

输出:

  • 页面引用。
  • API 参数引用。
  • 表格列引用。
  • 表单字段引用。

8.5 代码规范检查工具

check_jy_conventions

用途:检查指定变更或文件是否符合本项目约束。

检查项:

  • 是否使用 Vue 2 Options API。
  • 是否引入 Vue 3/Composition API。
  • 是否绕过 CreateData/ExecDatabase 自行封装业务请求。
  • 是否使用中文字段名。
  • 是否符合 app-container > el-card > 搜索栏 + el-table 模式。
  • 是否使用 .then().catch() 而非 async/await
  • 是否新增第三方库。
  • 深度选择器是否使用 >>>

输入:

{
  "paths": ["src/views/WarehouseManagement/NewPage/index.vue"]
}

输出:

  • 违规等级。
  • 文件路径和行号。
  • 修改建议。

8.6 文档与知识库工具

search_project_docs

用途:检索 AGENTS.mddocs/、README、项目档案等文档。

输入:

{
  "query": "新增页面开发流程",
  "topK": 5
}

输出:

  • 文档片段。
  • 文件路径。
  • 相关度。

search_code_knowledge

用途:从代码索引和向量知识库中检索相关页面/API/规范。

输入:

{
  "query": "如何实现采购件入库页面的批量入库",
  "topK": 8
}

输出:

  • 命中代码片段。
  • 相关文档。
  • 可追溯引用。

8.7 可选业务查询工具

如需让 AI 助手查询真实业务数据,应单独设计白名单工具,不开放任意 SQL。

示例:

  • query_menu_by_user
  • query_role_modules
  • query_dictionary
  • query_order_status
  • query_inventory_summary

要求:

  • 只读。
  • 参数校验。
  • 绑定服务账号。
  • 返回数据脱敏。
  • 写审计日志。

9. MCP Prompts 设计

9.1 新增页面 Prompt

名称:create_jy_vue_page

用途:指导 AI 按项目规范新增 Vue 页面。

输入:

{
  "module": "WarehouseManagement",
  "pageName": "库存预警",
  "backendNames": ["仓储管理_库存预警_查询"],
  "fields": ["物料名称", "图号", "库存", "最低库存"]
}

输出:

  • 页面文件建议路径。
  • API 调用建议。
  • Vue 2 代码骨架。
  • 表格列定义。
  • 查询条件。
  • 需要后端配置的菜单字段。

9.2 故障排查 Prompt

名称:debug_jy_request

用途:根据报错、页面、后端 name 定位问题。

输出:

  • 请求链路。
  • 可能原因。
  • 需要检查的 Cookie、路由、参数、后端过程。
  • 前端修改建议。

9.3 功能说明 Prompt

名称:explain_jy_feature

用途:解释某个页面或模块功能。

输出:

  • 功能入口。
  • 页面操作流程。
  • 涉及后端过程。
  • 关键字段。
  • 相关页面。

10. MCP 服务内部索引设计

10.1 文件索引

{
  "path": "src/views/WarehouseManagement/PurchasePartsStorage/index.vue",
  "module": "WarehouseManagement",
  "type": "vue",
  "mtime": "2026-04-23T16:54:00",
  "size": 123456
}

10.2 页面索引

{
  "path": "src/views/AssemblyManagement/AssemblyExecution/index.vue",
  "module": "AssemblyManagement",
  "components": ["el-table", "el-dialog", "el-select"],
  "methods": ["searchTable", "submitStart", "submitFinish"],
  "backendNames": ["装配执行_开始装配", "装配执行_完成装配"],
  "fields": ["订单号", "产品名称", "状态"]
}

10.3 后端操作索引

{
  "name": "仓储管理_采购件入库_循环执行",
  "type": "12",
  "params": ["物料流水号组", "实际到货数量组", "入库人员流水号"],
  "callers": [
    {
      "file": "src/views/WarehouseManagement/PurchasePartsStorage/index.vue",
      "method": "submitInStorage",
      "line": 800
    }
  ]
}

10.4 字段索引

{
  "field": "订单号",
  "occurrences": [
    {
      "file": "src/views/SalesManagement/OrderInquiry/index.vue",
      "kind": "table-column"
    }
  ]
}

11. 安全设计

11.1 权限分层

等级 能力 默认
L0 读项目文档 开启
L1 读项目代码 开启
L2 生成建议,不写文件 开启
L3 写项目文档 需授权
L4 修改前端代码 需授权
L5 调用只读业务接口 需服务账号和审计
L6 调用写业务接口 默认禁止

11.2 敏感信息处理

  • static/config.js 中 IP、文件服务地址可展示但生产账号、密钥必须脱敏。
  • 用户提供的账号密码不写入文档和代码。
  • DeepSeek API Key 只能放环境变量或密钥管理服务。
  • MCP 日志不得记录完整 Cookie、token、密码、身份证、手机号等敏感数据。

11.3 业务写操作限制

禁止通过通用工具暴露:

  • 任意 SQL 执行。
  • 任意 type=2/7/12 写操作。
  • 任意文件删除。
  • 任意生产数据库更新。

如后续确需写操作,必须满足:

  • 白名单过程名。
  • 参数 schema。
  • 人工确认。
  • 审计日志。
  • 回滚方案。

12. 部署设计

12.1 本地 stdio 模式

适合开发者 IDE、Codex、Claude Desktop 等本地 AI 工具。

启动方式:

node server.js --root D:/景耀/JY1.0

配置示例:

{
  "mcpServers": {
    "jy-mes": {
      "command": "node",
      "args": ["D:/景耀/JY1.0/mcp-server/server.js", "--root", "D:/景耀/JY1.0"]
    }
  }
}

12.2 内网 HTTP 模式

适合多人共享 AI 助手。

建议:

  • 部署在内网服务器。
  • 使用反向代理和 HTTPS。
  • 增加用户认证。
  • 按用户角色限制工具。
  • 建立调用日志。

13. 实施路线

阶段 1只读项目索引

目标:

  • 搭建 MCP 服务骨架。
  • 实现 scan_project_structurelist_business_modules
  • 建立页面/API/字段索引。
  • 支持按关键词搜索。

交付:

  • mcp-server/ 服务。
  • index-store/ 索引文件。
  • 基础 Resources 和 Tools。

阶段 2Vue/API 深度分析

目标:

  • 解析 .vue 页面结构。
  • 提取 el-table-column
  • 提取 CreateData 调用和参数。
  • 反查后端 name 调用链。

交付:

  • analyze_vue_page
  • list_backend_operations
  • trace_backend_name
  • check_jy_conventions

阶段 3文档知识库接入

目标:

  • AGENTS.mddocs/、关键源码说明入库。
  • 支持语义检索。
  • AI 回答必须给出来源。

交付:

  • 知识库构建脚本。
  • 文档检索工具。
  • 知识库更新机制。

阶段 4AI 助手集成

目标:

  • 接入 DeepSeek。
  • 支持项目问答、功能解释、代码生成建议、排障。
  • 支持 MCP 工具调用。

交付:

  • AI 助手后端服务。
  • Web 聊天界面或集成到现有系统。
  • 权限和审计。

阶段 5受控业务查询

目标:

  • 增加只读业务查询白名单。
  • 支持订单、库存、设备状态、任务状态等查询。

交付:

  • 只读业务 API 代理。
  • 参数 schema。
  • 审计日志。

14. 验收标准

MCP 服务应满足:

  • 能列出全部业务模块和页面。
  • 能按中文关键词定位页面和后端调用。
  • 能分析指定 Vue 文件中的表格列、方法、请求。
  • 能反查某个后端 name 被哪些页面调用。
  • 能根据项目规范检查新增页面。
  • 能检索项目文档并返回来源。
  • 不暴露任意 shell、任意 SQL、生产写操作。
  • 生成代码建议符合 Vue 2、Element UI、现有全局 CRUD 方法。

15. 后续建议

  • 为后端存储过程建立正式清单,补齐参数、返回字段和业务含义。
  • 将页面中文标题、路由路径、组件路径、后端 name 维护成可生成的功能矩阵。
  • 将编码异常文件逐步统一为 UTF-8降低 AI 和工具解析难度。
  • 将现有散落在页面内的 API 调用逐步沉淀到 src/api,便于 MCP 建模和复用。