MCP cover image
See in Github
2025-04-09

MCP服务器通过MATLAB引擎API从LLM运行MATLAB代码。

1

Github Watches

0

Github Forks

5

Github Stars

MATLAB MCP Integration

This is an implementation of a Model Context Protocol (MCP) server for MATLAB. It allows MCP clients (like LLM agents or Claude Desktop) to interact with a shared MATLAB session using the MATLAB Engine API for Python.

Features

  • Execute MATLAB Code: Run arbitrary MATLAB code snippets via the runMatlabCode tool.
  • Retrieve Variables: Get the value of variables from the MATLAB workspace using the getVariable tool.
  • Structured Communication: Tools return results and errors as structured JSON for easier programmatic use by clients.
  • Non-Blocking Execution: MATLAB engine calls are run asynchronously using asyncio.to_thread to prevent blocking the server.
  • Standard Logging: Uses Python's standard logging module, outputting to stderr for visibility in client logs.
  • Shared Session: Connects to an existing shared MATLAB session.

TODO:

  • Add a setVariable tool to write data to the MATLAB workspace.
  • Add a runScript tool to execute .m files directly.
  • Add tools for workspace management (e.g., clearWorkspace, getWorkspaceVariables).
  • Expand matlab_to_python helper to handle more complex data types (structs, cell arrays, objects).
  • Add support for interacting with Simulink models.

Requirements

  • Python 3.12 or higher
  • MATLAB (R2023a or higher recommended - check MATLAB Engine API for Python compatibility) with the MATLAB Engine API for Python installed.
  • numpy Python package.

Installation

  1. Clone this repository:

    git clone https://github.com/jigarbhoye04/MatlabMCP.git
    cd MatlabMCP
    
  2. Set up a Python virtual environment (recommended):

    # 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
    
  3. Install dependencies:

    uv pip sync
    
  4. Ensure MATLAB is installed and the MATLAB Engine API for Python is configured for your Python environment. See MATLAB Documentation.

  5. Start MATLAB and share its engine: Run the following command in the MATLAB Command Window:

    matlab.engine.shareEngine
    

    You can verify it's shared by running matlab.engine.isEngineShared in MATLAB (it should return true or 1). The MCP server needs this shared engine to connect.

Configuration (for Claude Desktop)

To use this server with Claude Desktop:

  1. Go to Claude Desktop -> Settings -> Developer -> Edit Config.

  2. This will open claude_desktop_config.json. Add or modify the mcpServers section to include the MatlabMCP configuration:

    {
      "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
      }
    }
    
  3. IMPORTANT: Replace C:\\Users\\username\\... paths with the correct absolute paths for your system.

  4. Save the file and restart Claude Desktop.

  5. Logging: Server logs (from Python's logging module) will appear in Claude Desktop's MCP log files (accessible via tail -f ~/Library/Logs/Claude/mcp-server-MatlabMCP.log on macOS or checking %APPDATA%\Claude\logs\ on Windows).

Development

Project Structure:

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

Documentation

Check out Updates for detailed documentation on the server's features, usage, and development notes.

Contributing

Contributions are welcome! If you have any suggestions or improvements, feel free to open an issue or submit a pull request.

Let's make this even better together!

相关推荐

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Yusuf Emre Yeşilyurt
  • I find academic articles and books for research and literature reviews.

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • Carlos Ferrin
  • Encuentra películas y series en plataformas de streaming.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • Alexandru Strujac
  • Efficient thumbnail creator for YouTube videos

  • lumpenspace
  • Take an adjectivised noun, and create images making it progressively more adjective!

  • Lists Tailwind CSS classes in monospaced font

  • https://appia.in
  • Siri Shortcut Finder – your go-to place for discovering amazing Siri Shortcuts with ease

  • apappascs
  • 发现市场上最全面,最新的MCP服务器集合。该存储库充当集中式枢纽,提供了广泛的开源和专有MCP服务器目录,并提供功能,文档链接和贡献者。

  • ShrimpingIt
  • MCP系列GPIO Expander的基于Micropython I2C的操作,源自ADAFRUIT_MCP230XX

  • modelcontextprotocol
  • 模型上下文协议服务器

  • jae-jae
  • MCP服务器使用剧作《无头浏览器》获取网页内容。

  • Mintplex-Labs
  • 带有内置抹布,AI代理,无代理构建器,MCP兼容性等的多合一桌面和Docker AI应用程序。

  • ravitemer
  • 一个功能强大的Neovim插件,用于管理MCP(模型上下文协议)服务器

  • patruff
  • Ollama和MCP服务器之间的桥梁,使本地LLMS可以使用模型上下文协议工具

  • pontusab
  • 光标与风浪冲浪社区,查找规则和MCP

    Reviews

    4 (1)
    Avatar
    user_D2qgp3eB
    2025-04-17

    MatlabMCP is an exceptional application for anyone working with MATLAB. It offers comprehensive tools and resources that streamline the coding process and improve efficiency. The intuitive interface and robust features make it a valuable addition to any programmer's toolkit. Highly recommended for both beginners and experienced users looking to enhance their MATLAB experience!