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.
- Python 3.11 (Python 3.13 and 3.12 are not currently supported by MATLAB Engine)
- MATLAB R2024a (or compatible version)
- uv package manager
- Create and set up the Python environment:
# 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]"
- 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.
matlab_server.py
: The main MCP server implementationmatlab_scripts/
: Directory where all MATLAB scripts and functions are saved (created automatically)pyproject.toml
: Python project configuration.python-version
: Specifies Python version for uv
- Open your Claude Desktop configuration:
# On macOS
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
- Add the MATLAB server configuration:
{
"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)
The server provides several tools:
-
create_matlab_script
: Create a new MATLAB script file- Scripts are saved in the
matlab_scripts
directory - File names must be valid MATLAB identifiers
- Scripts are saved in the
-
create_matlab_function
: Create a new MATLAB function file- Functions are saved in the
matlab_scripts
directory - Must include valid function definition
- Functions are saved in the
-
execute_matlab_script
: Run a MATLAB script and get results- Returns output text, generated figures, and workspace variables
- Can pass arguments to scripts
-
call_matlab_function
: Call a MATLAB function with arguments- Returns function output and any generated figures
You can test the server using the MCP Inspector:
# 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:
t = 0:0.01:2*pi;
y = sin(t);
plot(t, y);
title('Test Plot');
xlabel('Time');
ylabel('Amplitude');
- All MATLAB scripts and functions are saved in the
matlab_scripts
directory - This directory is created automatically when the server starts
- Files are named
<script_name>.m
or<function_name>.m
- The directory is in the same location as
matlab_server.py
MATLAB_PATH
: Path to your MATLAB installation- Default:
/Applications/MATLAB_R2024a.app
- Set in Claude Desktop config or when running directly
- Default:
-
MATLAB Engine Installation Fails
- Verify MATLAB_PATH is correct
- Try installing engine manually:
cd $MATLAB_PATH/extern/engines/python python setup.py install
-
Python Version Issues
- Make sure you're using Python 3.11
- Check with:
python --version
- Use
uv python pin 3.11
if needed
-
Script Execution Errors
- Check the
matlab_scripts
directory exists - Verify script syntax is valid
- Look for error messages in MATLAB output
- Check the
- Keep your MATLAB installation updated
- Update Python packages as needed:
uv pip install --upgrade mcp[cli]
- Check MATLAB engine compatibility when updating Python