讲个有意思的事——你有没有想过,让AI直接替你操作MATLAB、搭Simulink模型,而你只需要动动嘴、描述需求就行?这事在以前听着像天方夜谭,但2026年4月之后,它正经八百地变成了现实。
MathWorks官方发布了matlab-mcp-core-server,一套基于MCP协议的MATLAB控制工具。结合Claude Code,AI可以在后台直接调用MATLAB / Simulink API,帮你完成建模、仿真、参数扫描一套流程。下面我们从原理讲到实操,再到避坑技巧,一次理清。
一、MCP是什么?为什么是Claude + MATLAB?
MCP(Model Context Protocol)
MCP是Anthropic推出的模型上下文协议。可以把它想象成AI工具的“USB接口”——让不同AI应用能够连接外部工具和数据源。
┌─────────────┐ MCP ┌─────────────────┐
│ Claude Code │ ═══════════════════▶ │ MATLAB/Simulink │
│ (AI大脑) │ │ (执行引擎) │
└─────────────┘ └─────────────────┘
为什么是Claude Code + MATLAB?
来看看几种主流方案的对比:
ChatGPT + MATLAB: 通用对话能力强,但需要手动复制粘贴代码,属于“半自动”。
Claude Code + MCP: AI直接调用MATLAB API,代码生成和执行一气呵成,属于“全自动”。
直接写MATLAB脚本: 精确控制,但效率低、门槛高,AI时代确实有点“原始”。
结论很清楚:Claude Code + MATLAB MCP = AI原生自动化。你描述需求,AI调用Simulink API直接完成建模。
二、官方MATLAB MCP Core Server来了
MathWorks于2026年4月发布了官方 matlab-mcp-core-server,同时支持Claude Code、Claude Desktop和GitHub Copilot。这意味着AI与MATLAB的集成,不再是野路子,而是有官方背书的正规军。
核心工具一览:
| 工具名称 | 功能 | 使用场景 |
|---|---|---|
detect_matlab_toolboxes | 检测已安装的工具箱 | 环境检查 |
check_matlab_code | 静态代码分析 | 代码审查 |
evaluate_matlab_code | 执行代码字符串 | 动态计算 |
run_matlab_file | 执行.m脚本文件 | 批量任务 |
run_matlab_test_file | 运行单元测试 | 质量验证 |
三、5分钟配置指南
第一步:安装MATLAB MCP服务器
下载对应平台的可执行文件:
# Windows/Linux (Go安装)
go install github.com/matlab/matlab-mcp-core-server/cmd/matlab-mcp-core-server@latest
# macOS Apple Silicon
curl -L -o ~/Downloads/matlab-mcp-core-server https://github.com/matlab/matlab-mcp-core-server/releases/latest/download/matlab-mcp-core-server-maca64
chmod +x ~/Downloads/matlab-mcp-core-server
第二步:添加到Claude Code
# 添加MATLAB MCP服务器
claude mcp add --transport stdio matlab -- /full/path/to/matlab-mcp-core-server
# 验证是否成功
claude mcp list
第三步:配置启动参数(可选)
# 指定MATLAB路径、启动时初始化、不显示桌面
claude mcp add --transport stdio matlab -- /full/path/to/matlab-mcp-core-server --matlab-root=/Applications/MATLAB_R2025b.app --initialize-matlab-on-startup=true --matlab-display-mode=nodesktop
四、核心技能:Simulink API自动化建模
配置完成后,真正的好戏才开始。下面几个关键技能,是让AI替你“搬砖”的基础。
4.1 新建并保存模型
% 创建新模型
h = new_system('myModel');
% 打开模型
open_system(h);
% 添加模块
add_block('simulink/Sources/Constant', 'myModel/MyConstant');
add_block('simulink/Math Operations/Gain', 'myModel/MyGain');
add_block('simulink/Sinks/Scope', 'myModel/MyScope');
% 连接模块
add_line('myModel', 'MyConstant/1', 'MyGain/1');
add_line('myModel', 'MyGain/1', 'MyScope/1');
% 保存模型
sa ve_system('myModel', 'myModel.slx');
4.2 批量查找并修改模块
function setBlocks(sys)
% 查找所有输入端口
blk = find_system(sys, 'BlockType', 'Inport');
% 批量修改数据类型
for n = 1:length(blk)
set_param(blk{n}, 'OutDataTypeStr', 'int16');
end
end
4.3 自动化仿真运行
% 加载模型
modelName = 'myModel';
load_system(modelName);
% 设置仿真参数
set_param(modelName, 'StopTime', '10', ...
'Solver', 'ode45', ...
'MaxStep', '0.01');
% 运行仿真
sim(modelName);
% 导出结果
simout = get_param([modelName '/MyScope'], 'PortData');
4.4 高级:批量参数扫描
% 参数扫描示例:Gain从0.1到2.0
gainValues = 0.1:0.1:2.0;
results = [];
for g = gainValues
set_param('myModel/MyGain', 'Gain', num2str(g));
sim('myModel');
results = [results; g, simout.Data(end)];
end
% 绘制参数扫描曲线
plot(results(:,1), results(:,2));
xlabel('Gain Value');
ylabel('Output');
五、实战案例:Claude Code自动化建模
光说理论没用,来看一个真实的应用场景:电池热管理模型。
场景描述
用户需要快速搭建一个电池热管理仿真模型,涉及Simscape的电池模块、散热模块和温度传感器。
Claude Code执行流程:
用户: 帮我创建电池热管理模型
Claude: 调用 MCP 工具 evaluate_matlab_code 执行:
h = new_system('BatteryThermal');
open_system(h);
% 添加组件
add_block('simscape/Battery/Thermal/Battery+Thermal', ...
'BatteryThermal/Battery');
add_block('simscape/Battery/Thermal/Thermal Reference', ...
'BatteryThermal/ThermalRef');
add_block('simscape/Foundation/Thermal/Thermal Elements/Heat Plate', ...
'BatteryThermal/Heatsink');
add_block('simscape/Foundation/Thermal/Thermal Sensors/Temperature Sensor', ...
'BatteryThermal/TempSensor');
% 设置参数
set_param('BatteryThermal/Battery', 'Capacity', '3600', ...
'NominalVoltage', '3.7');
sa ve_system('BatteryThermal', 'BatteryThermal.slx');
成功创建模型: BatteryThermal.slx
整个过程耗时不到30秒。如果是手动搭建,找模块、拖拽、连线、设置参数,少说也得忙活十几分钟。
六、对比:Claude Code + MATLAB MCP vs SimuAgent
有人可能会问:之前不是有个SimuAgent吗?两者有什么区别?
| 维度 | SimuAgent | Claude Code + MATLAB MCP |
|---|---|---|
| 定位 | 专用Simscape建模Agent | 通用MATLAB/Simulink控制 |
| 实现方式 | LLM + 自定义工具链 | MCP协议 + Simulink API |
| 灵活性 | 专用优化 | 开放API,全功能覆盖 |
| 上手难度 | 需要训练模型 | 5分钟配置即可 |
| 适用场景 | Simscape建模 | 任意MATLAB/Simulink任务 |
结论很清晰:如果你需要快速落地、马上用起来,Claude Code + MATLAB MCP是更务实的选择。如果追求极致自动化,可以深入研究SimuAgent的架构思路,但目前来看前者的性价比更高。
七、避坑指南
实践过程中,有几个坑是绕不开的,提前知道能省去不少调试时间。
❌ 常见错误
% 错误1: MATLAB路径未添加到系统PATH
% 解决: 确保matlab命令在命令行可用
% 错误2: 模型未保存就操作
% 解决: 先 open_system() 再进行修改
% 错误3: 端口名称写错
% 解决: 用 get_param(b, 'Ports') 查看可用端口
% 错误4: 仿真时间设置不当
% 解决: 根据实际物理特性设置 StopTime 和 MaxStep
✅ 最佳实践
- 先验证后执行: 用
check_matlab_code做静态检查,避免语法错误。 - 保存中间状态: 复杂任务分段保存模型,防止意外中断。
- 日志记录: 关键操作输出日志,便于问题回溯。
- 单元测试: 为复用函数编写测试用例,确保后续调用的可靠性。
八、快速开始清单
最后给一张清单,照着做就能跑通第一遍:
□ 1. 下载 matlab-mcp-core-server
□ 2. 确保 MATLAB 已安装并添加到 PATH
□ 3. 执行 claude mcp add 添加服务器
□ 4. 用 claude mcp list 验证配置
□ 5. 开始你的第一次自动化建模!
写在最后
Claude Code + MATLAB MCP不是要取代工程师,而是把你从繁琐的重复劳动中解放出来——把精力放在系统设计和创新上,让AI来处理那些“搬砖”任务。真正有价值的工作,从来不是手写脚本和拖拽模块,而是分析和决策。
下一个目标:用自然语言描述你的需求,AI帮你把整套仿真流程跑通。这件事,现在就能做。
往期推荐:
- 解锁隐藏技能 | Simulink建模自动化
- SimuAgent论文解读:让AI替你搭Simulink模型
