
MATLAB MCP Server
MCPMathWorks' official server that lets agents start your local MATLAB, write and run scripts and unit tests, and check code style and potential errors, for computing, simulation and data analysis. Needs a licensed MATLAB R2021a+ and the downloaded server binary.
MATLAB MCP Server
English • Español • 日本語 • 한국어 • 简体中文
Run MATLAB® using AI applications with the official MATLAB MCP Server from MathWorks®. The MATLAB MCP Server allows your AI applications to:
- Start and quit MATLAB.
- Write and run MATLAB code.
- Assess your MATLAB code for style and correctness.
To assist your agent in using MATLAB and Simulink, you can use skills from MATLAB Agentic Toolkit (GitHub) and Simulink Agentic Toolkit (GitHub), which can also install this MCP server for you.
Table of Contents
- Setup
- Arguments
- Tools
- Resources
- Data Collection
- Security Considerations
- Licensing and Usage
- Contact Support
Setup
-
Install MATLAB (MathWorks) R2021a or later and add it to the system PATH.
-
The server supports any AI application that uses Model Context Protocol. To set up the MATLAB MCP Server for Claude Desktop, skip to the instructions for Claude Desktop. To set up the server for other applications, follow these instructions:
-
For Windows or Linux, Download the Latest Release. (Alternatively, you can build from source: install Go and build the binary using
go install github.com/matlab/matlab-mcp-server/cmd/matlab-mcp-server@latest). -
For macOS, first download the latest release by running the following command in your terminal:
- For Apple silicon processors, run:
curl -L -o ~/Downloads/matlab-mcp-server https://github.com/matlab/matlab-mcp-server/releases/latest/download/matlab-mcp-server-macos-arm64 - For Intel processors, run:
curl -L -o ~/Downloads/matlab-mcp-server https://github.com/matlab/matlab-mcp-server/releases/latest/download/matlab-mcp-server-macos-x64
Then grant executable permissions to the downloaded binary so you can run the MATLAB MCP Server:
chmod +x ~/Downloads/matlab-mcp-server - For Apple silicon processors, run:
-
-
Add the MATLAB MCP Server to your AI application. You can find instructions for adding MCP servers in the documentation of your AI application. For example instructions on using Claude Code®, Claude Desktop®, and GitHub Copilot in Visual Studio® Code, see below. Note that you can customize the server by specifying optional Arguments.
Claude Code
In your terminal, run the following, remembering to insert the full path to the server binary you acquired in the setup:
claude mcp add --transport stdio matlab -- /fullpath/to/matlab-mcp-server-binary
You can customize the server by specifying optional Arguments. Note the -- separator between Claude Code's options and the server arguments:
claude mcp add --transport stdio matlab -- /fullpath/to/matlab-mcp-server-binary --initial-working-folder=/home/username/myproject
For details on adding MCP servers in Claude Code, see Add a local stdio server (Claude Code). To remove the server later, run:
claude mcp remove matlab
Claude Desktop
You install the MATLAB MCP Server in Claude Desktop using the MATLAB MCP Server bundle.
-
Install the Filesystem extension in Claude Desktop to allow Claude to read and write files on your system. In Claude Desktop, click Settings > Extensions > Browse extensions. Search for the Filesystem extension developed by Anthropic and click Install. Specify the folders you want to allow the MCP server to access, then toggle the Disabled button to Enable the Filesystem extension.
-
Download the MATLAB MCP Server bundle
matlab-mcp-server.mcpbfrom the Latest Release page. -
To install the MATLAB MCP Server bundle as a desktop extension, double click the downloaded
matlab-mcp-server.mcpbfile and click Install in Claude Desktop. (Alternatively, navigate in Claude to File menu > Settings > Extensions > Advanced Settings > Install Extension and select thematlab-mcp-server.mcpbfile. Click Install).
To customize the behaviour of the MATLAB MCP Server, navigate to Settings > Extensions > Configure, where you can modify the server's Arguments.
GitHub Copilot in Visual Studio Code
In your VS Code workspace, create a file named .vscode/mcp.json. Insert the following JSON, remembering to specify the full path to the server binary you acquired in the setup, as well as any Arguments. Then save the file. (Note that on Windows, your paths require extra slashes as escape characters).
{
"servers": {
"matlab": {
"type": "stdio",
"command": "C:\\fullpath\\to\\matlab-mcp-server-windows-x64.exe",
"args": []
}
}
}
For more information about using MCP servers in VS Code, see Add and Manage MCP servers in VS Code (VS Code).
Codex
In your terminal, run the following, remembering to insert the full path to the server binary you acquired in the setup:
codex mcp add matlab -- /fullpath/to/matlab-mcp-server-binary
You can customize the server by specifying optional Arguments. For example:
codex mcp add matlab -- /fullpath/to/matlab-mcp-server-binary --initial-working-folder=/home/username/myproject
[!NOTE] Windows users: Codex does not forward the
WINDIRenvironment variable, which you need to run MATLAB and Simulink (see #32).To add the variable, open your Codex config file at
C:\Users\<username>\.codex\config.toml, and addenv_vars = ["WINDIR"]to the[mcp_servers.matlab]section:[mcp_servers.matlab] command = 'C:\fullpath\to\matlab-mcp-server-windows-x64.exe' args = [] env_vars = ["WINDIR"]
Arguments
Customize the behavior of the server by specifying arguments in one of these ways:
- Insert the arguments in the configuration settings of your AI application (usually a
.jsonfile). - Enter the arguments as command-line interface (CLI) flags when you start the server.
- Use environment variables, specified either in your CLI or application's configuration settings. To derive the environment variable name from a CLI flag, add the prefix
MW_MCP_SERVER_, convert to uppercase, and replace hyphens (-) with underscores (_). For example, the argument--matlab-rootbecomes the environment variableMW_MCP_SERVER_MATLAB_ROOT. CLI flags take precedence over environment variables, if you use both.
| Argument | Description | Example |
|---|---|---|
| help | Displays help information for all arguments. | --help |
| version | Displays the version of the MATLAB MCP Server. | --version |
| matlab-root | Full path specifying which MATLAB to start. Do not include /bin in the path. By default, the server tries to find the first MATLAB on the system PATH. | Windows: --matlab-root=C:\\Program Files\\MATLAB\\R2026a Linux/macOS: --matlab-root=/home/usr/MATLAB/R2026aAs an environment variable: MW_MCP_SERVER_MATLAB_ROOT=/home/usr/MATLAB/R2026a |
| initialize-matlab-on-startup | To initialize MATLAB as soon as you start the server, set this argument to true. By default, MATLAB only starts when the first tool is called. | --initialize-matlab-on-startup=true |
| initial-working-folder | Specify the folder where MATLAB starts. If you do not specify a value, MATLAB starts at the path of your AI application's first Root (MCP). If you have not defined a root, MATLAB starts in these locations:
| Windows: --initial-working-folder=C:\\Users\\username\\MyProject Linux/macOS: --initial-working-folder=/Users/username/MyProject |
| matlab-display-mode | Specify whether to show the MATLAB desktop. Use desktop mode (default) to show the MATLAB desktop. Use nodesktop mode to use MATLAB only from your AI application, without the MATLAB desktop. Note that in nodesktop mode, commands requiring a graphical interface (such as edit, open, open_system, uifigure, and appdesigner) will still open MATLAB windows on your desktop. | --matlab-display-mode=nodesktop |
| matlab-session-mode | Specify whether the MCP server starts a new MATLAB or connects to an existing MATLAB session (supported for MATLAB R2023a onwards). The default is auto mode.new mode: The MCP server starts a new MATLAB session. auto mode (default): The server tries to connect to an existing MATLAB session, which you must have configured for existing mode using the instructions below. If the server is unable to find an existing MATLAB session, it starts a new one. existing mode: The server tries to connect to an existing MATLAB session. Do not use this mode in conjunction with the arguments matlab-root, initial-working-folder, or matlab-display-mode. You must have configured your MATLAB session beforehand to use this mode, with these steps:
| --matlab-session-mode=existing |
| extension-file | To use custom MCP tools, provide a path to a JSON file that defines your tools. You can also use multiple extension files. For details on using custom tools, see Use Custom Tools with the MATLAB MCP Server. | Windows: --extension-file=C:\\Users\\name\\my-tools.json Linux/macOS: --extension-file=/path/to/my-tools.json Using multiple extension files: Windows: --extension-file=C:\\path\\to\\tools-1.json --extension-file=C:\\path\\to\\tools-2.jsonLinux/macOS: --extension-file=/path/to/tools1.json --extension-file=/path/to/tools2.json Using environment variables: Windows: MW_MCP_SERVER_EXTENSION_FILE=C:\Users\name\tools1.json;C:\Users\name\tools2.json Linux/macOS: MW_MCP_SERVER_EXTENSION_FILE=/path/to/tools1.json:/path/to/tools2.json |
| log-folder | Specify the folder where the MCP server stores log files. If not specified, the server uses the default temporary folder of your operating system. | Windows: --log-folder=C:\\Users\\name\\AppData\\Local\\Temp Linux/macOS: --log-folder=/tmp/my-logs |
| log-level | The log levels of the MCP server. Valid values, in order of decreasing verbosity, are debug, info, warn, and error. The default is info. | --log-level=debug |
| disable-telemetry | To disable anonymized data collection, set this argument to true. For details, see Data Collection. | --disable-telemetry=true |
Tools
-
detect_matlab_toolboxes- Returns information about installed MATLAB and toolboxes, including version numbers.
-
check_matlab_code- Performs static code analysis on a MATLAB script. Returns warnings about coding style, potential errors, deprecated functions, performance issues, and best practice violations. This is a non-destructive, read-only operation that helps identify code quality issues without executing the script.
- Inputs:
script_path(string): Absolute path to the MATLAB script file to analyze. Must be a valid.mfile. The file is not modified during analysis. Example:C:\Users\username\matlab\myFunction.mor/home/user/scripts/analysis.m.
-
evaluate_matlab_code- Evaluates a string of MATLAB code and returns the output.
- Inputs:
code(string): MATLAB code to evaluate.project_path(string): Absolute path to your project directory. MATLAB sets this directory as the current working folder. Example:C:\Users\username\matlab-projector/home/user/research.
-
run_matlab_file- Executes a MATLAB script and returns the output. The script must be a valid MATLAB source file (
.m) or P-code file (.p). If a MATLAB source file (.m) and a P-code file (.p) have the same name and are in the same folder, MATLAB runs the.pfile. - Inputs:
script_path(string): Absolute path to the MATLAB script file to execute. Must be a valid MATLAB source file (.m) or P-code file (.p). Example:C:\Users\username\projects\analysis.mor/home/user/matlab/simulation.m.
- Executes a MATLAB script and returns the output. The script must be a valid MATLAB source file (
-
run_matlab_test_file- Executes a MATLAB test script and returns comprehensive test results. Designed specifically for MATLAB unit test files that follow MATLAB testing framework conventions.
- Inputs:
script_path(string): Absolute path to the MATLAB test script file. Must be a valid MATLAB source file (.m) or P-code file (.p) containing MATLAB unit tests. Example:C:\Users\username\tests\testMyFunction.mor/home/user/matlab/tests/test_analysis.m.
Resources
The MCP server provides Resources (MCP) to help your AI application write MATLAB code. To see instructions for using this resource, refer to the documentation of your AI application that explains how to use resources.
-
matlab_coding_guidelines- Provides comprehensive MATLAB coding standards for improving code readability, maintainability, and collaboration. The guidelines encompass naming conventions, formatting, commenting, performance optimization, and error handling.
- URI:
guidelines://coding - MIME Type:
text/markdown - Source: MATLAB Coding Standards (GitHub)
-
plain_text_live_code_guidelines- Provides rules and guidelines for generating live scripts using the plain text Live Code
.mfile format, suitable for version control and AI-assisted development. Note that to run plain text live scripts you need MATLAB R2025a or newer. For details, see Live Code File Format (MathWorks). - URI:
guidelines://plain-text-live-code - MIME Type:
text/markdown - Source: Plain Text Live Code Generation (GitHub)
- Provides rules and guidelines for generating live scripts using the plain text Live Code
Data Collection
The MATLAB MCP Server may collect fully anonymized information about your usage of the server and send it to MathWorks. This data collection helps MathWorks improve products and is on by default. To opt out of data collection, set the argument --disable-telemetry to true.
Security Considerations
When using the MATLAB MCP Server, you should thoroughly review and validate all tool calls before you run them. Always keep a human in the loop for important actions and only proceed once you are confident the call will do exactly what you expect. For more information, see User Interaction Model (MCP) and Security Considerations (MCP).
Licensing and Usage
The license is available in the LICENSE.md file in this GitHub repository.
MCP servers are only permitted to be used with MATLAB in accordance with the MathWorks Software License Agreement, and must not be shared by multiple users. Contact MathWorks if you need to support shared or centralized server use.
Contact Support
MathWorks encourages you to use this repository and provide feedback. To request technical support or submit an enhancement request, create a GitHub issue or contact MathWorks Technical Support.
Copyright 2025-2026 The MathWorks, Inc.
関連リソース

MATLAB Agentic Toolkit
PluginMathWorks' official toolkit: set up the MCP server via the MATLAB installer so agents can run code, run tests and do static checks; domain skill sets for signal processing, controls, statistics and machine learning install as Claude Code plugins. Needs MATLAB R2021a+.
matlab/matlab-agentic-toolkit1.2k
Simulink Agentic Toolkit
PluginMathWorks' official toolkit for reading, building, modifying and testing Simulink models via the MATLAB MCP server, with skills for control design, Simscape, code generation and compliance checks. Needs licensed MATLAB R2023a+ and Simulink; run the official installer in MATLAB first.
matlab/simulink-agentic-toolkit1.2k
Math Modeling Skills
SkillTwo skills for the MCM/ICM and China's CUMCM math modeling contests: solver breaks down problems, picks models from a 95+ scenario decision matrix and gives Python or MATLAB templates; paper coaches abstracts, model validation and formatting from winning papers. Needs Python or MATLAB.
Lupynow/math-modeling-skills423
Jupyter Notebooks
SkillCreates, edits and validates reproducible Python and SQL Jupyter notebooks: organizes cells as reports or tutorials, checks conclusions against actual output and reruns top to bottom before handoff. Maintained by OpenAI in the Data Analytics plugin of openai/plugins.
openai/plugins7.5k
Jupyter MCP Server
MCPConnects agents to live Jupyter notebooks: read, write, insert and execute cells and read multimodal outputs like charts, for interactive data analysis. Bring your own JupyterLab or JupyterHub; open source, maintained by Datalayer.
datalayer/jupyter-mcp-server1.3k
Stata MCP
MCPConnects Stata to VS Code or Cursor and exposes a local MCP endpoint so Claude Code or Codex can write and run do-files and read regression output, with graphs shown in the editor; for empirical research. Needs a licensed Stata 17+, the extension installed and the editor open.
hanlulong/stata-mcp511