Releases: HanSur94/matlab-mcp-server-python
Release list
v2.1.0
v2.1.0
81 changes since the previous release.
New Features
- re-add plotly package as a runtime dependency (maintainer request)
- add pixi engine-free job, gate docker build behind license flag, re-home publish smoke onto pip
- add CI version-drift guard and clean-venv offline smoke test
- rebuild vendor/ wheelhouse to the fastmcp 3.4.4 closure
- fix update_vendor.bat and regenerate requirements-lock.txt to fastmcp 3.4.4 closure
- rewrite docker-compose to network-license mathworks/matlab story
- rewrite Dockerfile to honest mathworks/matlab + network license
- emit structured output + ToolResult(is_error=True) on MATLAB errors
- add ExecuteResult/CheckResult schema-additive models
- generate and commit pixi.lock
- add pixi.toml workspace manifest with matlabengine deliberately absent
- delegate MATLAB engine install to shared script
- register TimingMiddleware in create_server behind monitoring flag
- add TimingMiddleware for per-tool-call metrics
- bump fastmcp to 3.4.4 and drop unused plotly runtime dep
- implement scripts/install_matlab_engine.py — GREEN
- add scale-down tests, replace sleep races, strengthen assertions
- convert asyncio.run tests to async def, consolidate mock_pool fixture
- fix server.py deprecations, session errors, CORS wiring, double-timeout docs
- fix config model — dead attrs, YAML errors, CORS origins, inspect_mode
- background task tracking, executor workspace API, shutdown
- add job state transition guards and TOCTOU-safe session creation
- add workspace API and _needs_replacement flag to MatlabEngineWrapper
- wire security validator into JobExecutor in server.py
- add security parameter to JobExecutor and centralize check_code
Bug Fixes
- lean sdist + changelog that never hard-fails
- clear pre-existing ruff F401/F841 in test files
- add pip to pixi env so
pixi run install-engineworks - stop generic CI building the licensed image for the trivial client (#2)
- map MATLAB_RELEASE to matching matlabengine pin in Dockerfile (#3)
- export detected MATLAB_RELEASE to the engine script (#4)
- let offline install bypass whitelist; catch pip failures in main (#5, #6)
- match 6-char MATLAB release dirs in install glob (#1)
- drop blanket --trusted-host, echo resolved dirs, reconcile banner
- close verification gaps — replace last asyncio.sleep, mark plans complete
- update _make_mock_pool references to conftest make_mock_pool after merge
- fix engine release leak, start timeout, acquire race, and status count
- session ID sanitization against path traversal
- expand blocklist, fix empty-token auth, add security-disable warning
- deduplicate route handlers, fix error count, prime cpu_percent
- add SQL LIMIT, clamp query params, fix path traversal
Documentation
- rework all wiki pages from the current codebase
- record phase executed, verification deferred to user's Win10/MATLAB env
- phase context, research, validation, verification (human_needed) + plan progress
- add plan summary for CI drift guard + offline smoke + pixi + license-gated docker
- add plan summary for conda deprecation + wiki reconciliation
- reconcile wiki Installation.md to R2022b+ and pixi-first
- deprecate conda env files toward pixi
- complete vendor rebuild + update_vendor.bat fix plan summary
- complete Docker rewrite to honest mathworks/matlab plan
- complete structured output for execute_code/check_code plan
- complete pixi manifest/lock/README plan summary
- add pixi quickstart and streamablehttp/sse transport guidance
- complete install.bat delegation plan summary
- complete TimingMiddleware for per-tool-call metrics plan
- complete FastMCP 3.4.4 bump + plotly cleanup plan
- reconcile FastMCP version string in CLAUDE.md to 3.4.4
- complete MATLAB engine install script plan
- create phase plan — 10 plans in 3 waves (pixi/docker/fastmcp 3.4.4)
- mark phase complete — 7/7 plans, 39 issues resolved
- complete test quality improvements plan summary and state update
- add self-check result to SUMMARY
- complete server and config cleanup plan summary and state update
- complete job/session state machine fixes plan
- complete pool resource safety plan summary and state update
- complete centralize-security-in-executor plan
- complete security hardening plan summary and state update
- complete monitoring subsystem security and accuracy fixes plan
- create phase plan — 7 plans across 4 waves for 39 codebase review issues
- add validation strategy and update roadmap for phase 7
- research phase 7 fix all HIGH and MEDIUM codebase review issues
- auto-generated context (infrastructure phase)
CI/CD
- remove AI wiki-gen workflow (docs.yml)
- exercise the real MATLAB release-detection path (no license needed)
Other Changes
- add failing tests for MATLAB engine install script
- Merge pull request #7 from HanSur94/claude/fix-release-pipeline
- Merge pull request #6 from HanSur94/claude/release-2.1.0
- bump version to 2.1.0
- Merge pull request #5 from HanSur94/claude/rework-wiki
- Merge pull request #4 from HanSur94/claude/win10-install-lean-3d6b8f
- Create SECURITY.md
v2.0.2 — Conda/Miniconda Support
What's Changed
Added Anaconda/Miniconda installation support — users can now set up the server with a single conda command.
Conda Support
For end users (no repo clone needed):
conda env create -f environment.yml
conda activate matlab-mcp
matlab-mcp --inspectFor developers (from repo clone):
conda env create -f environment-dev.yml
conda activate matlab-mcp-dev
pytest tests/ -x -qCI
- conda-test-pypi — validates
environment.ymlinstalls from PyPI and server loads - conda-test-dev — validates
environment-dev.ymlinstalls from source and all tests pass - 19 CI jobs total across Linux, Windows, macOS, Docker, conda
Full Changelog
v2.0.1 — CI & Integration Testing
What's Changed
Post-milestone improvements to CI pipeline and test coverage. No production code changes except one bug fix (monitoring routes on streamablehttp).
Bug Fixes
- Monitoring routes on streamablehttp —
/dashboard,/health,/metricsnow registered for the new transport (was SSE-only) - 12 ruff lint errors — unused imports and f-string placeholders cleaned up
CI & Testing
- MCP integration test — live server subprocess + MCP client on localhost (Linux + Windows)
- Docker Compose remote test — client container connects to server container over Docker network with bearer auth
- Windows install.bat smoke test — validates the real user install path produces a working installation
- 17 CI jobs across Linux, Windows (2022 + latest), macOS, Docker
Full Changelog
v1.5.0
What's New
Inspect Mode
- Added
--inspectflag to start the server without MATLAB for tool discovery and CI inspection
Glama Integration
- Added
glama.jsonfor MCP server listing metadata - Server is now listed and inspectable on Glama
Security
- Removed unused
diskcachedependency (medium severity vulnerability)
v1.4.1
v1.4.1 — Documentation
Comprehensive Docstrings
Improved documentation across all source modules:
- server.py:
MatlabMCPServer.__init__,lifespancontext manager,mainentry point, background tasks - pool/engine.py:
EngineStatelifecycle,stateproperty - pool/manager.py:
_make_engine,get_statusreturn dict - jobs/models.py:
JobStatusterminal states,Jobattributes - jobs/executor.py:
_inject_job_context,_wait_for_completion,_safe_serialize - jobs/tracker.py: thread safety, pruning strategy
- monitoring/: collector init, store init, health evaluation, route handlers, dashboard factory + all inner handlers
- output/plotly_style_mapper.py: mapping tables, all trace converters
- tools/monitoring.py: all three tool functions with Parameters/Returns
- tools/custom.py: inner handler docstring
- config.py: all 11 Pydantic models,
load_config,validate_pool
README Updates
- Added Windows one-click installer section (
install.bat) - Updated MATLAB version requirement to R2022b+
- Added offline install instructions
Full Changelog: v1.4.0...v1.4.1
v1.4.0
What's New in v1.4.0
One-Click Windows Installer
install.bat— fully offline, no-admin-rights installer for Windows 10/11- Bundles all 100+ Python wheels in
vendor/for zero-network installation - Auto-detects MATLAB R2022b+ and Python 3.10/3.11/3.12
- Handles corporate SSL proxies, ancient pip versions, and read-only Program Files
- Generates
start-matlab-mcp.batlauncher and prints ready-to-paste config for Claude Desktop, Claude Code, and Cursor
MATLAB Engine API Install Improvements
- Copies Engine source to temp with directory junctions to avoid access-denied errors in Program Files
- Patches
_arch.txtto point to real MATLAB after temp-dir build - Works fully offline with
--no-build-isolation
CI/CD
- Added Windows test matrix: windows-2022 (Win10) + windows-latest (Win11) × Python 3.10 + 3.12
- Cross-platform test fixes for Windows path handling
Bug Fixes
- Fixed
.gitignoreexcludingmonitoring/subpackage from wheel - Fixed unused imports in
monitoring/dashboard.py - Added missing Windows-only dependencies:
pywin32,pywin32-ctypes,colorama,tzdata,async-timeout,tomli,taskgroup
Full Changelog: v1.3.0...v1.4.0
v1.3.0
What's Changed
Test Coverage
- Increased code coverage from 63% to 90% with 385 new tests across 11 test files
- Added comprehensive tests for all previously untested modules:
tools/jobs,tools/discovery,tools/custom,tools/files,tools/adminserver(MatlabMCPServer, create_server, main)monitoring/dashboard,monitoring/store,monitoring/collectorjobs/executor,output/formatter,output/thumbnailsession/manager,pool/engine,monitoring/health
- 755 tests now passing (up from 378)
Modules at 100% Coverage
tools/jobs, tools/discovery, tools/admin, tools/core, jobs/models, jobs/tracker, monitoring/health, monitoring/routes, output/formatter, output/thumbnail, session/manager
v1.2.0
v1.2.0
This release introduces automated wiki generation and enhances documentation with MATLAB-to-Plotly plot conversion features.
New Features
- Auto-generate all 11 wiki pages via Claude API on push to master
Documentation
- Add MATLAB-to-Plotly plot conversion feature section to README
- Add Plotly conversion screenshot to README
- Add comprehensive specification for full wiki auto-generation with file mappings, validation, and error handling
v1.0.1 — CI fixes & security hardening
What's Changed
Security
- Fixed incomplete blocklist in shipped
config.yaml— all 11 blocked functions (system,unix,dos,!,eval,feval,evalc,evalin,assignin,perl,python) are now listed, matching code defaults and documentation
Fixes
- Fixed 35 ruff lint errors (unused imports/variables) across src/ and tests/
- Bumped minimum Python from 3.9 to 3.10 (
fastmcprequires 3.10+) - Added
psutilanduvicornto[dev]extras so monitoring works out of the box - Fixed
get_error_logdocs to show actual default (20, not "varies") - Fixed README workspace isolation description to include all 5 cleanup commands
- Added PyPI keywords and classifiers for better discoverability
Upgrade
pip install --upgrade matlab-mcp-pythonFull changelog: v1.0.0...v1.0.1
v1.0.0 — First stable release
MATLAB MCP Server v1.0.0
Connect any AI agent (Claude, Cursor, Copilot) to MATLAB via the Model Context Protocol.
Highlights
- 20 MCP tools — execute code, async jobs, file I/O, toolbox discovery, code checking, monitoring
- Elastic engine pool — scales 2–10+ MATLAB engines based on demand
- Interactive Plotly plots — MATLAB figures auto-converted to Plotly JSON with WebGL for large datasets
- Async job system — long-running simulations with progress reporting
- Custom tools — expose your
.mfunctions as first-class AI tools via YAML - Monitoring dashboard — live gauges, time-series charts, execution log, health/metrics endpoints
- Security — function blocklist, workspace isolation, filename sanitization, upload limits
- Multi-user support — SSE transport with session isolation
- Docker support — Dockerfile and docker-compose.yml included
- Cross-platform — macOS, Windows, Linux (MATLAB 2020b+)
Install
pip install matlab-mcp-pythonRequires MATLAB 2020b+ with the Engine API for Python installed.
Quick Start
# Run the server
matlab-mcp
# Connect to Claude Code
claude mcp add matlab -- matlab-mcp