mcpField
M
MATLAB MCP Integration

MATLAB MCP Integration

Local
github.com/jigarbhoye04Developer Tools20Updated 68w ago

About MATLAB MCP Integration

MATLAB MCP Integration is an MCP server that lets clients such as LLM agents or Claude Desktop run code in a shared MATLAB session via the MATLAB Engine API for Python. It suits users who want MATLAB calls inside AI workflows.

Key features

  1. 01Run MATLAB code through the runMatlabCode tool
  2. 02Read workspace variables with the getVariable tool
  3. 03Return results and errors as structured JSON
  4. 04Run engine calls asynchronously to avoid blocking
  5. 05Connect to an existing shared MATLAB session

Use cases

  1. 01Letting an LLM run MATLAB scripts and return computed results
  2. 02Reading MATLAB workspace variables from Claude Desktop
  3. 03Running repeated analysis in an already open MATLAB session

MCP support

This is an MCP server that exposes the runMatlabCode and getVariable tools to MCP clients, executing them through a shared MATLAB engine.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

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.

Tip

MatlabMCP wikipedia by DEVIN. Checkout DeepWiki for more detailed and illustrative information about architecture.

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!

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.