mcpField
M
MATLAB MCP Integration

MATLAB MCP Integration

本地服务
github.com/jigarbhoye04开发工具2068 周前更新

关于 MATLAB MCP Integration

MATLAB MCP Integration 是一个 MCP 服务,通过 MATLAB Engine API for Python 让 LLM 或 Claude Desktop 等客户端在共享的 MATLAB 会话中执行代码。适合需要在 AI 工作流中调用 MATLAB 的用户。

主要功能

  1. 01通过 runMatlabCode 工具执行 MATLAB 代码
  2. 02通过 getVariable 工具读取工作区变量
  3. 03以结构化 JSON 返回结果与错误
  4. 04使用 asyncio.to_thread 进行异步调用
  5. 05连接已有的共享 MATLAB 会话

适用场景

  1. 01让 LLM 运行 MATLAB 脚本并返回计算结果
  2. 02在 Claude Desktop 中读取 MATLAB 工作区变量
  3. 03在已打开的 MATLAB 会话中持续执行分析

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 runMatlabCode 和 getVariable 工具,并通过共享的 MATLAB 引擎完成调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MATLAB MCP 集成

这是一个适用于 MATLAB 的模型上下文协议(MCP)服务实现。它允许 MCP 客户端(例如大模型 Agent 或 Claude Desktop)通过 MATLAB Engine API for Python 与共享的 MATLAB 会话交互。

功能

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

提示

DEVIN 编写的 MatlabMCP 维基。 查看 DeepWiki,了解有关架构的更多详细说明和示例。

要求

  • Python 3.12 或更高版本
  • MATLAB(建议使用 R2023a 或更高版本——请检查 MATLAB Engine API for Python 的兼容性),并安装 MATLAB Engine API for Python。
  • Python 软件包 numpy。

安装

  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 Engine API for Python。请参阅 MATLAB 文档。

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

    matlab.engine.shareEngine
    

    你可以在 MATLAB 中运行 matlab.engine.isEngineShared,确认引擎是否已共享(应返回 true 或 1)。MCP 服务需要连接到此共享引擎。

配置(适用于 Claude Desktop)

要在 Claude Desktop 中使用此服务:

  1. 转到 Claude Desktop -> Settings -> Developer -> Edit Config。

  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 Desktop。

  5. **日志记录:**服务日志(来自 Python 的 logging 模块)会显示在 Claude Desktop 的 MCP 日志文件中(在 macOS 上可通过 tail -f ~/Library/Logs/Claude/mcp-server-MatlabMCP.log 查看,在 Windows 上可检查 %APPDATA%\Claude\logs\)。

开发

项目结构:

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

文档

请参阅 更新,了解有关服务功能、用法和开发说明的详细文档。

贡献

欢迎贡献!如果你有任何建议或改进意见,欢迎提交 issue 或 pull request。

让我们携手把它做得更好!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。