返回市场
MATLAB MCP服务器

MATLAB MCP服务器

作者:jigarbhoye0420 星标更新:2025-07-12

项目介绍

MATLAB MCP 集成

这是一个用于MATLAB的模型上下文协议(MCP)服务器的实现。它允许MCP客户端(如LLM代理或Claude桌面)通过Python的MATLAB引擎API与共享的MATLAB会话进行交互。

功能

  • 执行MATLAB代码: 使用runMatlabCode工具运行任意MATLAB代码片段。
  • 获取变量: 使用getVariable工具从MATLAB工作区中获取变量的值。
  • 结构化通信: 工具返回结果和错误作为结构化的JSON,便于客户端程序使用。
  • 非阻塞执行: 使用asyncio.to_thread异步运行MATLAB引擎调用,防止阻塞服务器。
  • 标准日志记录: 使用Python的标准logging模块,输出到stderr以便在客户端日志中可见。
  • 共享会话: 连接到现有的共享MATLAB会话。

[!TIP] MatlabMCP维基百科由DEVIN创建。 查看DeepWiki以获取更多关于架构的详细和图解信息。

要求

  • Python 3.12或更高版本
  • MATLAB(推荐R2023a或更高版本 - 检查MATLAB引擎API for Python的兼容性),并安装了Python的MATLAB引擎API。
  • numpy Python包。

安装

  1. 克隆此仓库:

    git clone https://github.com/jigarbhoye04/MatlabMCP.git
    cd MatlabMCP
    
  2. 设置Python虚拟环境(推荐):

    # 如果尚未安装,请先安装uv:https://github.com/astral-sh/uv
    uv init
    uv venv
    source .venv/bin/activate  # 在Windows上使用:.venv\Scripts\activate
    
  3. 安装依赖项:

    uv pip sync
    
  4. 确保已安装MATLAB,并且Python的MATLAB引擎API已配置到您的Python环境中。参见MATLAB文档

  5. 启动MATLAB并共享其引擎: 在MATLAB命令窗口中运行以下命令:

    matlab.engine.shareEngine
    

    您可以通过在MATLAB中运行matlab.engine.isEngineShared来验证是否已共享(应返回true1)。MCP服务器需要这个共享引擎来连接。

配置(针对Claude桌面)

要使用此服务器与Claude桌面:

  1. 前往Claude桌面 -> 设置 -> 开发者 -> 编辑配置。

  2. 这将打开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服务器,请在此处添加
      }
    }
    
  3. 重要:C:\\Users\\username\\...路径替换为您系统上的正确绝对路径

  4. 保存文件并重启Claude桌面

  5. 日志记录: 服务器日志(来自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                    # 依赖项锁定文件

文档

查看更新以获取有关服务器功能、使用方法和开发笔记的详细文档。

贡献

欢迎贡献!如果您有任何建议或改进,请随时打开一个问题或提交一个拉取请求。

让我们一起使这变得更好!