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_PATHenvironment 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-mcpwith the actual path to your project directory - Verify the
MATLAB_PATHpoints 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_scriptsdirectory - 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_scriptsdirectory - 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.pyExample 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_scriptsdirectory - This directory is created automatically when the server starts
- Files are named
<script_name>.mor<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.11if needed
-
Script Execution Errors
- Check the
matlab_scriptsdirectory 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