使用说明

项目简介

MatlabMCP Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,它允许大型语言模型 (LLM) 客户端(如 Claude)通过标准化的 MCP 协议,调用 Matlab 执行代码。该服务器主要提供了一个 工具 (Tool),使 LLM 能够利用 Matlab 强大的科学计算和数据处理能力。

主要功能点

  • Matlab 代码执行: 通过定义好的 'runMatlabCode' 工具,接收 LLM 客户端发送的 Matlab 代码,并在预先启动并共享的 Matlab 会话中执行。
  • 工具注册与调用: 使用 'mcp.tool()' 装饰器注册 'runMatlabCode' 函数为 MCP 工具,使其可以通过 MCP 协议被 LLM 客户端发现和调用。
  • 基于 Stdio 的传输: 使用标准输入输出 (stdio) 作为 MCP 服务器与客户端之间的通信协议,简化部署和集成。
  • 共享 Matlab 会话: 服务器连接到一个预先启动并共享的 Matlab 会话,允许多个请求复用 Matlab 环境,提高效率。

安装步骤

  1. 克隆仓库: 从 GitHub 克隆 MatlabMCP 仓库到本地:
    git clone https://github.com/jigarbhoye04/MatlabMCP.git
    cd MatlabMCP
  2. 安装 Python 虚拟环境 (可选但推荐): 创建并激活 Python 虚拟环境,隔离项目依赖:
    uv init
    uv venv
    .venv/bin/activate  # 或 .venv\Scripts\activate (Windows)
  3. 安装 Python 依赖: 虽然仓库中没有明确的依赖声明文件,但根据代码推测,可能需要安装 'mcp' 和 'matlabengine' 库。建议使用 'uv' 安装:
    uv pip install mcp matlabengine
  4. 安装 Matlab Engine API: 必须安装 Matlab 并且是 2025a 或更高版本。确保安装了适用于 Python 的 Matlab Engine API。具体安装方法请参考 Matlab 官方文档。
  5. 启动共享 Matlab Engine: 在 Matlab 命令行窗口中运行以下命令以共享 Matlab Engine:
    matlab.engine.shareEngine
    并检查 Engine 是否已共享:
    matlab.engine.isEngineShared
    如果返回 'false',请再次运行 'matlab.engine.shareEngine'。

服务器配置

要将 MatlabMCP 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要编辑客户端的配置文件 (例如 'claude_desktop_config.json'),添加 MatlabMCP 服务器的配置信息。以下是一个示例配置,请根据您的实际安装路径进行调整

{
  "mcpServers": {
    "MatlabMCP": {  // 服务器名称,客户端配置中引用此名称
      "command": "C:\\Users\\username\\.local\\bin\\uv.exe", // uv 可执行文件的路径,如果使用venv,则指向虚拟环境中的 uv
      "args": [
        "--directory",  // 指定工作目录参数
        "C:\\Users\\username\\MatlabMCP\\", // MatlabMCP 仓库的本地路径
        "run",          // uv run 命令,用于运行 Python 脚本
        "main.py"       // 要运行的 Python 脚本文件名
      ]
    }
  }
}

配置参数说明:

  • '"MatlabMCP"': 服务器的名称,可以自定义,客户端通过此名称识别和调用服务器。
  • '"command"': 启动服务器的命令。这里假设使用 'uv' 运行 Python 脚本。如果直接使用 'python',则需要将 'uv.exe' 替换为 Python 解释器的路径,并移除 'uv' 相关的参数。
  • '"args"': 传递给启动命令的参数列表。
    • '"--directory"': 指定工作目录为 MatlabMCP 仓库的根目录,确保程序能找到 'main.py' 文件。
    • '"run"': 'uv run' 命令指示 'uv' 运行指定的 Python 脚本。
    • '"main.py"': 指定要运行的服务器主程序文件。

请务必根据您的实际 'uv.exe' 或 Python 解释器路径、MatlabMCP 仓库路径进行调整。 如果使用 'python' 命令直接运行,配置可能简化为:

{
  "mcpServers": {
    "MatlabMCP": {
      "command": "python",
      "args": [
        "C:\\Users\\username\\MatlabMCP\\main.py"
      ]
    }
  }
}

基本使用方法

  1. 启动 MatlabMCP 服务器: 配置完成后,启动 MCP 客户端(如 Claude Desktop),客户端会根据配置自动启动 MatlabMCP 服务器。您也可以在 MatlabMCP 仓库目录下,手动运行 'uv run main.py' 或 'python main.py' 来启动服务器。

  2. 在 LLM 客户端中使用: 在支持 MCP 协议的 LLM 客户端中,配置并连接到名为 "MatlabMCP" 的服务器。

  3. 调用 'runMatlabCode' 工具: 在 LLM 的 Prompt 中,指示 LLM 使用 "MatlabMCP" 服务器提供的 'runMatlabCode' 工具,并提供需要执行的 Matlab 代码作为工具的参数。例如,在 Claude 中,您可以使用类似以下的 Prompt:

    请使用 MatlabMCP 服务器的 runMatlabCode 工具执行以下 Matlab 代码:
    ```matlab
    x = 1:10;
    y = sin(x);
    plot(x, y);
    title('Sine Wave');
    
    LLM 客户端会将 Prompt 转换为 MCP 请求发送给 MatlabMCP 服务器,服务器执行 Matlab 代码后,将结果返回给客户端。

注意: MatlabMCP 服务器依赖于预先启动并共享的 Matlab 会话。请确保在启动服务器之前,已经启动 Matlab 并运行了 'matlab.engine.shareEngine' 命令。

信息

分类

AI与计算