Skip to main content
Glama
kimlnw

openfoam-mcp

by kimlnw

OpenFOAM MCP —— 适用任何 MCP 客户端的 CFD 副驾驶

openfoam-mcp 是一个 Model Context Protocol 服务器,它能将 AI 助手(Claude Desktop 以及其他任意 MCP 客户端)变成 OpenFOAM 搭建与调试的副驾驶。它可以搭建可运行的算例、安全地编辑字典文件、计算近壁网格尺寸、算出入口湍流参数,还可以读取求解器日志,告诉你某次仿真到底是收敛了还是崩了这个——全程无需离开聊天界面。

大多数工具都是纯 Python 实现,无需安装 OpenFOAM,因此可以在任何环境中运行。少数需要调用 OpenFOAM 工具(例如 blockMesh、checkMesh)的插件,调用时会先检测环境,若环境中未安装 OpenFOAM,也能友好地降级处理。

为什么有用

搭建 CFD 算例本就涉及繁琐的簿记工作:选择合适的 y/c,保持网格与每个 0/ 场的边界类型匹配,为所选湍流模型配置一致的湍流场,维持稳定的 Courant 数,以及在大量的残差结果中判断计算是否收敛。这个服务器通过自然语言就能替你完成这些枯燥的内容。

工具

工具

说明

list_solvers

列出可以进行脚手架搭建的求解器模板(simpleFoam、pimpleFoam、icoFoam)。

flow_regime

计算雷诺数,给出层流/湍流状态判定以及湍流模型推荐。

first_cell_height

针对目标 y/c 返回第一层网格高度(平边界层相关性)。

footer_plus_from_height

逆向计算:由网格高度推算 y/c,并给出流动状态警告。

inlet_turbulence

根据湍流强度和长度尺度求出入口 k、epsilon、omega、nut 之值。

time_step_from_cfl

根据目标 Courant 数求出瞬态时间步长。

scaffold_case

为指定求解器生成一个可运行的算例目录树(system/、constant/、0/)。

read_dict

读取一个字典文件或其中单个条目(通过 foamDictionary 实现)。

set_dict_entry

设置字典关键字(嵌套的方式通过 hoamDictionary 完成;否则使用文本回退进行修改)。

set_boundary_condition

在 0/ 场中设置或插入某个 patch 的 boundaryField 条目。

check_case

校验算例:检查相关文件是否存在、湍流场是否一致、patch 与网格是否匹配。

analyze_residuals

解析求解日志 → 输出分场残差下降量及收敛性判定。

run_openfoam_command

在算例内运行一个白名单Allow的 OpenFOAM 命令(如果已安装)。

安装与运行

该服务器以 PyPI 包的形式发行,并提供命令行入口,因此通常可用 [uvx](https://docs.astral.sh/uv/)这样的免安装方式运行:

uvx openfoam-mcp

也可以只把它安装到一个环境中:

pip install openfoam-mcp
openfoam-mcp

Claude Desktop 配置

将如下内容加入 claude_desktop_config.json点击三处任一种系统位置(macOS:~/Library/Application Support/ Claude/,Windows:%APPDATA%):

{
  "mcpServers": {
    "openfoam": {
      "command": "uvx",
      "args": ["openfoam-mcp"]
    }
  }
}

重启 Claude Desktop 后,工具菜单中就能看到这些 OpenFOAM 工具了。

提示词示例

  • “一根长 0.5 m 的箔以 30 m/s 的空气… 对应的雷诺数该是多少?若我想要 无常=1,首层网格高度应该取多大?”

  • “在 ./duct 下搭建一个 12 m/s 的稳态 simpleFoam 算例,并检查一下。”

  • “把 endTime 设为 3000,存入 ./duct/system/controlDict。”

  • “读取 ./duct/log.simpleFoam,并说明它是否收敛。”

求解器模板

模板

物理模型

典型应用场景

simpleFoam

稳态不可压缩 RANS(k-ary)

管道流、外绕流、一般稳态流动

pimpleFoam

瞬态不可压缩 RANS(k-ary)

涡螺母、非定常流动

icoFoam

瞬态不可压缩层流

低雷诺数教学算例(卡门楔道、方腔流动)

这些模板遵循 OpenFOAM foundation v9–v12 / v2306+ 的教程风格(使用 transportProperties 与 momentumTransport)。生成的盒体网格带有 inlet、outlet、walls、frontAndBack 四个 patch。

开发

pip install -e ".[dev]"
pytest

许可证

MIT © 2026 年 出处

Related MCP Connectors