使用说明
MATLAB MCP 服务器
一个模型上下文协议(MCP)服务器,为人工智能助手提供创建、执行和管理MATLAB代码的能力。该服务器实现了人工智能工具与MATLAB环境之间的无缝集成。
🌟 特点/功能
- 代码验证检查MATLAB语法而不执行
- 代码执行运行MATLAB表达式并捕获结果
- 文件管理创建、读取和执行MATLAB文件
- 测试支持运行MATLAB测试文件并获取详细结果
- 工具箱检测发现已安装的MATLAB工具箱
- 编码规范内置MATLAB最佳实践提示
📋 先决条件
在设置MATLAB MCP服务器之前,请确保您已具备:
- MATLAB 安装一个带有Python引擎支持的MATLAB工作安装
- 紫外线现代Python包管理器(从https://docs.astral.sh/uv/安装)
- VS Code带有用于测试的MCP扩展(可选但建议使用)
🛠️ 安装与设置
1. 克隆或创建项目目录
# Create project directory
mkdir matlab-mcp
cd matlab-mcp
# Or clone if you have a repository
git clone <your-repo-url> matlab-mcp
cd matlab-mcp
2. 设置UV环境
使用uv初始化项目并安装依赖项:
# Initialize uv project (if not already done)
uv init
# Install MCP CLI as a dependency
uv add 'mcp[cli]'
# Alternatively, install directly without project setup
# uv pip install mcp[cli]
3. 配置MATLAB Python引擎
如果未找到,服务器将自动尝试安装 MATLAB Python 引擎。为确保正确设置:
-
设定
MATLAB_PATH将环境变量设置为您的MATLAB安装目录:# Windows set MATLAB_PATH=C:\Program Files\MATLAB\R2024b # macOS/Linux export MATLAB_PATH=/Applications/MATLAB_R2024b.app -
如果需要,服务器将在首次运行时自动为Python安装MATLAB引擎。
4. 项目结构
你的项目应具有以下结构:
matlab-mcp/
├── main.py # MCP server implementation
├── src/ # MATLAB files directory (auto-created)
├── .vscode/
│ └── mcp.json # VS Code MCP configuration
└── README.md # This file
5. 配置VS Code的MCP集成
创建 .vscode/mcp.json 用于VS Code集成:
{
"servers": {
"MATLAB": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"C:\\Users\\<username>\\path\\to\\matlab-mcp\\main.py"
],
"cwd": "C:\\Users\\<username>\\path\\to\\matlab-mcp",
"env": {
"UV_LINK_MODE": "copy"
}
}
}
}
重要替换 <username> 并将路径替换为您实际系统的路径。
6. 放置 main.py 文件
确保你的 main.py 文件(MCP服务器实现)位于您的项目目录的根目录中。该文件应包含所有MATLAB MCP工具,并且能够被Python环境执行。
🚀 使用方法
启动服务器
通过 VS Code
- 在您的项目目录中打开 VS Code
- 开放
.vscode/mcp.json - 点击出现的“启动MCP”按钮
通过命令行
# Run the server with uv
uv run --with mcp[cli] mcp run main.py
# Or if you have a pyproject.toml with mcp[cli] as dependency
uv run mcp run main.py
可用工具
- **
check_matlab_code**验证MATLAB语法而不执行 - **
evaluate_matlab_code**执行 MATLAB 表达式并返回结果 - **
create_matlab_file**创建包含代码的新MATLAB文件 - **
run_matlab_file**执行现有的MATLAB文件 - **
run_matlab_test_file**运行带有结构化结果的MATLAB测试文件 - **
detect_matlab_toolboxes**列出已安装的MATLAB工具箱
可用资源
- **
matlab://scripts/{script_name}**读取MATLAB文件内容
可用提示
- **
matlab_coding_guidelines**获取MATLAB编码的最佳实践和标准
🧪 测试服务器
使用这些示例提示与您的AI助手配合,以测试每个工具:
基本语法检查
Check this MATLAB code for syntax errors:
x = [1, 2, 3
y = sin(x
plot(x, y)
代码评估
Evaluate this MATLAB expression: 2 + 3 * 4
文件创建
Create a MATLAB function called "calculate_mean" that takes an array and returns its mean
文件执行
Run the MATLAB file "calculate_mean" with the array [1, 2, 3, 4, 5]
测试文件的创建与执行
Create and run a test file for the calculate_mean function
工具箱检测
Show me what MATLAB toolboxes are installed on my system
编码规范
Show me the MATLAB coding guidelines
📁 文件管理
- MATLAB 文件创建于
src/目录 - 自动扩展:
.m如果未指定,则自动添加扩展名 - 路径处理支持相对路径和绝对路径
- 文件验证为兼容MATLAB而自动验证文件名
⚙️ 配置
环境变量
MATLAB_PATHMATLAB 安装路径(引擎设置所需)UV_LINK_MODE设置为“复制”以提高兼容性
定制化
- MATLAB 目录改变
MATLAB_DIR在main.py自定义文件存储位置 - 输出限制修改
MAX_OUTPUT_LENGTH控制输出截断 - 编码规范更新
matlab_coding_guidelines符合您标准的提示
🔧 故障排除
常见问题
-
未找到MATLAB引擎
- 确保已安装MATLAB,并且
MATLAB_PATH设置正确 - 服务器将尝试自动安装
- 确保已安装MATLAB,并且
-
权限错误
- 确保
src/目录可写 - 检查项目目录的文件权限
- 确保
-
服务器无法启动
- 验证 uv 是否已安装并且在 PATH 中可用
- 检查MCP CLI依赖是否已安装
uv add 'mcp[cli]') - 确保
main.py路径在mcp.json是正确的 - 验证
cwd路径在mcp.json指向你的项目目录
-
文件创建在错误的位置
- 在服务器启动时检查工作目录
- 验证
MATLAB_DIR路径解析
📝 开发
添加新工具
要添加新的MCP工具,请使用 @mcp.tool() 装饰器:
@mcp.tool()
def your_new_tool(param: str) -> dict:
"""Your tool description."""
# Implementation
return {"result": "success"}
添加新资源
要添加新的MCP资源,请使用 @mcp.resource() 装饰器:
@mcp.resource("your://resource/{param}")
def get_resource(param: str) -> str:
"""Resource description."""
# Implementation
return "resource content"
注此MCP服务器需要有效的MATLAB安装和许可证才能正常运行。在使用服务器之前,请确保MATLAB已正确配置且可访问。
在代码空间中的初始化
curl -LsSf https://astral.sh/uv/install.sh | sh 翻译为中文是:“使用curl命令以安静(无输出)、跟随重定向(-L)、显示进度(-s可能在此上下文中与-s重复,但通常-s表示安静,这里可能强调其他选项的作用,或为保持命令格式一致)、失败时停止(-f)的方式下载https://astral.sh/uv/install.sh脚本,并执行该脚本”。不过,为了更简洁明了,可以翻译为:“使用curl安静地、跟随重定向、显示进度地、失败时停止地下载并执行https://astral.sh/uv/install.sh安装脚本” 源代码 $HOME/.cargo/env # 安装 uv 并将其添加到您的 PATH 中。安装后,请重启您的终端或运行: uv --version 翻译为中文是:“检查 uv 的版本”
UV 初始化 创建并激活虚拟环境(在Python等环境中常用,具体命令可能因环境而异,此处为通用表述) chmod +x .venv/bin/activate 的中文翻译是:“为 .venv/bin/activate 文件添加可执行权限”
清除 UV 缓存 -- 强制执行 添加 MCP 并重新安装
使用pip安装matlabengine(注:uv在此处可能是一个误写或特定上下文中的命令,通常pip是Python的包管理工具,直接翻译为“使用pip安装matlabengine”即可,若uv有特定含义,请根据实际情况调整)
1 curl -LsSf https://astral.sh/uv/install.sh | sh 2 密码 3 Python 4 运行 main.py 文件 5 UV 添加 MCP 6 UV 初始化 7个UV添加MCP 8 运行 main.py(使用 uv 命令) 9 echo $MATLAB_PATH 10 export MATLAB_PATH="/opt/matlab/R2025b" 翻译为中文是:“10 导出 MATLAB 路径为 '/opt/matlab/R2025b'" 11 echo $MATLAB_PATH 12 运行 uv main.py(注:这里的“uv”可能是一个特定环境或框架下的命令,但通常Python项目中直接使用“python main.py”来运行脚本,不过按照原文直译为“运行 uv main.py”) 13 使用python -m pip安装setuptools 14 python -m pip install setuptools --break-system-packages 翻译为中文是:14 使用python模块运行pip来安装setuptools,并允许覆盖系统包 15 运行 main.py(使用 uv 命令) 16 使用 pip 安装 mcp 17 使用 pip 安装 mcp 并允许破坏系统包 18 设置 MATLAB 路径为 "/opt/matlab/R2025b" 19 使用 Python 运行模块 mcp 的 main.py 脚本 20 哪个MCP(多点控制单元/管理控制协议等,具体含义需根据上下文确定) 21 mcp 运行 main.py 22 pip install mcp[cli] 翻译为中文是:“22 使用pip安装mcp的命令行界面(CLI)组件” 23 使用 pip 安装 mcp[cli] 并允许破坏系统包 24 pip install mcp[cli] 运行 main.py,使用 25 个微控制器单元(mcp) 26 历史
class MATLABEngineManager:(可翻译为)“MATLAB引擎管理器类:” “管理MATLAB引擎的初始化和生命周期。”
def __init__(self):
self._engine = None
self._initialize()
def _initialize(self):
"""Initialize MATLAB engine with proper error handling."""
self._ensure_matlab_engine_installed()
import matlab.engine
self._engine = matlab.engine.connect_matlab("MATLAB_3616")
self._engine.addpath(str(MATLAB_DIR))
