MATLAB MCP集成
这是MATLAB的模型上下文协议(MCP)服务器的实现。它允许MCP客户端(如LLM代理或Claude Desktop)使用Python的MATLAB引擎API与共享的MATLAB会话进行交互。
特性
- 执行MATLAB代码: 通过以下命令运行任意MATLAB代码片段
runMatlabCode工具。 - 检索变量: 使用以下命令从MATLAB工作区获取变量值
getVariable工具。 - 结构化沟通: 工具将结果和错误作为结构化JSON返回,以便客户端更容易进行编程使用。
- 非阻塞执行: MATLAB引擎调用使用异步方式运行
asyncio.to_thread以防止阻塞服务器。 - 标准日志记录: 使用Python标准
logging模块,输出到stderr以便在客户端日志中查看。 - 共享会话: 连接到现有的共享MATLAB会话。
\[!提示\] DEVIN的MatlabMCP维基百科。 结账 DeepWiki 有关架构的更详细和说明性的信息。
需求
- Python 3.12或更高版本
- MATLAB(建议使用R2023a或更高版本 -检查MATLAB引擎API是否与Python兼容),并安装用于Python的MATLAB引擎API。
numpyPython包。
安装
- 克隆此存储库:
git clone https://github.com/jigarbhoye04/MatlabMCP.git
cd MatlabMCP- 设置Python虚拟环境(推荐):
# Install uv if you haven't already: https://github.com/astral-sh/uv
uv init
uv venv
source .venv/bin/activate # On Windows use: .venv\Scripts\activate- 安装依赖项:
uv pip sync- 确保安装了MATLAB,并为您的Python环境配置了用于Python的MATLAB引擎API。看 MATLAB文档.
- 启动MATLAB并共享其引擎: 在MATLAB命令窗口中运行以下命令:
matlab.engine.shareEngine您可以通过运行验证它是否共享 matlab.engine.isEngineShared 在MATLAB中(它应该返回 true 或 1).MCP服务器需要此共享引擎才能连接。
配置(适用于Claude Desktop)
要将此服务器与Claude Desktop一起使用,请执行以下操作:
- 转到克劳德桌面->设置->开发人员->编辑配置。
- 这将打开
claude_desktop_config.json.添加或修改mcpServers部分包括MatlabMCP配置:
{
"mcpServers": {
"MatlabMCP": {
"command": "C:\\Users\\username\\.local\\bin\\uv.exe", // Path to your uv executable
"args": [
"--directory",
"C:\\Users\\username\\Desktop\\MatlabMCP\\", // ABSOLUTE path to the cloned repository directory
"run",
"main.py"
]
// Optional: Add environment variables if needed
// "env": {
// "MY_VAR": "value"
// }
}
// Add other MCP servers here if you have them
}
}- 重要: 替换
C:\\Users\\username\\...正确的路径 绝对路径 为您的系统。
- 保存文件并 重新启动克劳德桌面.
- 登录中: 服务器日志(来自Python
logging模块)将出现在Claude Desktop的MCP日志文件中(可通过以下方式访问tail -f ~/Library/Logs/Claude/mcp-server-MatlabMCP.log在macOS上或检查%APPDATA%\Claude\logs\在Windows上)。
发展
项目结构:
MatlabMCP/
├── .venv/ # Virtual environment created by uv
├── Docs/
│ └── Images/
│ └── Updates.md # Documentation for updates and changes
├── main.py # The MCP server script
├── pyproject.toml # Project metadata and dependencies
├── README.md # This file
└── uv.lock # Lock file for dependencies文档
结账 更新 有关服务器功能、用法和开发说明的详细文档。
贡献
欢迎投稿!如果您有任何建议或改进,请随时打开问题或提交拉取请求。
让我们一起让这变得更好!
