这是一个用于MATLAB的模型上下文协议(MCP)服务器的实现。它允许MCP客户端(如LLM代理或Claude桌面)通过Python的MATLAB引擎API与共享的MATLAB会话进行交互。
runMatlabCode工具运行任意MATLAB代码片段。getVariable工具从MATLAB工作区中获取变量的值。asyncio.to_thread异步运行MATLAB引擎调用,防止阻塞服务器。logging模块,输出到stderr以便在客户端日志中可见。[!TIP] MatlabMCP维基百科由DEVIN创建。 查看DeepWiki以获取更多关于架构的详细和图解信息。
numpy Python包。克隆此仓库:
git clone https://github.com/jigarbhoye04/MatlabMCP.git
cd MatlabMCP
设置Python虚拟环境(推荐):
# 如果尚未安装,请先安装uv:https://github.com/astral-sh/uv
uv init
uv venv
source .venv/bin/activate # 在Windows上使用:.venv\Scripts\activate
安装依赖项:
uv pip sync
确保已安装MATLAB,并且Python的MATLAB引擎API已配置到您的Python环境中。参见MATLAB文档。
启动MATLAB并共享其引擎: 在MATLAB命令窗口中运行以下命令:
matlab.engine.shareEngine
您可以通过在MATLAB中运行matlab.engine.isEngineShared来验证是否已共享(应返回true或1)。MCP服务器需要这个共享引擎来连接。
要使用此服务器与Claude桌面:
前往Claude桌面 -> 设置 -> 开发者 -> 编辑配置。
这将打开claude_desktop_config.json。添加或修改mcpServers部分以包含MatlabMCP配置:
{
"mcpServers": {
"MatlabMCP": {
"command": "C:\\Users\\username\\.local\\bin\\uv.exe", // 您的uv可执行文件路径
"args": [
"--directory",
"C:\\Users\\username\\Desktop\\MatlabMCP\\", // 克隆的仓库目录的绝对路径
"run",
"main.py"
]
// 可选:如果需要,添加环境变量
// "env": {
// "MY_VAR": "value"
// }
}
// 如果您有其他MCP服务器,请在此处添加
}
}
重要: 将C:\\Users\\username\\...路径替换为您系统上的正确绝对路径。
保存文件并重启Claude桌面。
日志记录: 服务器日志(来自Python的logging模块)将在Claude桌面的MCP日志文件中出现(在macOS上可通过tail -f ~/Library/Logs/Claude/mcp-server-MatlabMCP.log访问,或者在Windows上检查%APPDATA%\Claude\logs\)。
项目结构:
MatlabMCP/
├── .venv/ # 由uv创建的虚拟环境
├── Docs/
│ └── Images/
│ └── Updates.md # 更新和变更的文档
├── main.py # MCP服务器脚本
├── pyproject.toml # 项目元数据和依赖项
├── README.md # 此文件
└── uv.lock # 依赖项锁定文件
查看更新以获取有关服务器功能、使用方法和开发笔记的详细文档。
欢迎贡献!如果您有任何建议或改进,请随时打开一个问题或提交一个拉取请求。
让我们一起使这变得更好!