🚀 COMSOL MCP 服務器
COMSOL MCP 服務器用於通過 AI 代理實現 COMSOL Multiphysics 模擬自動化。
English | 中文
🚀 快速開始
COMSOL MCP 服務器旨在構建一個完整的系統,使 AI 代理(如 Claude、opencode)能夠通過 MCP 協議執行多物理場模擬。主要功能包括模型管理、幾何構建、物理配置、網格劃分與求解、結果可視化以及知識集成等。
✨ 主要特性
- 模型管理:支持創建、加載、保存模型以及進行版本控制。
- 幾何構建:可創建塊、圓柱體、球體等幾何形狀,並進行布爾運算。
- 物理配置:涵蓋傳熱、流體流動、靜電學、固體力學等多種物理場。
- 網格劃分與求解:支持自動網格劃分,可進行穩態和瞬態研究。
- 結果可視化:能夠評估表達式並導出繪圖。
- 知識集成:嵌入指南並支持 PDF 語義搜索。
📦 安裝指南
環境要求
- COMSOL Multiphysics(版本 5.x 或 6.x)
- Python 3.10+(非 Windows 應用商店版本)
- Java 運行時環境(MPh/COMSOL 所需)
安裝步驟
git clone https://github.com/wjc9011/comsol-mcp.git
cd comsol-mcp
python -m pip install -e .
python -m src.server
構建 PDF 知識庫
pip install pymupdf chromadb sentence-transformers
python scripts/build_knowledge_base.py
python scripts/build_knowledge_base.py --status
💻 使用示例
選項 1:與 opencode 配合使用
在項目根目錄創建 opencode.json 文件:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"comsol": {
"type": "local",
"command": ["python", "-m", "src.server"],
"enabled": true,
"environment": {
"HF_ENDPOINT": "https://hf-mirror.com"
},
"timeout": 30000
}
}
}
選項 2:與 Claude Desktop 配合使用
{
"mcpServers": {
"comsol": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "/path/to/comsol-mcp"
}
}
}
📚 詳細文檔
代碼結構
comsol_mcp/
├── opencode.json # opencode 的 MCP 服務器配置
├── pyproject.toml # Python 項目配置
├── README.md # 本文件
│
├── src/
│ ├── server.py # MCP 服務器入口點
│ ├── tools/
│ │ ├── session.py # COMSOL 會話管理(啟動/停止/狀態)
│ │ ├── model.py # 模型的增刪改查 + 版本控制
│ │ ├── parameters.py # 參數管理 + 掃描
│ │ ├── geometry.py # 幾何創建(塊/圓柱體/球體)
│ │ ├── physics.py # 物理接口 + 邊界條件
│ │ ├── mesh.py # 網格生成
│ │ ├── study.py # 研究創建 + 求解(同步/異步)
│ │ └── results.py # 結果評估 + 導出
│ ├── resources/
│ │ └── model_resources.py # MCP 資源(模型樹、參數)
│ ├── knowledge/
│ │ ├── embedded.py # 嵌入式物理指南 + 故障排除
│ │ ├── retriever.py # PDF 向量搜索檢索器
│ │ └── pdf_processor.py # PDF 分塊 + 嵌入
│ ├── async_handler/
│ │ └── solver.py # 帶進度跟蹤的異步求解
│ └── utils/
│ └── versioning.py # 模型版本路徑管理
│
├── scripts/
│ └── build_knowledge_base.py # 構建 PDF 向量數據庫
│
├── client_script/ # 獨立建模腳本(示例)
│ ├── create_chip_tsv_final.py # 示例:芯片熱模型
│ ├── create_micromixer_auto.py # 示例:流體流動模擬
│ ├── create_chip_thermal*.py # 各種芯片熱模型變體
│ ├── create_micromixer*.py # 各種微混合器變體
│ ├── visualize_*.py # 結果可視化腳本
│ ├── add_visualization.py # 向模型添加繪圖組
│ └── test_*.py # 集成測試
│
├── comsol_models/ # 保存的模型(結構化)
│ ├── chip_tsv_thermal/
│ │ ├── chip_tsv_thermal_20260216_*.mph
│ │ └── chip_tsv_thermal_latest.mph
│ └── micromixer/
│ └── micromixer_*.mph
│
└── tests/
└── test_basic.py # 單元測試
可用工具(共 80 多個)
會話(4 個)
| 工具 |
描述 |
comsol_start |
啟動本地 COMSOL 客戶端 |
comsol_connect |
連接到遠程服務器 |
comsol_disconnect |
清除會話 |
comsol_status |
獲取會話信息 |
模型(9 個)
| 工具 |
描述 |
model_load |
加載 .mph 文件 |
model_create |
創建空模型 |
model_save |
保存到文件 |
model_save_version |
保存時添加時間戳 |
model_list |
列出已加載的模型 |
model_set_current |
設置活動模型 |
model_clone |
克隆模型 |
model_remove |
從內存中移除模型 |
model_inspect |
獲取模型結構 |
參數(5 個)
| 工具 |
描述 |
param_get |
獲取參數值 |
param_set |
設置參數 |
param_list |
列出所有參數 |
param_sweep_setup |
設置參數掃描 |
param_description |
獲取/設置參數描述 |
幾何(14 個)
| 工具 |
描述 |
geometry_list |
列出幾何序列 |
geometry_create |
創建幾何序列 |
geometry_add_feature |
添加通用特徵 |
geometry_add_block |
添加矩形塊 |
geometry_add_cylinder |
添加圓柱體 |
geometry_add_sphere |
添加球體 |
geometry_add_rectangle |
添加二維矩形 |
geometry_add_circle |
添加二維圓形 |
geometry_boolean_union |
合併對象 |
geometry_boolean_difference |
減去對象 |
geometry_import |
導入 CAD 文件 |
geometry_build |
構建幾何 |
geometry_list_features |
列出特徵 |
geometry_get_boundaries |
獲取邊界編號 |
物理(16 個)
| 工具 |
描述 |
physics_list |
列出物理接口 |
physics_get_available |
可用的物理類型 |
physics_add |
添加通用物理 |
physics_add_electrostatics |
添加靜電學 |
physics_add_solid_mechanics |
添加固體力學 |
physics_add_heat_transfer |
添加傳熱 |
physics_add_laminar_flow |
添加層流 |
physics_configure_boundary |
配置邊界條件 |
physics_set_material |
分配材料 |
physics_list_features |
列出物理特徵 |
physics_remove |
移除物理 |
multiphysics_add |
添加耦合 |
physics_interactive_setup_heat |
交互式熱邊界條件設置 |
physics_setup_heat_boundaries |
配置熱邊界 |
physics_interactive_setup_flow |
交互式流邊界條件設置 |
physics_boundary_selection |
通用邊界設置 |
網格(3 個)
| 工具 |
描述 |
mesh_list |
列出網格序列 |
mesh_create |
生成網格 |
mesh_info |
獲取網格統計信息 |
研究與求解(8 個)
| 工具 |
描述 |
study_list |
列出研究 |
study_solve |
同步求解 |
study_solve_async |
後臺異步求解 |
study_get_progress |
獲取求解進度 |
study_cancel |
取消求解 |
study_wait |
等待求解完成 |
solutions_list |
列出解 |
datasets_list |
列出數據集 |
結果(9 個)
| 工具 |
描述 |
results_evaluate |
評估表達式 |
results_global_evaluate |
評估標量 |
results_inner_values |
獲取時間步 |
results_outer_values |
獲取掃描值 |
results_export_data |
導出數據 |
results_export_image |
導出繪圖圖像 |
results_exports_list |
列出導出節點 |
results_plots_list |
列出繪圖節點 |
知識(8 個)
| 工具 |
描述 |
docs_get |
獲取文檔 |
docs_list |
列出可用文檔 |
physics_get_guide |
物理快速指南 |
troubleshoot |
故障排除幫助 |
modeling_best_practices |
最佳實踐 |
pdf_search |
搜索 PDF 文檔 |
pdf_search_status |
PDF 搜索狀態 |
pdf_list_modules |
列出 PDF 模塊 |
示例案例
案例 1:帶 TSV 的芯片熱模型
對具有硅通孔(TSV)的硅芯片進行 3D 熱分析。
幾何:60×60×5 µm 的芯片,5 µm 直徑的 TSV 孔,10×10 µm 的熱源
腳本:client_script/create_chip_tsv_final.py
運行:
cd /path/to/comsol-mcp
python client_script/create_chip_tsv_final.py
結果:在 1 MW/m² 的熱通量下,環境溫度的上升情況
案例 2:微混合器流體流動
對微流體通道中的 3D 層流進行模擬。
幾何:600×100×50 µm 的矩形通道
腳本:client_script/create_micromixer_auto.py
運行:
cd /path/to/comsol-mcp
python client_script/create_micromixer_auto.py
結果:速度分佈和濃度混合輪廓
模型版本控制
模型以結構化路徑保存:
./comsol_models/{model_name}/{model_name}_{timestamp}.mph
./comsol_models/{model_name}/{model_name}_latest.mph
示例:
./comsol_models/chip_tsv_thermal/chip_tsv_thermal_20260216_140514.mph
./comsol_models/chip_tsv_thermal/chip_tsv_thermal_latest.mph
🔧 技術細節
1. mph 庫 API 模式
jm = model.java
comp = jm.component().create('comp1', True)
geom = comp.geom().create('geom1', 3)
physics = comp.physics().create('spf', 'LaminarFlow', 'geom1')
bc = physics.create('inl1', 'InletBoundary')
bc.selection().set([1, 2, 3])
bc.set('U0', '1[mm/s]')
2. 邊界條件屬性名稱
| 物理場 |
條件 |
屬性 |
| 傳熱 |
熱通量邊界 |
q0 |
| 傳熱 |
溫度邊界 |
T0 |
| 傳熱 |
對流熱通量 |
h, Text |
| 層流 |
入口邊界 |
U0, NormalInflowVelocity |
| 層流 |
出口邊界 |
p0 |
3. 客戶端會話限制
mph 庫創建一個單例 COMSOL 客戶端。每個 Python 進程只能存在一個客戶端:
client.clear()
4. 離線嵌入模型
PDF 搜索支持使用本地 HuggingFace 緩存進行離線操作:
export HF_ENDPOINT=https://hf-mirror.com
開發狀態
| 階段 |
描述 |
狀態 |
| 1 |
基本框架 + 會話 + 模型 |
完成 |
| 2 |
參數 + 求解 + 結果 |
完成 |
| 3 |
幾何 + 物理 + 網格 |
完成 |
| 4 |
嵌入式知識 + 工具文檔 |
完成 |
| 5 |
PDF 向量檢索 |
完成 |
| 6 |
集成測試 |
進行中 |
下一步計劃
- 完成階段 6 - 進行帶有適當邊界條件的完整集成測試
- 可視化導出 - 從繪圖組生成 PNG 圖像
- LSP 警告 - 修復 physics.py 中的類型提示
- 更多示例 - 添加靜電學、固體力學案例
- 錯誤處理 - 改進錯誤消息和恢復機制
資源
| URI |
描述 |
comsol://session/info |
會話信息 |
comsol://model/{name}/tree |
模型樹結構 |
comsol://model/{name}/parameters |
模型參數 |
comsol://model/{name}/physics |
物理接口 |
📄 許可證
本項目採用 MIT 許可證。