Openfoam Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Openfoam Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
一个用于读取和修改 OpenFOAM 配置文件的 MCP (Model Context Protocol) 服务器。支持 Windows、Linux 和 macOS。
| 目录 | 文件 | 描述 |
|---|---|---|
system/ | controlDict | 求解器控制参数 |
system/ | fvSchemes | 离散化方案 |
system/ | fvSolution | 线性求解器设置 |
constant/ | transportProperties | 输运属性 |
constant/ | turbulenceProperties | 湍流模型 |
0/ | U, p, T 等 | 初始条件和边界条件 |
# 克隆项目
git clone https://github.com/ymg2007/openfoam-mcp.git
cd openfoam-mcp
# 运行安装脚本
install.bat# 克隆项目
git clone https://github.com/ymg2007/openfoam-mcp.git
cd openfoam-mcp
# 运行安装脚本
chmod +x install.sh
./install.shOpenFOAM MCP 支持多种 AI 助手,选择你喜欢的:
| AI 助手 | 配置文件路径 |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)<br>~/.config/Claude/claude_desktop_config.json (Linux)<br>%APPDATA%\Claude\claude_desktop_config.json (Windows) |
| Claude Code | ~/.claude-code/config.json |
| Cursor | ~/.cursor/mcp_config.json |
| OpenCode | ~/.opencode/config.json |
| Cline | ~/.cline/settings.json |
git clone https://github.com/ymg2007/openfoam-mcp.git
cd openfoam-mcp
install.bat#### 1. 安装 Python
访问 Python官网 下载并安装 Python 3.10+,安装时勾选 "Add Python to PATH"
#### 2. 创建虚拟环境
python -m venv venv
.\venv\Scripts\activate#### 3. 安装依赖
pip install -r requirements.txt配置文件:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"openfoam": {
"command": "C:\\path\\to\\openfoam-mcp\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\openfoam-mcp\\src\\server.py"]
}
}
}配置文件:~/.claude-code/config.json
{
"mcpServers": [
{
"name": "openfoam",
"command": "C:\\path\\to\\openfoam-mcp\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\openfoam-mcp\\src\\server.py"]
}
]
}配置文件:%APPDATA%\Cursor\User\mcp_config.json
{
"mcpServers": [
{
"name": "openfoam",
"command": "C:\\path\\to\\openfoam-mcp\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\openfoam-mcp\\src\\server.py"]
}
]
}配置文件:~/.opencode/config.json
{
"mcpServers": {
"openfoam": {
"command": "C:\\path\\to\\openfoam-mcp\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\openfoam-mcp\\src\\server.py"]
}
}
}git clone https://github.com/ymg2007/openfoam-mcp.git
cd openfoam-mcp
chmod +x install.sh
./install.sh#### 1. 安装 Python
# Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip python3-venv
# Fedora/RHEL
sudo dnf install python3 python3-pip python3-devel#### 2. 创建虚拟环境并安装依赖
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt配置文件:~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"openfoam": {
"command": "/home/yourname/openfoam-mcp/venv/bin/python",
"args": ["/home/yourname/openfoam-mcp/src/server.py"]
}
}
}配置文件:~/.claude-code/config.json
{
"mcpServers": [
{
"name": "openfoam",
"command": "/home/yourname/openfoam-mcp/venv/bin/python",
"args": ["/home/yourname/openfoam-mcp/src/server.py"]
}
]
}配置文件:~/.cursor/mcp_config.json
{
"mcpServers": [
{
"name": "openfoam",
"command": "/home/yourname/openfoam-mcp/venv/bin/python",
"args": ["/home/yourname/openfoam-mcp/src/server.py"]
}
]
}配置文件:~/.opencode/config.json
{
"mcpServers": {
"openfoam": {
"command": "/home/yourname/openfoam-mcp/venv/bin/python",
"args": ["/home/yourname/openfoam-mcp/src/server.py"]
}
}
}git clone https://github.com/ymg2007/openfoam-mcp.git
cd openfoam-mcp
chmod +x install.sh
./install.sh#### 1. 安装 Python
brew install [email protected]#### 2. 创建虚拟环境并安装依赖
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt配置文件:~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"openfoam": {
"command": "/Users/yourname/openfoam-mcp/venv/bin/python",
"args": ["/Users/yourname/openfoam-mcp/src/server.py"]
}
}
}配置文件:~/.claude-code/config.json
{
"mcpServers": [
{
"name": "openfoam",
"command": "/Users/yourname/openfoam-mcp/venv/bin/python",
"args": ["/Users/yourname/openfoam-mcp/src/server.py"]
}
]
}配置文件:~/.cursor/mcp_config.json
{
"mcpServers": [
{
"name": "openfoam",
"command": "/Users/yourname/openfoam-mcp/venv/bin/python",
"args": ["/Users/yourname/openfoam-mcp/src/server.py"]
}
]
}配置文件:~/.opencode/config.json
{
"mcpServers": {
"openfoam": {
"command": "/Users/yourname/openfoam-mcp/venv/bin/python",
"args": ["/Users/yourname/openfoam-mcp/src/server.py"]
}
}
}# 激活虚拟环境后
python src/server.py如果服务器正常启动,应该看到 MCP 服务器初始化的输出。
cd /path/to/your/OpenFOAM/case然后在 AI 助手中使用工具。
| 工具名 | 功能 | 示例 |
|---|---|---|
get_case_info | 获取 case 目录信息 | "获取当前 case 的信息" |
read_dict_file | 读取字典文件 | "读取 controlDict" |
read_file_content | 读取文件原始内容 | "显示 fvSchemes 的内容" |
list_field_files | 列出场文件 | "列出所有场文件" |
get_boundary_conditions | 获取边界条件 | "查看 U 场的边界条件" |
modify_control_dict | 修改求解器参数 | "把 deltaT 改为 0.0005" |
modify_boundary_condition | 修改边界条件 | "修改 U 场 inlet 边界" |
get_transport_properties | 读取输运属性 | "查看输运属性" |
get_turbulence_properties | 读取湍流模型 | "查看湍流设置" |
get_fv_schemes | 读取离散化方案 | "查看离散化方案" |
get_fv_solution | 读取求解器设置 | "查看求解器设置" |
search_case_files | 搜索文件内容 | "搜索 turbulence" |
| 工具名 | 功能 | 示例 |
|---|---|---|
list_buoyancy_solvers | 列出浮力求解器 | "显示可用的浮力求解器" |
set_buoyancy_solver | 设置浮力求解器 | "设置求解器为 buoyantSimpleFoam" |
add_temperature_field | 创建温度场 | "创建温度场,初始温度 293K" |
add_gravity_file | 创建重力文件 | "添加重力文件用于浮力计算" |
add_thermophysical_properties | 创建热物理属性 | "添加热物理属性文件" |
set_inlet_thermal_conditions | 设置入口热边界 | "设置入口速度和温度" |
set_wall_thermal_conditions | 设置墙体热边界 | "设置墙体传热边界条件" |
list_radiation_models | 列出辐射模型 | "显示可用的辐射模型" |
add_radiation_model | 添加辐射模型 | "添加 P1 辐射模型" |
add_age_of_air_field | 添加空气龄场 | "创建空气龄计算场" |
add_heat_source_config | 添加热源配置 | "添加内部热源 100W" |
add_pmv_ppd_comfort_metrics | 添加舒适度指标 | "配置 PMV-PPD 计算" |
get_comfort_criteria_info | 获取舒适度标准 | "显示 ISO 7730 舒适度标准" |
configure_indoor_thermal_environment | 一键配置热环境 | "配置完整的室内热环境" |
用户: 帮我看看这个 case 的结构
AI: [调用 get_case_info]
返回: OpenFOAM Case 目录: /path/to/case
=== 目录结构 ===
0/
- U
- p
constant/
- transportProperties
system/
- controlDict
- fvSchemes
- fvSolution用户: 把 deltaT 改为 0.0005,结束时间设为 2000
AI: [调用 modify_control_dict(delta_t=0.0005, end_time=2000)]
返回: ✅ 已修改 controlDict:
- deltaT -> 0.0005
- endTime -> 2000用户: 先看看速度场的边界条件
AI: [调用 get_boundary_conditions("U")]
返回: === U 边界条件 ===
📍 inlet
type: fixedValue
value: {'type': 'uniform', 'value': [10.0, 0.0, 0.0]}
📍 outlet
type: zeroGradient
📍 walls
type: noSlip
用户: 把入口速度改成 (15 0 0)
AI: [调用 modify_boundary_condition("U", "inlet", value="uniform (15 0 0)")]
返回: ✅ 已修改 U 的边界条件:
- value -> uniform (15 0 0)用户: 找一下所有和湍流相关的设置
AI: [调用 search_case_files("turbulence")]
返回: === 搜索结果 ===
system/fvSchemes:31: turbulence bounded Gauss linearUpwind grad(k);用户: 查看可用的浮力求解器
AI: [调用 list_buoyancy_solvers()]
返回: === 可用的浮力求解器 ===
🔹 buoyantSimpleFoam
描述: 稳态浮力驱动流动求解器(Boussinesq近似)
求解器类型: steady-state
需要的场变量: T, p_rgh, U, k, epsilon, omega
用户: 设置为 buoyantBoussinesqSimpleFoam
AI: [调用 set_buoyancy_solver("buoyantBoussinesqSimpleFoam")]
返回: ✅ 已设置求解器为: buoyantBoussinesqSimpleFoam用户: 创建温度场,初始温度 293K
AI: [调用 add_temperature_field(293.0)]
返回: ✅ 已创建 T 场文件,初始温度: 293 K
用户: 设置墙体温度 295K,对流换热系数 8 W/m²K
AI: [调用 set_wall_thermal_conditions("walls", temperature=295, heat_transfer_coeff=8)]
返回: ✅ 已设置墙体 walls 热边界条件: coefficient用户: 设置送风口 inlet,速度 1.5 m/s,温度 288K
AI: [调用 set_inlet_thermal_conditions("inlet", 1.5, 0, 0, 288)]
返回: ✅ 已设置入口 inlet:
- U: fixedValue
- T: fixedValue
- k: fixedValue
- epsilon: fixedValue用户: 查看可用的辐射模型
AI: [调用 list_radiation_models()]
返回: === 可用的辐射模型 ===
🔹 none
描述: 无辐射模型
🔹 P1
描述: P1 辐射模型(适用于光学厚介质)
🔹 viewFactor
描述: 视角系数辐射模型(适用于封闭空间)
用户: 添加 P1 辐射模型
AI: [调用 add_radiation_model("P1")]
返回: ✅ 已创建辐射模型: P1 (P1 辐射模型(适用于光学厚介质))用户: 添加空气龄计算
AI: [调用 add_age_of_air_field()]
返回: ✅ 已创建空气龄场文件
用户: 添加内部热源 500W
AI: [调用 add_heat_source_config(power=500)]
返回: ✅ 已创建热源配置: 500.0 W (500.0 W/m³)用户: 配置 PMV-PPD 计算,代谢率 1.2 met,服装热阻 0.6 clo
AI: [调用 add_pmv_ppd_comfort_metrics(metabolic_rate=1.2, clothing_insulation=0.6)]
返回: ✅ 已添加 PMV-PPD 计算函数 (met=1.2 met, icl=0.6 clo)用户: 配置完整的室内热环境:浮力求解器、温度 293K、入口速度 1 m/s 温度 293K、
墙体温度 295K、启用浮力和辐射 P1 模型、启用空气龄、PMV-PPD
AI: [调用 configure_indoor_thermal_environment(
solver_type="buoyantBoussinesqSimpleFoam",
ambient_temp=293,
inlet_velocity_x=1,
inlet_temp=293,
wall_temp=295,
radiation_model="P1",
enable_age_of_air=True,
enable_pmv_ppd=True
)]
返回: === 室内热环境配置完成 ===
✅ 已设置求解器为: buoyantBoussinesqSimpleFoam
✅ 已创建 T 场文件,初始温度: 293 K
✅ 已创建重力文件: gravity = [0, 0, -9.81]
✅ 已设置入口 inlet: ...
✅ 已设置墙体 walls 热边界条件: ...
✅ 已创建辐射模型: P1 ...
✅ 已创建空气龄场文件
✅ 已添加 PMV-PPD 计算函数 ...openfoam-mcp/
├── src/
│ ├── __init__.py # 包初始化
│ ├── server.py # MCP 服务器主文件(含热学工具)
│ ├── parser.py # OpenFOAM 字典解析器
│ ├── editor.py # 文件编辑工具
│ └── thermal.py # 热/浮力求解器配置模块(新增)
├── examples/
│ ├── test_case/ # 示例 OpenFOAM case
│ └── SIMPLE_CASE.md # 使用示例文档
├── install.bat # Windows 安装脚本
├── install.sh # Linux/macOS 安装脚本
├── pyproject.toml # 项目配置
├── requirements.txt # Python 依赖
├── README.md # 本文件
└── INSTALL.md # 详细安装指南错误信息: "未找到 OpenFOAM case 目录"
解决方法:
0/, constant/, system/ 子目录错误信息: ImportError 或 ModuleNotFoundError
解决方法:
pip install -r requirements.txt错误信息: "没有修改任何边界条件"
解决方法:
get_boundary_conditions 查看实际边界名)问题: 路径中的反斜杠导致 JSON 解析错误
解决方法:
\\ 或正斜杠 /错误信息: ModuleNotFoundError: No module named 'mcp'
解决方法:
pip install mcp错误信息: No module named venv
解决方法:
sudo apt install python3-venv欢迎提交 Issue 和 Pull Request!
MIT License
如果这个项目对你有帮助,请给个 Star ⭐
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.