Loading...
Loading...
Run MATLAB from AI applications using the official MathWorks MCP server to execute code, analyze scripts, and manage MATLAB sessions.
npx skill4agent add aradotso/mcp-skills matlab-mcp-core-serverSkill by ara.so — MCP Skills collection.
# Add the server (replace with your actual binary path)
claude mcp add --transport stdio matlab -- /path/to/matlab-mcp-core-server
# With custom working folder
claude mcp add --transport stdio matlab -- /path/to/matlab-mcp-core-server --initial-working-folder=/home/user/myproject
# With nodesktop mode
claude mcp add --transport stdio matlab -- /path/to/matlab-mcp-core-server --matlab-display-mode=nodesktop.vscode/mcp.json{
"servers": {
"matlab": {
"type": "stdio",
"command": "/path/to/matlab-mcp-core-server",
"args": [
"--initial-working-folder=/home/user/projects",
"--matlab-display-mode=nodesktop"
]
}
}
}{
"servers": {
"matlab": {
"type": "stdio",
"command": "C:\\Program Files\\matlab-mcp-core-server\\matlab-mcp-core-server-win64.exe",
"args": [
"--initial-working-folder=C:\\Users\\username\\projects",
"--initialize-matlab-on-startup=true"
]
}
}
}matlab-mcp-core-server.mcpb.mcpbMW_MCP_SERVER_# Specify MATLAB installation
--matlab-root=/usr/local/MATLAB/R2026a
# Environment variable: MW_MCP_SERVER_MATLAB_ROOT
# Set initial working directory
--initial-working-folder=/home/user/myproject
# Environment variable: MW_MCP_SERVER_INITIAL_WORKING_FOLDER
# Display mode: desktop or nodesktop
--matlab-display-mode=nodesktop
# Environment variable: MW_MCP_SERVER_MATLAB_DISPLAY_MODE
# Initialize MATLAB immediately on startup
--initialize-matlab-on-startup=true
# Environment variable: MW_MCP_SERVER_INITIALIZE_MATLAB_ON_STARTUP# Connect to existing MATLAB session (R2023a+)
--matlab-session-mode=existing
# Environment variable: MW_MCP_SERVER_MATLAB_SESSION_MODE
# Setup for existing session mode (run once)
./matlab-mcp-core-server --setup-matlab# Custom tools definition
--extension-file=/path/to/my-tools.json
# Environment variable: MW_MCP_SERVER_EXTENSION_FILE
# Log configuration
--log-folder=/tmp/matlab-mcp-logs
--log-level=debug
# Environment variables: MW_MCP_SERVER_LOG_FOLDER, MW_MCP_SERVER_LOG_LEVEL
# Disable telemetry
--disable-telemetry=true
# Environment variable: MW_MCP_SERVER_DISABLE_TELEMETRYMATLAB Version: R2026a
Installed Toolboxes:
- Signal Processing Toolbox (9.3)
- Image Processing Toolbox (12.0)
- Deep Learning Toolbox (24.1)script_path.mScript: /home/user/projects/calculate_fft.m
Analysis results:
- Line 15: Variable 'N' is defined but never used
- Line 23: Use of deprecated function 'fft2'. Consider 'fft' instead
- Line 45: Missing semicolon may cause unwanted output
- Performance: Consider preallocating array at line 12codeproject_pathx = 1:10; mean(x)plot(sin(0:0.1:2*pi))A = magic(5); det(A)x = linspace(0, 2*pi, 100);
y = sin(x);
plot(x, y);
title('Sine Wave');A = [1 2 3; 4 5 6; 7 8 9];
B = inv(A' * A) * A';
disp('Moore-Penrose pseudoinverse:');
disp(B);fs = 1000;
t = 0:1/fs:1-1/fs;
signal = sin(2*pi*50*t) + 0.5*sin(2*pi*120*t);
fft_result = fft(signal);
power = abs(fft_result).^2/length(signal);
fprintf('Signal power: %.4f\n', sum(power));script_path.mprocess_data.m% Load and process experimental data
data = load('experiment_results.mat');
temperature = data.temperature;
pressure = data.pressure;
% Remove outliers
temp_clean = rmoutliers(temperature);
press_clean = rmoutliers(pressure);
% Calculate statistics
mean_temp = mean(temp_clean);
std_temp = std(temp_clean);
mean_press = mean(press_clean);
% Create visualization
figure;
subplot(2,1,1);
histogram(temp_clean, 30);
title(sprintf('Temperature Distribution (μ=%.2f, σ=%.2f)', mean_temp, std_temp));
xlabel('Temperature (°C)');
subplot(2,1,2);
scatter(temp_clean, press_clean);
title('Pressure vs Temperature');
xlabel('Temperature (°C)');
ylabel('Pressure (kPa)');
% Save results
results.mean_temperature = mean_temp;
results.mean_pressure = mean_press;
results.correlation = corrcoef(temp_clean, press_clean);
save('processed_results.mat', 'results');
fprintf('Processing complete. Results saved.\n');User: "Load the data from sensor_readings.csv and plot it"
AI uses: evaluate_matlab_code
Code:
data = readtable('sensor_readings.csv');
plot(data.Time, data.Value);
xlabel('Time'); ylabel('Sensor Reading');
grid on;User: "Check my simulation script for issues before running it"
AI uses: check_matlab_code (script_path: /home/user/simulation.m)
Then: Suggests fixes
Then: evaluate_matlab_code (to run corrected version)% Step 1: Load and prepare data
data = readmatrix('measurements.csv');
x = data(:,1);
y = data(:,2);
% Step 2: Fit polynomial model
p = polyfit(x, y, 3);
y_fit = polyval(p, x);
% Step 3: Calculate residuals and R-squared
residuals = y - y_fit;
ss_res = sum(residuals.^2);
ss_tot = sum((y - mean(y)).^2);
r_squared = 1 - (ss_res / ss_tot);
% Step 4: Visualize results
figure;
plot(x, y, 'o', 'DisplayName', 'Data');
hold on;
plot(x, y_fit, '-', 'LineWidth', 2, 'DisplayName', 'Fit');
legend('show');
title(sprintf('Polynomial Fit (R² = %.4f)', r_squared));# Install the MCP toolbox in MATLAB
./matlab-mcp-core-server --setup-matlab --matlab-root=/usr/local/MATLAB/R2026a% Share this MATLAB session with MCP
shareMATLABSession(){
"servers": {
"matlab": {
"type": "stdio",
"command": "/path/to/matlab-mcp-core-server",
"args": ["--matlab-session-mode=existing"]
}
}
}# Explicitly specify MATLAB root
--matlab-root=/usr/local/MATLAB/R2026a
# Or add MATLAB to PATH
export PATH="/usr/local/MATLAB/R2026a/bin:$PATH"chmod +x ~/Downloads/matlab-mcp-core-servernodesktopdesktopfigure;
plot(x, y);
saveas(gcf, 'output.png');# Correct
script_path: /home/user/projects/analysis.m
# Incorrect (relative paths may fail)
script_path: ../analysis.mshareMATLABSession()--setup-matlab% Process data in chunks
chunk_size = 1000;
for i = 1:chunk_size:length(data)
chunk = data(i:min(i+chunk_size-1, end));
process_chunk(chunk);
end
% Clear variables when done
clear large_array;# Specify custom log location
--log-folder=/home/user/matlab-logs --log-level=debug
# Default locations:
# Linux/macOS: /tmp
# Windows: C:\Users\username\AppData\Local\Tempcheck_matlab_codeevaluate_matlab_code# Core configuration
export MW_MCP_SERVER_MATLAB_ROOT="/usr/local/MATLAB/R2026a"
export MW_MCP_SERVER_INITIAL_WORKING_FOLDER="/home/user/projects"
export MW_MCP_SERVER_MATLAB_DISPLAY_MODE="nodesktop"
export MW_MCP_SERVER_MATLAB_SESSION_MODE="existing"
export MW_MCP_SERVER_INITIALIZE_MATLAB_ON_STARTUP="true"
# Advanced options
export MW_MCP_SERVER_EXTENSION_FILE="/path/to/tools.json"
export MW_MCP_SERVER_LOG_FOLDER="/var/log/matlab-mcp"
export MW_MCP_SERVER_LOG_LEVEL="info"
export MW_MCP_SERVER_DISABLE_TELEMETRY="true"project_pathinitial-working-foldercheck_matlab_code