/ 目錄 / 演練場 / MATLAB
● 官方 matlab 🔑 需要你的金鑰

MATLAB

作者 matlab · matlab/matlab-mcp-core-server

從 AI 代理執行 MATLAB 程式碼、測試與工具箱 — MathWorks 官方 MCP。

MathWorks 官方 MATLAB MCP。讓代理能夠執行 MATLAB 運算式、執行 .m 腳本檔案、運行單元測試,並偵測已安裝的工具箱。將 LLM 推理能力與 MATLAB 中的數值/模擬工作負載串接起來。

為什麼要用

核心特性

即時演示

實際使用效果

matlab.replay ▶ 就緒
0/0

安裝

選擇你的客戶端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "matlab": {
      "command": "uvx",
      "args": [
        "matlab-mcp-core-server"
      ]
    }
  }
}

開啟 Claude Desktop → Settings → Developer → Edit Config。儲存後重啟應用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "matlab": {
      "command": "uvx",
      "args": [
        "matlab-mcp-core-server"
      ]
    }
  }
}

Cursor 使用與 Claude Desktop 相同的 mcpServers 格式。專案級設定優先於全域。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "matlab": {
      "command": "uvx",
      "args": [
        "matlab-mcp-core-server"
      ]
    }
  }
}

點擊 Cline 側欄中的 MCP Servers 圖示,然後選 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "matlab": {
      "command": "uvx",
      "args": [
        "matlab-mcp-core-server"
      ]
    }
  }
}

格式與 Claude Desktop 相同。重啟 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "matlab",
      "command": "uvx",
      "args": [
        "matlab-mcp-core-server"
      ]
    }
  ]
}

Continue 使用伺服器物件陣列,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "matlab": {
      "command": {
        "path": "uvx",
        "args": [
          "matlab-mcp-core-server"
        ]
      }
    }
  }
}

加入 context_servers。Zed 儲存後熱重載。

claude mcp add matlab -- uvx matlab-mcp-core-server

一行命令搞定。用 claude mcp list 驗證,claude mcp remove 移除。

使用場景

實戰用法: MATLAB

產生、分析並執行 MATLAB 腳本

👤 工程研究人員、控制/DSP 工程師 ⏱ ~20 min intermediate

何時使用: 你想以對話方式在 MATLAB 中快速實作運算 — 產生、執行、調整、重複。

前置條件
  • 已安裝 MATLAB R2020b+ 且設定於 PATH 中 — 在終端機執行 matlab -help 應能正常運作
  • 將 MATLAB 登錄為 Personal Automation Server — 在 MATLAB 中執行一次 matlab.engine.shareEngine — 詳見 MCP README
步驟
  1. 確認可用功能
    偵測已安裝的 MATLAB 工具箱。我需要 Signal Processing 和 Control System。✓ 已複製
    → 列出各工具箱及版本;代理了解可使用的功能
  2. 產生腳本
    撰寫一個 MATLAB 腳本,載入 signal.mat,套用 50Hz 的 Butterworth 低通濾波器,並繪製濾波前後的對比圖。儲存為 ./lp_filter.m。✓ 已複製
    → .m 檔案已寫入
  3. 檢查後執行
    對 lp_filter.m 執行 check_matlab_code,修正任何問題,然後執行 run_matlab_file 並回傳圖表路徑。✓ 已複製
    → 靜態檢查通過,腳本執行完畢,輸出圖表已儲存

結果: 無需切換視窗,在幾分鐘內完成可運作的 MATLAB 原型。

注意事項
  • 相對路徑會失效 — MATLAB 從自己的工作目錄啟動 — 在 script_path 及腳本內部一律使用絕對路徑;或在腳本第一行 cd 至你的目錄
  • 腳本在非互動模式下因 uiopen/繪圖視窗而卡住 — 使用 figure('Visible','off') 並以 saveas() 儲存至檔案,而非直接顯示
搭配使用: filesystem

