1. MCP 已经把软件世界的“插座”铺好了
1.1 一个协议长成事实标准的经过
这个话题得从 MCP 本身说起。MCP,Model Context Protocol,模型上下文协议,最初是 Anthropic 拿出来的一套开放协议,目的是让 AI 应用能够以统一的方式接入外部工具和数据源。你可以把它理解成 AI 领域的 USB-C 接口:以前每个外设都要专用线、专用驱动、专用接口,现在大家都按同一个引脚定义来,插上就能用。MCP 做的是同一件事,只不过它连接的不是充电器,而是“工具”。
这套协议上线之后,扩散速度快得惊人。原因是它把一件原本很麻烦的事情变得极其简单:过去让 Claude 或 GPT 类的模型去操作一个软件、读一个数据库、调用一个 API,你需要写大量的定制胶水代码,每个工具一套逻辑,还动不动因为参数格式不匹配而翻车。MCP 把工具封装成“标准资源 + 标准调用”的形态,模型只需要通过协议去读资源、调工具,剩下的细节全部由 MCP Server 处理。这等于把“让 AI 干活的最后一公里”从手工铺路变成了标准化铺管。
我最直观的感受是搜索热词的变化。过去搜“如何让 AI 操作 Figma”得到的是一堆定制插件开发教程,现在搜出来的是 Figma MCP、蓝湖 MCP、MasterGo MCP,这些名词成群结队地出现,说明大家已经不满足于让 AI 聊天,而是想让 AI 直接进到自己的设计稿、模型工程、自动化脚本里去。同样地,Blender MCP、Unity MCP、Cocos Creator MCP、Playwright MCP、MATLAB MCP 也都在陆续出现。游戏引擎、设计软件、测试框架、科学计算平台,全都开始主动拥抱这个协议。
这意味着什么?意味着软件世界开始接受一个统一的事实标准:AI 与工具之间的交互不再是一对一的定制,而是一对多的协议化。只要实现了一个 MCP Server,任何支持 MCP 的模型都能接入。这个基础一旦稳定,下一步自然是把眼光从“软件工具”挪到“硬件设备”上。
1.2 生态里的那些名字说明了一个趋势
看看这些搜索词背后的事情,你会发现一个很有意思的现象:蓝湖、MasterGo 这类国内设计协作平台也推出了自己的 MCP 服务;Figma 有官方 MCP 插件;Blender MCP 能让模型直接操控 3D 视口里的物体;Unity MCP 和 Cocos Creator MCP 则是让大模型能改场景、调组件;Playwright MCP 直接接浏览器自动化;MATLAB MCP 把矩阵运算环境也纳了进来。
这些产品的共同点是什么?它们都是“软件开箱即用”的典型代表,运行在操作系统之上,有明确的 API 或命令行接口,数据是结构化的。MCP 把它们接入 AI 时,路径是很顺的:写个服务,把软件暴露出来的接口翻译成 MCP 工具调用,完事。
但搜索词里还有一批东西画风完全不同:硬件工程师、嵌入式硬件、硬件设计、硬件管控、BMS 硬件开源项目、Linux 下 Chromium Rockchip 硬件解码。这些词全是硬件相关的。它们的搜索热度与 MCP 关键词同时出现,说明一部分硬件玩家也在琢磨:MCP 这套东西能不能用到硬件上?
这正是 MHS 出现的背景。
2. “硬件版 MCP”MHS:合理拆解它到底在做什么
2.1 从命名和定位推导它解决什么问题
MHS 的公开技术细节还比较少,业内更习惯把它称作 Anthropic 在硬件方向上的 MCP 延伸。根据现有信息的合理推断,MHS 全称更接近 Model Hardware Server 或 Model-based Hardware Service,定位是做模型与硬件设备之间的标准化服务层。
它解决的痛点是:软件工具的 MCP 接入已经足够方便,但硬件设备的接入依然是一片荒地。你去管一台变频器、一块温控表、一个机械臂控制器或者一套 BMS 电池管理系统,面对的往往是私有协议、串口命令、寄存器地址映射、厂商 SDK 版本冲突,甚至“这设备只有上位机软件,没有公开接口”这种绝境。模型再聪明,读不了传感器的值、发不出控制指令,它就对物理世界无能为力。
MHS 的思路就是把“硬件”也变成 MCP 世界里的一种资源。设备连接、寄存器映射、指令下发、状态回读,这些操作被封装成标准的硬件资源描述和工具调用。MCP Client 不需要关心对面是 Modbus RTU 还是 CANopen 还是 OPC UA,只要说“我要读设备 A 的电流值”,MHS 就会去完成协议转换、数据解析和异常处理。对模型来说,硬件操作的门槛被拉平了;对上层应用来说,底层硬件差异被屏蔽了。
这个方向的价值是显而易见的。它相当于给 AI 装上了一个“万能硬件驱动层”,让模型有机会从纯数字世界走向物理世界。但注意,有机会走向,和真的能走过去,之间隔着一条巨大的鸿沟。这条鸿沟的名字叫工业控制。
2.2 架构上与软件 MCP 的关键差异点
软件 MCP 和硬件 MHS 虽然在协议哲学上一脉相承,但落到架构实现上差异相当明显。我列一张表,大家一眼就能看明白:
| 对比维度 | 软件 MCP | 硬件 MHS |
|---|---|---|
| 接入对象 | 进程、API、文件系统 | 物理设备、传感器、执行器 |
| 数据格式 | JSON、文本为主 | 字节流、寄存器、时间序列信号 |
| 延迟要求 | 毫秒到秒级可接受 | 控制场景要求毫秒级甚至微秒级确定响应 |
| 故障模式 | 服务崩溃、接口变更 | 断线、硬件故障、信号干扰、固件 bug |
| 安全边界 | 权限、身份认证、数据隐私 | 人身安全、设备安全、防误操作、防物理损坏 |
| 测试方式 | 单元测试、模拟数据 | 半实物仿真、HIL、小批量试产 |
| 部署环境 | 云服务器、容器 | 边缘网关、嵌入式设备、工业现场 |
从这张表能看出来,MHS 根本不是一个“加个串口驱动”就能解决的问题。软件世界里,最坏情况是数据算错了、任务失败了,删掉重来就是;硬件世界里,指令发错了可能就是设备损坏、产线停机甚至人员事故。这个差异决定了 MHS 的架构必须额外考虑确定性、容错、权限分级和审计追溯,而这些恰恰是“以对话式交互为核心”的传统 MCP 设计里最薄弱的部分。
还有一点容易被人忽略:软件 MCP 的“工具”大多是一次性调用,快速发包、快速拿结果、完事。工业控制则强调“持续性会话”和“闭环反馈”。你要让 AI 控制一个加热过程,不是发一条“把温度调到 80 度”的指令就够了,而是要持续读温度、调整功率、判断超调量、处理异常中断。这种长周期的闭环控制,对 MHS 的状态管理、上下文同步和实时性提出了新要求。
3. 工业控制的桌子为什么没被掀动
3.1 工业现场的真实技术栈
现在聊第二个核心问题:为什么说 MHS 掀不动工业控制的桌子?要理解这句话,先得看清工业现场到底长什么样。
大多数人对工业控制的想象是“一个屏幕、一个鼠标、一堆自动化软件”。实际情况要粗暴得多。真正的工业现场,核心控制设备是 PLC 和 DCS,它们运行着 IEC 61131-3 标准的梯形图、结构化文本、功能块图这些传统编程语言。几十年来,工厂里最底层的逻辑就是这些梯形图堆出来的——电机启停、阀门开关、连锁保护、安全回路。这些逻辑不是云计算栈,不是微服务架构,也不是大模型能看懂的 JSON 上下文,它们是实打实跑在专用硬件上的确定性逻辑。
再往上,是 SCADA 系统和历史数据服务器。SCADA 负责采集、监控、报警,但它通常只做监视和操作层面的工作,不会替代 PLC 去做实时控制。设备之间通信靠的是 Modbus、PROFINET、EtherCAT、CANopen、OPC UA 这类工业总线协议。每一家厂商的实现都有差异,同一个协议在不同设备型号上的寄存器分布也可能完全不同。
我做过一个不算复杂的项目,接入一套老旧的温控系统。设备本体是一台 20 年前的 PID 温控表,支持 Modbus RTU,波特率 9600,8 位数据位、无校验、1 停止位。寄存器地址表藏在纸质的英文手册里,还标着“Reserved,Do Not Write”这种警告。为了读一个温度变量,我先得拿串口调试工具一个个扫描寄存器,确认哪些地址真的有数据,哪些会直接让设备死机。这就是工业接入的日常。
在这样一套体系面前,MCP 那套“标准资源 + 标准工具调用”的优雅姿势,第一脚就踩进了泥里:协议多样、设备私有、文档残缺、现场条件苛刻,任何一个环节都能让“标准化”变成“一个个案”。而 MHS 想做的事情,恰好是要把这种混乱的接入方式统一起来,难度可想而知。
3.2 实时性、确定性和安全合规的三座大山
除了技术栈古老,工业控制还有三座大山,我一个个说。
第一座大山:实时性与确定性。
化工装置的温度控制、电机驱动的电流环、机器人运动学插补,这些控制回路对时间的要求极其苛刻。PLC 的扫描周期通常要求在几十毫秒以内,运动控制则达到亚毫秒级。更重要的是,工业控制讲究“确定性”——不是说“平均 10 毫秒响应一次”,而是“每次都在 10 毫秒内响应,一个都不能超”。任何引入的非确定性环节,比如 TCP 重传、JSON 解析抖动、大模型推理延迟,在工业现场都是不可接受的。
MCP 本身是建立在 TCP/HTTP 这类非确定性网络之上的,模型推理延迟又是几百毫秒到秒级。这种架构决定了它不可能作为一个实时控制通道去替代传统控制回路。你可以让它做一个“慢决策”,但绝不可能让它做“快控制”。
第二座大山:可用性与安全认证。
工业设备挂着人命和巨额资产。化工装置一旦误动作,就是爆炸级别的后果;医疗设备、轨道交通、核电控制更是安全完整性等级(SIL)严格约束的领域。要进入这些领域,产品需要通过一系列安全认证,比如 IEC 61508、ISO 13849、IEC 62443 等。认证过程动辄两三年,成本极高,而且要求对整个系统架构的安全性进行严密论证。MHS 作为一个新兴架构,连稳定版本都谈不上,更不用说通过认证。在合规压力下,工厂宁愿继续用老旧的 PLC,也不会轻易把控制权交给一个“新协议”。
第三座大山:行业心理和行为惯性。
我聊过不少工控领域的老师傅,他们对 AI 的态度很有意思——不是排斥,是不信任。他们的逻辑是:你这套东西出 bug 了能重启,我的产线重启一次就是几十万上百万的损失。模型给了一个看起来合理的参数,谁敢真让它下发给现场执行器?出了问题谁承担责任?安全责任谁来兜底?这个“不敢试错”的心理,比任何技术难题都更难突破。它不是靠一两个 Demo 就能解决的,需要长期的可靠性验证和事故案例积累。
所以,“掀不动工业控制的桌子”说的不是 MHS 技术不行,而是工业控制行业的准入壁垒本身就极高。一台数控系统的可靠性数据是几万台设备、几十年运行攒出来的,MHS 要以新面孔进入这个领域,就必须面对和传统方案完全不对等的信任起点。
3.3 现有厂商会怎么做:兼容并包而不是被替代
还要考虑一个现实因素:西门子、罗克韦尔、施耐德、倍福这些工业自动化巨头,绝不会坐视自己的市场份额被一个新协议吃掉。它们早就开始做自己的数字化平台和 AI 接入能力,比如西门子的 Industrial Edge、罗克韦尔的 FactoryTalk,支持 OPC UA over MQTT、TSN 这些现代通信方式。
这些巨头的策略很清楚:既然 AI 时代来了,那就把 AI 接进自己的生态里,用自己的协议去对接。未来 MHS 真要想进入工业现场,更可能的路径是接入 OPC UA 服务器或者厂商的 SQL 接口,做“数据消费者”和“辅助决策者”,而不是另起炉灶替换掉现有的控制链路。也就是说,MHS 和传统工业设备大概率会走向共存和适配,而不是颠覆和被颠覆。
4. 潜在影响恰恰藏在这些“掀不动”里
4.1 掀不动不代表没用:三个能落地的方向
虽然直接控制工业设备这条路走不通,但把 MHS 放在“决策辅助层”和“边缘智能层”,价值马上就体现了。我认为至少有三个方向能最先落地。
第一个方向:预测性维护与设备健康管理。
工业设备的核心痛点之一是“坏了才知道坏”。轴承磨损、电机过热、振动异常、润滑不良,都有早期征兆,但普通运维人员没精力天天盯波形数据。MHS 的价值在于,它可以把振动传感器、温度传感器、电流互感器的数据标准化接入,让大模型周期性地读取设备状态、分析趋势、识别异常模式,然后输出维护建议。这个场景不要求实时控制,延时几秒完全没关系,安全性也好很多——模型只是“看着”,不碰控制回路,出错了也无非是一个错误建议,不会炸设备。
第二个方向:运维与检修的知识辅助。
一个熟练的化工仪表工要记几十台设备的量程、报警值、校准周期、常见故障码。新人上手根本没有几年时间沉淀不了。MHS 可以把设备说明书、历史检修记录、实时参数都变成 MCP 资源,让大模型在运维人员提问时按需调用。比如:“帮我查一下 3 号空压机的排气温度正常范围是多少,现在高了 5 度,可能是什么原因?”模型通过 MHS 读取设备当前值,同时翻说明书和检修记录,给出带依据的回答。这相当于给每个车间配了一个“有二十年的老师傅记忆的助手”,虽然不能亲自修,但能把知识调用时间从半天压缩到几秒。
第三个方向:数字孪生与调试辅助。
数字孪生场景里,模型需要频繁读取设备参数并与仿真模型比对。MHS 可以作为数字孪生平台和设备实体之间的标准数据通道,把现场实时数据源源不断地喂给仿真环境。调试阶段更是好用:工程师边改 PLC 程序边让模型解释当前工艺参数的含义,或者让模型直接根据 DCS 报警记录生成排查建议。这些应用表面看起来不激进,但一旦形成使用习惯,会慢慢改变工程师和自动化系统的交互方式。
4.2 这些场景的共同特点:人在环内,决策不落地
我上面说的三个方向,有一个共同的安全设计模式:人在环内(Human-in-the-loop),并且模型只输出建议,不直接下发控制指令。这个设计不是退让,而是聪明的入场策略。
你可以这样理解:MHS 先把“读取设备数据、查询设备知识”这条路打通,让 AI 先到工业现场“看着”。等它看久了,数据积累多了,表现稳定了,再逐步开放“参数调整建议”和“限值预警”。再往后,才有可能在特定低风险设备上做闭环控制试点——比如办公楼空调系统、仓库照明、非关键的水泵站。从“看”到“建议”再到“轻量级闭环”,每一步都给使用者留出充分的验证窗口,这对突破“不敢试错”的心理至关重要。
说到底,MHS 的最大潜在影响不是“替代谁”,而是把 AI 与物理世界的接入成本降下来。一旦接入成本降低,就会有更多的边缘应用被开发出来。工业控制的桌子还是那张桌子,但桌边的椅子多了,AI 终于有地方坐下了。
4.3 我做过的一个预测性维护小实验
为了验证这些想法,我自己用一个周末搭了一套简化版链路。设备选的是单位里一台老的螺杆空压机,本身带温度、压力、运行时间这几个模拟量输出,通过一台国产数据采集模块转成 Modbus TCP。整个链路是这样的:数据采集模块 → Modbus TCP → 树莓派上的 MHS 服务 → MCP Server → Claude API → Web 端聊天界面。
实验效果比我想象的好。我让模型每 10 分钟读一次排气温度,连续读了两天,然后让它描述温度趋势并给出维护建议。模型把中午高温时段的环境温度影响都考虑进去了,还提示我关注润滑油劣化周期,这个提醒比我平时手填保养台账靠谱得多。整个过程里,模型没有向设备写过任何一个字节,全部是只读操作。但就算只是“只读”,它也已经帮我节省了每天两次的人工巡检记录工作。
这个实验让我确认了一件事:在工业场景里,MHS 的价值起点不是控制,而是“感知 + 记忆 + 推理”。而这三样,恰好是传统工业软件做得最差的地方。
5. 手把手:我一晚上搭出来的 MHS 演示链路
5.1 硬件与网络准备
下面这份实操记录,给想动手试的朋友做参考。注意,我做的是只读演示,没有把模型接到任何执行机构上,这是底线,大家务必要守住。
硬件清单:树莓派 4B(2GB 以上内存),一台支持 Modbus TCP 的温控器或数据采集模块,网线或 Wi-Fi,电源。我用的是国产某品牌的 8 路模拟量采集模块,型号就不点名了,网上两百块以内的一大堆,支持 Modbus TCP,寄存器表在说明书里写得很清楚。
网络规划:树莓派 IP 设为 192.168.1.50,数据采集模块设为 192.168.1.60,端口统一用 502。树莓派上安装 Docker,方便后面跑 MCP Server 的容器。
5.2 设备描述文件与服务搭建
MHS 的核心思路是把设备能力描述成结构化文件。我参考 MCP 的 resource 和 tool 设计,自己定义了一个简化的设备描述格式:
{ "device": "temperature_controller_01", "protocol": "modbus-tcp", "endpoint": "192.168.1.60:502", "slave_id": 1, "registers": [ { "name": "current_temperature", "address": 0, "type": "holding", "data_type": "float32", "unit": "celsius", "read_only": true, "description": "当前温度值" }, { "name": "target_temperature", "address": 1, "type": "holding", "data_type": "float32", "unit": "celsius", "read_only": false, "description": "目标温度值,只读演示中禁止写入" } ] }字段含义不复杂:设备名、协议类型、连接地址、从站号,然后是寄存器映射列表。每个寄存器定义了名称、地址、类型、数据类型、单位和读写属性。这份文件是 MHS 服务的配置基础,MHS 启动的时候加载它,动态生成对该设备的读取工具。
这里要特别说明一下read_only字段的重要性。我在这份配置里通篇设了只读,因为我要确保大模型无论如何都不会触发写操作。这不是技术问题,是安全边界问题。你永远不要低估大模型在对话中出现幻觉后调用工具的积极性。在真正玩懂之前,把写操作全部锁死是唯一正确的姿势。
5.3 桥接 MCP 与 Modbus
接下来是核心链路:把 MCP 工具调用翻译成 Modbus 请求。我用 Python 写了一个轻量级的 MCP Server,关键逻辑不复杂:加载上面的 JSON 配置文件,为每个寄存器注册一个只读工具,工具名称就是寄存器名称,工具内部通过pymodbus库去读保持寄存器。
核心代码片段:
from mcp.server.fastmcp import FastMCP from pymodbus.client import ModbusTcpClient mcp = FastMCP("mhs_demo") client = ModbusTcpClient("192.168.1.60", port=502) @mcp.tool() def read_current_temperature() -> float: """读取当前温度值(摄氏度)""" result = client.read_holding_registers(0, 2, slave=1) # 将两个16位寄存器合并成float32 raw = (result.registers[0] << 16) | result.registers[1] return struct.unpack('>f', struct.pack('>I', raw))[0]MCP 工具函数写清楚 docstring 很重要,因为大模型靠这个函数的描述来决定何时调用、如何解读返回值。函数名和 docstring 写得越明确,模型的使用准确率越高。我一开始没写 docstring,模型经常把“读温度”理解成“读湿度”,后来补齐了描述,准确率立刻上来了。
最后把 MCP Server 注册到 Claude Desktop 或其他 MCP Client 的配置文件里,就能直接对模型发指令:“读一下当前温度,告诉我会不会影响设备运行。”
5.4 我踩过的坑
这趟实验虽然链路不长,但坑一点不少,说三个最典型的。
坑一:字节序和数据类型转换。
Modbus 协议只传 16 位寄存器,float32 要拆成两个寄存器。不同厂商对高低字节的排列定义不一样,有的高字在前,有的低字在前,转换错了读出来的温度就完全离谱。我一开始读出来 190 多摄氏度,差点以为设备要炸了,后来发现是寄存器顺序反了。这个坑几乎每个做 Modbus 的人都会踩,建议在配置里加一个byte_order字段,方便随时调整。
坑二:MCP Server 空闲连接被断开。
树莓派上的 MCP Server 和温控模块之间的 TCP 连接,长时间不通信会被设备端的看门狗断开。大模型隔几分钟才读一次数据,第一次读大概率失败。解决方法是重试机制,每次读取前先检查连接状态,断开就重连。这个逻辑一定得写好,不然模型就会一脸无辜地给你报“设备无响应”。
坑三:大模型上下文里塞了太多历史数据。
MHS 很容易让人觉得“数据越多越聪明”,于是我在系统提示词里让模型每次读 10 个负荷值。结果上下文被大量相似的数字填满,模型反而忽略了真正重要的趋势变化。后来我改成只提供最近 20 条数据的统计摘要——均值、峰值、变化率,效果反而好很多。工业数据的价值在趋势和异常,不在原始观测值本身,这个经验在接入更多设备时同样适用。
6. 最后说点实在话
我的整体判断是:MHS 短期内不可能替代 PLC、DCS 和任何主控逻辑,它影响的是边缘的、辅助的、知识密集的工业场景。设备预测性维护、运维检修问答、数字孪生数据同步、轻量级能效分析,这些场景的共同特征是“不碰安全闭环、不抢响应时间、决策最后一步留给人类”。在这些场景里,MHS 能把 AI 的接入成本从几周压缩到一晚上,这个效率优势是真实存在的。
但大家也要清醒一点。当前 MHS 生态还非常早期,工具链不完整、规范未定、设备驱动匮乏,更没有任何大规模工业验证背书。想要拿它做严肃的事情,还是要从一个极小的只读场景做起,跑几个月,攒够数据,再谈下一步。千万别看了几个 Demo 就想着把产线主控换成 AI,那是在给行业积累负面案例。
工业控制这潭水很深,新协议想进来,姿态一定是先当配角、再当助手,最后才谈主角。MHS 现在能做的事情,就是把配角这个位置先站稳当。至于它最终能走多远,不取决于大模型进化多快,而取决于传统工业的可靠性数据和新生代工程师的接受度这两条腿能不能同时走路。我个人是愿意在两边都押一点筹码的。