MCP — 实时数据网关
概述
PlantPulse 统一 MCP 是一个 MCP(Model Context Protocol) 数据网关,使 AI 能够访问 PlantPulse IIoT 平台的全部实时数据。
它通过只读数据工具,向 AI 提供工厂层级结构、传感器数据、报警、OEE、工单、能源、系统状态等工厂运营的全部数据。本体(知识图谱)工具也包含在该统一 MCP 中。
MCP(Model Context Protocol) 是 Anthropic 提出的、用于 AI 模型与数据源之间对接的标准协议。
2026-07 改版: 统一 MCP 现由 PlantPulse 平台 server-web 的端点 /api/v5/mcp(api_key 认证)提供。原独立服务 plantpulse-mcp-server(:50000) 与 plantpulse-ontology(:8888) 已归档,本体工具已并入统一 MCP。AI Chat Web 的内置代理(ToolRegistry)通过 tools/list 动态发现工具。
可处理的数据
工厂结构
可查询站点 → 区域 → 产线 → 设备 → 标签的完整层级。仅需层级时用资产树,需要构成概览及标签数量时用本体,影响传播则用关系图。
按名称提问时,search_domains 会先解析出 ID —— 支持对站点、设备、标签、工单、用户等 14 个域按名称、ID、说明进行部分匹配检索。
实时值与历史
- 标签当前值批量查询(单次最多 100 个)
- 标签区间历史
- 设备全部标签快照 —— 无需逐个指定标签,即可按设备获取当前状态
报警
- 报警列表查询(按时间段、严重度筛选)
- 报警原因诊断包 —— 针对单条报警,汇总相关标签与状态变化
- 报警确认处理
生产指标(OEE / RAM / EMS)
以设备为轴进行查询。
| 需求 | 工具 |
|---|---|
| 每个工单一行(哪个工单有问题) | get_asset_kpi |
| 整个时间段汇总为一行(本周情况如何) | get_asset_stats |
| 单个工单的明细 | get_order_metrics |
OEE 等比率值不是百分比,而是 0~1 范围。界面上显示为 85% 的值,
在工具响应中是 0.85。
采集状态
可查询边缘网关状态与健康历史、OPC 采集连接列表。“数据进不来”这类问题通常在这里找到答案。
设备文档
查询设备所附文档的列表。文档内容检索不由 MCP 负责,而由 RAG 负责。
提供的工具(22 个)
以下是统一 MCP 提供的全部工具。增加或减少工具会导致平台的契约测试失败,因此该列表即为实际列表。
时间
| 工具 | 返回内容 |
|---|---|
get_current_time | 服务器当前时间 —— 解析相对时间(“昨天”“上周”)的基准 |
结构 —— 什么在哪里
| 工具 | 返回内容 |
|---|---|
search_domains | 实体检索(名称 → ID 解析) |
get_asset_tree | 资产层级树 |
get_ontology | 站点本体概览(结构 + 各设备标签数量) |
query_ontology | 资产关系图遍历(影响传播) |
query_sparql | 本体 SPARQL 查询 |
get_asset_documents | 设备附件文档列表 |
search_domains大多数工具接收的是 ID。用户会像“大田 3 线注塑机”那样以名称表述,
因此 AI 会先用 search_domains 解析出 ID,再调用目标工具。若返回“找不到设备”,
通常是名称与平台注册名不一致。
连接 —— 采集是否正常
| 工具 | 返回内容 |
|---|---|
get_edge_status | 边缘网关状态 |
get_edge_health_history | 边缘健康历史(按日期区间) |
list_connections | OPC 采集连接列表 |
数据 —— 标签
| 工具 | 返回内容 |
|---|---|
get_tag_values | 标签当前值 |
get_tag_history | 标签区间历史 |
数据 —— 报警
| 工具 | 返回内容 |
|---|---|
list_alarms | 报警列表 |
get_alarm_context | 报警原因诊断包 |
ack_alarm | 报警确认处理 |
数据 —— 设备
| 工具 | 返回内容 |
|---|---|
get_asset_snapshot | 设备全部标签快照 |
get_asset_timeline | 设备事件时间线 |
get_asset_stats | 设备区间业务统计 |
生产
| 工具 | 返回内容 |
|---|---|
list_orders | 工单列表 |
get_order_metrics | 工单明细与 KPI |
get_asset_kpi | 设备按工单 KPI(OEE / EMS / RAM) |
汇总
| 工具 | 返回内容 |
|---|---|
get_health | 资产层级健康汇总 |
22 个工具中只有 ack_alarm 会改变平台状态 —— 对报警执行确认处理。
其余 21 个全部为只读。没有任何控制设备或更改配置的工具。
主要设置
统一 MCP 由平台 server-web 提供,因此 AI Chat Web(copliot-web) 只管理客户端侧的接入设置。
| 项目 | 说明 | 默认值 |
|---|---|---|
mcp.api.url | 统一 MCP 基础 URL(平台 server-web) | (安装时设置) |
mcp.api.token | api_key 认证令牌 | (安装时设置) |
mcp.tools.enabled | 是否使用统一 MCP 工具 | true |
端点为 <mcp.api.url>/api/v5/mcp,采用 JSON-RPC 2.0(tools/list、tools/call)方式通信。分页、报警查询时间范围等服务器侧策略遵循平台 server-web 的配置。
特点
完整的数据覆盖
以单一 MCP 提供工厂运营所需的全部数据域。从传感器原始数据到 KPI 聚合,均可分层查询。
极小的写入范围
数据查询工具全部为只读,唯一会改变状态的是报警确认(ack_alarm)。由于完全不具备设备控制或配置更改手段,可在不干预工艺的前提下安全对接 AI。
MCP 标准协议
遵循 Anthropic MCP 标准。支持基于 JSON-RPC 2.0 的 HTTP POST 通信,以及基于 JSON Schema 的输入校验。
KST 原生
所有时间处理均以 KST(韩国标准时)为基准。通过 _iso 后缀字段提供便于人工阅读的时间格式。