loading…
Search for a command to run...
loading…
Give AI agents structured access to Simulink models via the MATLAB Engine for Python, enabling model lifecycle management, parameter queries, diagnostics, and m
Give AI agents structured access to Simulink models via the MATLAB Engine for Python, enabling model lifecycle management, parameter queries, diagnostics, and more.
Simulink MCP tools + Claude/Codex skill — give AI agents structured access to Simulink models via the MATLAB Engine for Python.
| Component | Path | What it does |
|---|---|---|
| MCP Server | server/ |
30 FastMCP tools: model lifecycle, parameters, diagnostics, runtime, capture |
| MATLAB Helpers | matlab/ |
32 .m scripts that implement each tool on the MATLAB side |
| Claude/Codex Skill | skill/ |
Routing guide (SKILL.md, map.md, patterns) + hooks that steer AI toward MCP tools |
git clone https://github.com/wlin4480/simulink-mcp
cd simulink-mcp
.\install.ps1
The installer:
~\.shared-skills\simulink-toolbox~\.claude\skills\) and Codex (~\.codex\skills\)~\.claude\settings.json and ~\.codex\hooks.jsoninstall.ps1 handles this automatically. To install manually:
# 1. Install the server as a global CLI command (no path dependency)
pip install -e C:\path\to\simulink-mcp
# 2. Install matlabengine — version must match your MATLAB release
pip install matlabengine==25.2 # R2025b
pip install matlabengine==24.2 # R2024b
After pip install -e, the simulink-mcp command is available system-wide.
You can clone the repo anywhere and move it later without breaking Claude Desktop.
Add to %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"simulink-tools": {
"command": "simulink-mcp",
"env": {
"SLX_WORKSPACE": "C:\\path\\to\\your\\models"
}
}
}
}
Restart Claude Desktop. The server cold-starts in ~20 s on first tool call.
| Variable | Default | Description |
|---|---|---|
SLX_WORKSPACE |
Current directory | Directory to search for .slx model files |
SLX_HELPERS_PATH |
Bundled matlab/ |
Override path to the MATLAB helper scripts |
simulink_load_model · simulink_create_model · simulink_close_model · simulink_loaded_models · simulink_model_status · simulink_save_model
simulink_get_block_tree · simulink_explore_block · simulink_describe_block_ports · simulink_trace_port_connections · simulink_library_lookup
simulink_query_params · simulink_set_block_params · simulink_patch_and_verify
simulink_add_block · simulink_add_subsystem · simulink_connect_ports · simulink_delete_block
simulink_compile_diagnostics · simulink_step_diagnostics · simulink_solver_audit
simulink_block_workspace_dependency · simulink_powerlib_net_query
simulink_run_script · simulink_run_script_async · simulink_poll_script
simulink_screenshot · simulink_capture_figure
simulink_workspace_set · simulink_run_window · simulink_runtime_reset · simulink_signal_snapshot
simulink_ping
The skill/ directory is the simulink-toolbox skill — loaded by Claude Code and Codex to route Simulink-related tasks to MCP tools instead of shell MATLAB calls.
After install.ps1, invoke with /simulink-toolbox in Claude Code, or any Simulink-related prompt triggers it automatically via hooks.
| Platform | File | Effect |
|---|---|---|
| Claude Code | hooks/claude/user-prompt-submit.sh |
Injects routing reminder on Simulink keywords |
| Claude Code | hooks/claude/pre-tool-use.sh |
Blocks Bash calls that invoke MATLAB directly |
| Codex | hooks/codex/codex_simulink_hook.py |
Same + warns on find_system inside run_script |
| Pattern | When to use |
|---|---|
patterns/build-and-verify.md |
Building a new model from scratch |
patterns/debug-existing-model.md |
Diagnosing errors in an existing model |
patterns/trace-connectivity.md |
Tracing signal paths and port connections |
patterns/param-sweep.md |
Long-running parameter sweeps |
simulink-mcp/
├── install.ps1 # One-click installer (Windows)
├── requirements.txt
├── server/
│ ├── server.py # FastMCP entry point
│ ├── simulink_tools.py # All 30 tool implementations
│ ├── matlab_session.py # MATLAB Engine session manager
│ └── exceptions.py
├── matlab/
│ └── slx_*.m # 32 MATLAB helper scripts
└── skill/
├── SKILL.md # Skill entry point
├── map.md # Intent → tool routing table
├── INVARIANTS.md # Design constraints
├── index.json # Tool inventory
├── patterns/ # Step-by-step task patterns
└── hooks/ # Claude + Codex hooks
MIT
Run in your terminal:
claude mcp add simulink-mcp -- npx