A Model Context Protocol (MCP) server that enables seamless integration between MATLAB and MCP-compatible applications like Claude Code. Execute MATLAB code, manage workspace variables, create plots, handle data I/O, and more - all through a token-efficient MCP interface.
- Execute MATLAB Code: Run MATLAB commands and scripts with persistent session
- Workspace Management: Get, set, list, and clear workspace variables
- Figure Operations: Save, export, and close MATLAB figures (PNG, SVG, PDF, etc.)
- Data I/O: Import/export data (CSV, JSON, XLSX) and load/save MAT files
- Environment Info: Check MATLAB version and installed toolboxes
- Documentation Access: Get MATLAB help, search functions, and find toolbox locations
- Token-Efficient Design: Multi-operation tools minimize API calls
- JSON Resources: Structured access to workspace, toolboxes, and session info
Prerequisites:
- MATLAB installed on your system
uvpackage manager installed (install uv)
Choose your MCP client below for setup instructions:
Claude Code (CLI)
Using CLI (Recommended):
# macOS (Apple Silicon)
claude mcp add --transport stdio matlab \
--env DYLD_LIBRARY_PATH=/Applications/MATLAB_R2025b.app/bin/maca64 \
-- uvx matlab-mcp-server
# macOS (Intel)
claude mcp add --transport stdio matlab \
--env DYLD_LIBRARY_PATH=/Applications/MATLAB_R2025b.app/bin/maci64 \
-- uvx matlab-mcp-server
# Linux
claude mcp add --transport stdio matlab \
--env LD_LIBRARY_PATH=/usr/local/MATLAB/R2024b/bin/glnxa64 \
-- uvx matlab-mcp-serverScope options:
- Default (local): Private to you, only this project
--scope project: Share with team (stores in.mcp.json, can be committed to git)--scope user: Available across all your projects
Manual configuration (.mcp.json in project root):
{
"mcpServers": {
"matlab": {
"command": "uvx",
"args": ["matlab-mcp-server"],
"env": {
"DYLD_LIBRARY_PATH": "/Applications/MATLAB_R2025b.app/bin/maca64"
}
}
}
}Replace with your MATLAB path. Use LD_LIBRARY_PATH for Linux.
Verify:
claude mcp list
claude mcp info matlabClaude Desktop
Configuration File Location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Configuration:
{
"mcpServers": {
"matlab": {
"command": "uvx",
"args": ["matlab-mcp-server"],
"env": {
"DYLD_LIBRARY_PATH": "/Applications/MATLAB_R2025b.app/bin/maca64"
}
}
}
}Platform-specific environment variables:
- macOS (Apple Silicon):
"DYLD_LIBRARY_PATH": "/Applications/MATLAB_R2025b.app/bin/maca64" - macOS (Intel):
"DYLD_LIBRARY_PATH": "/Applications/MATLAB_R2025b.app/bin/maci64" - Linux:
"LD_LIBRARY_PATH": "/usr/local/MATLAB/R2024b/bin/glnxa64" - Windows: Usually not needed (installer handles library paths)
Steps:
- Create or edit the config file at the location above
- Add your MCP server configuration with correct MATLAB path
- Restart Claude Desktop completely (quit and reopen)
- Look for the MCP server icon (π¨) in Claude Desktop interface
Cursor
UI Configuration:
Go to Cursor Settings β MCP β Add new MCP Server:
- Name:
matlab - Command:
uvx matlab-mcp-server - Click
Editto add environment variables
Configuration File Location:
- macOS:
~/Library/Application Support/Cursor/mcp_config.json - Windows:
%APPDATA%\Cursor\mcp_config.json - Linux:
~/.config/Cursor/mcp_config.json
Configuration:
{
"mcpServers": {
"matlab": {
"command": "uvx",
"args": ["matlab-mcp-server"],
"env": {
"DYLD_LIBRARY_PATH": "/Applications/MATLAB_R2025b.app/bin/maca64"
}
}
}
}Replace with your MATLAB path (see Claude Desktop section for platform-specific paths).
Steps:
- Create
mcp_config.jsonif it doesn't exist - Add MCP server configuration
- Restart Cursor completely
VS Code (GitHub Copilot)
VS Code Settings (User or Workspace):
{
"github.copilot.chat.mcp.servers": {
"matlab": {
"command": "uvx",
"args": ["matlab-mcp-server"],
"env": {
"DYLD_LIBRARY_PATH": "/Applications/MATLAB_R2025b.app/bin/maca64"
}
}
}
}CLI Installation:
# macOS (Apple Silicon)
code --add-mcp '{"name":"matlab","command":"uvx","args":["matlab-mcp-server"],"env":{"DYLD_LIBRARY_PATH":"/Applications/MATLAB_R2025b.app/bin/maca64"}}'
# Linux
code --add-mcp '{"name":"matlab","command":"uvx","args":["matlab-mcp-server"],"env":{"LD_LIBRARY_PATH":"/usr/local/MATLAB/R2024b/bin/glnxa64"}}'Replace with your MATLAB path (see Claude Desktop section for platform-specific paths).
Resources:
Codex
CLI:
codex mcp add matlab uvx "matlab-mcp-server"Then manually edit ~/.codex/config.toml to add environment variables:
Edit ~/.codex/config.toml:
[mcp_servers.matlab]
command = "uvx"
args = ["matlab-mcp-server"]
[mcp_servers.matlab.env]
DYLD_LIBRARY_PATH = "/Applications/MATLAB_R2025b.app/bin/maca64"Platform-specific environment variables:
- macOS (Apple Silicon):
DYLD_LIBRARY_PATH = "/Applications/MATLAB_R2025b.app/bin/maca64" - macOS (Intel):
DYLD_LIBRARY_PATH = "/Applications/MATLAB_R2025b.app/bin/maci64" - Linux:
LD_LIBRARY_PATH = "/usr/local/MATLAB/R2024b/bin/glnxa64"
Resources:
For 11 additional clients (Windsurf, Continue, Amp, Cline, Gemini CLI, Goose, Kiro, LM Studio, opencode, Qodo Gen, Warp), see Complete Setup Guide β
If you don't know your MATLAB library path, use the configuration helper:
curl -fsSL https://raw.githubusercontent.com/subspace-lab/matlab-mcp-server/main/install-matlab-mcp.sh | bashThe script will:
- Auto-detect your MATLAB installation
- Display the config with the correct paths
- You copy and paste it into your MCP client's config file
That's it! When your MCP client starts, uvx will automatically:
- Download
matlab-mcp-serverfrom PyPI - Install
matlabengineand all dependencies - Start the MATLAB MCP server
If you prefer to install manually or the automated installer doesn't work:
# Navigate to your MATLAB Python engine directory
cd /Applications/MATLAB_R20XXx.app/extern/engines/python # macOS
# OR
cd /usr/local/MATLAB/R20XXx/extern/engines/python # Linux
# Install using uv
uv pip install .Replace R20XXx with your MATLAB version (e.g., R2024a, R2024b, R2025a).
uv pip install matlab-mcp-serverFollow the configuration instructions for your MCP client in the sections above. Use matlab-mcp as the command instead of uvx matlab-mcp-server.
Example for Claude Code (.mcp.json in project root):
{
"mcpServers": {
"matlab": {
"command": "matlab-mcp",
"env": {
"DYLD_LIBRARY_PATH": "/Applications/MATLAB_R2025b.app/bin/maca64"
}
}
}
}Replace with your MATLAB path:
- macOS (Apple Silicon):
DYLD_LIBRARY_PATHβ/Applications/MATLAB_R20XXx.app/bin/maca64 - macOS (Intel):
DYLD_LIBRARY_PATHβ/Applications/MATLAB_R20XXx.app/bin/maci64 - Linux:
LD_LIBRARY_PATHβ/usr/local/MATLAB/R20XXx/bin/glnxa64 - Windows: Usually not needed
For other MCP clients, see configuration sections above or MCP_CLIENT_SETUP.md
The server provides 8 MCP tools for interacting with MATLAB:
execute_matlab- Execute MATLAB code and get resultsworkspace- Manage workspace variables (get, set, list, clear)figure- Save, export, and manage MATLAB figures (PNG, SVG, PDF, etc.)data_io- Import/export data in various formats (CSV, JSON, XLSX, MAT files)env- Get MATLAB version and check installed toolboxesget_help- Access MATLAB documentation and search functionsroute_intent- Suggest appropriate tool mode (meta-tool)select_mode- Enable optional tool groups (meta-tool)
For detailed documentation on each tool, see TOOLS.md or MATLAB_MCP_GUIDE.md.
If you get an error about MATLAB engine not being found:
- Ensure MATLAB is properly installed
- Verify MATLAB Engine API for Python is installed
- Check Python version matches MATLAB compatibility
- Verify library path is correctly set in config
Default MATLAB locations:
- macOS:
/Applications/MATLAB_R20XXx.app - Linux:
/usr/local/MATLAB/R20XXx - Windows:
C:\Program Files\MATLAB\R20XXx
If MATLAB is in a non-standard location, update the library path in your config.
- CONTRIBUTING.md - Development setup and guidelines
- PLANNING.md - Roadmap and architecture
- MATLAB_MCP_GUIDE.md - Detailed usage guide
- TOOLS.md - Tool catalog
MIT License
Contributions are welcome! Please see CONTRIBUTING.md for development setup and guidelines.