執行 MATLAB 單元測試並迭代修正失敗項目

👤 維護 MATLAB 程式碼庫的工程師 ⏱ ~20 min intermediate

何時使用: 你有一個測試套件(matlab.unittest),希望代理執行並協助修正回歸問題。

前置條件
  • 使用 matlab.unittest 的測試檔案 — 繼承自 matlab.unittest.TestCase 的類別
步驟
  1. 執行測試套件
    執行 ./tests/MyAlgorithmTest.m 中的測試。回傳每個方法的通過/失敗狀態及錯誤訊息。✓ 已複製
    → 結構化測試報告
  2. 診斷問題
    針對每個失敗項目,讀取斷言內容與實作程式碼,說明兩者的落差。✓ 已複製
    → 各失敗項目的根本原因
  3. 修正並重新執行
    對實作程式碼(非測試)套用最小幅度的修正,重複執行直到全部通過。✓ 已複製
    → 所有測試通過

結果: 由代理驅動的 MATLAB 程式碼 TDD 循環。

注意事項
  • 測試依賴的檔案不在 MATLAB 路徑中 — 在測試開頭加入 addpath(genpath(pwd)),或明確傳入 project_path

組合

與其他 MCP 搭配,撬動十倍槓桿

matlab + filesystem

讀取資料檔案 → 執行 MATLAB 運算 → 儲存結果檔案

讀取 ./data/*.csv,撰寫一個 MATLAB 腳本逐一處理,將輸出儲存至 ./processed/。執行並確認結果。✓ 已複製
matlab + git

對代理產生的腳本進行版本控制

產生 MATLAB 分析腳本,執行並確認結果無誤後,以描述性訊息提交腳本至版本庫。✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
detect_matlab_toolboxes 第一步 — 了解可使用的工具箱 free
check_matlab_code script_path (absolute) 執行前先進行靜態檢查 — 快速發現明顯問題 free
evaluate_matlab_code code: str, project_path (absolute) 執行單次運算式或內嵌程式碼 free
run_matlab_file script_path (absolute) 執行已儲存的 .m 檔案 free
run_matlab_test_file script_path (absolute) 結構化測試執行 free

成本與限制

運行它的成本

API 配額
無 — 本機 MATLAB 執行
每次呼叫 Token 數
腳本輸出可能很大(圖表、表格)。請限制回傳的資料量。
費用
需要 MATLAB 授權(非免費);MCP 本身免費
提示
讓代理將圖表輸出至檔案,而非在回應中回傳大型數值矩陣

安全

權限、密鑰、影響範圍

憑證儲存: 無 — 本機執行
資料出站: 無 — MATLAB 在本機執行

故障排查

常見錯誤與修復

'MATLAB engine not found' on first call

將 MATLAB 登錄為 Personal Automation Server:在 MATLAB 中執行 matlab.engine.shareEngine,然後重新啟動 MCP。

驗證: 在終端機執行:`python -c 'import matlab.engine; matlab.engine.find_matlab()'` — 應列出可用的引擎
Scripts error with 'Undefined function'

該函式所在的工具箱未安裝,或未加入 MATLAB 路徑。執行 detect_matlab_toolboxes 並確認。

check_matlab_code reports nothing but runtime fails

mlint 只能捕捉語法問題,無法偵測語意問題。使用 evaluate_matlab_code 搭配小型測試輸入來驗證邏輯。

Long-running script times out

MCP 客戶端有每次呼叫的逾時限制。將腳本拆分為多個階段,將中間結果儲存至磁碟後逐段執行。

替代方案

MATLAB 對比其他方案

替代方案何時用它替代權衡
Octave via shell MCP你沒有 MATLAB 授權且需要開源替代方案核心語法相容,但工具箱往往有顯著差異
Python (numpy/scipy) via a Python-exec MCP你願意將工作流程轉換至 Python免費且生態系龐大,但需放棄 MATLAB 專屬工具箱(如 Simulink 等)

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills