An open API service indexing awesome lists of open source software.

https://github.com/tsuchijo/matlab-mcp

Model Context Protocol server to let LLMs write and execute matlab scripts
https://github.com/tsuchijo/matlab-mcp

Last synced: 3 months ago
JSON representation

Model Context Protocol server to let LLMs write and execute matlab scripts

Awesome Lists containing this project

README

          

# MATLAB MCP Server

This Model Context Protocol (MCP) server provides integration with MATLAB, allowing you to create and execute MATLAB scripts and functions through Claude or other MCP clients.

## Setup Requirements

- Python 3.11 (Python 3.13 and 3.12 are not currently supported by MATLAB Engine)
- MATLAB R2024a (or compatible version)
- uv package manager

## Installation

1. Create and set up the Python environment:
```bash
# Pin Python version
uv python pin 3.11

# Create virtual environment
uv venv

# Activate virtual environment
source .venv/bin/activate

# Install MCP
uv add "mcp[cli]"
```

2. Install MATLAB Engine
The MATLAB Engine will be installed automatically when the server first runs, using the MATLAB installation specified in the `MATLAB_PATH` environment variable.

## Directory Structure

- `matlab_server.py`: The main MCP server implementation
- `matlab_scripts/`: Directory where all MATLAB scripts and functions are saved (created automatically)
- `pyproject.toml`: Python project configuration
- `.python-version`: Specifies Python version for uv

## Claude Desktop Integration

1. Open your Claude Desktop configuration:
```bash
# On macOS
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
```

2. Add the MATLAB server configuration:
```json
{
"mcpServers": {
"matlab": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/matlab-mcp",
"run",
"matlab_server.py"
],
"env": {
"MATLAB_PATH": "/Applications/MATLAB_R2024a.app"
}
}
}
}
```

Make sure to:
- Replace `/absolute/path/to/matlab-mcp` with the actual path to your project directory
- Verify the `MATLAB_PATH` points to your MATLAB installation
- Use absolute paths (not relative)

## Features

The server provides several tools:

1. `create_matlab_script`: Create a new MATLAB script file
- Scripts are saved in the `matlab_scripts` directory
- File names must be valid MATLAB identifiers

2. `create_matlab_function`: Create a new MATLAB function file
- Functions are saved in the `matlab_scripts` directory
- Must include valid function definition

3. `execute_matlab_script`: Run a MATLAB script and get results
- Returns output text, generated figures, and workspace variables
- Can pass arguments to scripts

4. `call_matlab_function`: Call a MATLAB function with arguments
- Returns function output and any generated figures

## Testing

You can test the server using the MCP Inspector:
```bash
# Make sure you're in your virtual environment
source .venv/bin/activate

# Run the inspector
MATLAB_PATH=/Applications/MATLAB_R2024a.app mcp dev matlab_server.py
```

Example test script:
```matlab
t = 0:0.01:2*pi;
y = sin(t);
plot(t, y);
title('Test Plot');
xlabel('Time');
ylabel('Amplitude');
```

## Script Storage

- All MATLAB scripts and functions are saved in the `matlab_scripts` directory
- This directory is created automatically when the server starts
- Files are named `.m` or `.m`
- The directory is in the same location as `matlab_server.py`

## Environment Variables

- `MATLAB_PATH`: Path to your MATLAB installation
- Default: `/Applications/MATLAB_R2024a.app`
- Set in Claude Desktop config or when running directly

## Troubleshooting

1. **MATLAB Engine Installation Fails**
- Verify MATLAB_PATH is correct
- Try installing engine manually:
```bash
cd $MATLAB_PATH/extern/engines/python
python setup.py install
```

2. **Python Version Issues**
- Make sure you're using Python 3.11
- Check with: `python --version`
- Use `uv python pin 3.11` if needed

3. **Script Execution Errors**
- Check the `matlab_scripts` directory exists
- Verify script syntax is valid
- Look for error messages in MATLAB output

## Updates and Maintenance

- Keep your MATLAB installation updated
- Update Python packages as needed: `uv pip install --upgrade mcp[cli]`
- Check MATLAB engine compatibility when updating Python