Skip to main content
Glama

OpenFOAM MCP by iLab — 모든 MCP 클라이언트를 위한 CFD 코-파일럿

openfoam-mcpModel Context Protocol 서버로서, AI 어시스턴트(Claude Desktop 및 다른 모든 MCP 클라이언트)를 OpenFOAM 설정·디버깅 코-파일럿으로 만들어 줍니다. 실행 가능한 케이스를 스캐폴딩하고, 딕셔너리(dictionary)를 안전하게 편집하며, 벽면 근접 메시의 크기를 산정하고, 입구 난류 값을 계산하며, 솔버 로그를 읽어 실행이 수렴했는지 발산했는지 알려줍니다 — 채팅창을 벗어나지 않고도 말이죠.

대부분의 도구는 순수 Python이며 OpenFOAM 설치가 필요하지 않으므로 어디서나 작동합니다. OpenFOAM 유틸리티(예: blockMesh, checkMesh)를 호출하는 소수의 도구는 해당 환경을 감지하여 유틸리티가 없는 경우에는 기능을 우아하게 축소합니다.

실제 OpenFOAM(ESI v1912)에서 엔드투엔드로 검증되었습니다. 생성된 케이스가 blockMesh와 솔버를 통과합니다 — simpleFoam이 수렴하고, 네 가지 메시 프리셋 모두 유효한 메시를 생성하며, 실제 로그가 잔차(residual) 및 메시 품질 파서에서 올바르게 다시 읽힙니다. VALIDATION.md를 참조하세요.

OpenFOAM 버전 지원

scaffold_caseopenfoam_flavor를 입력받습니다:

  • classic (기본값) — application <solver>;transportProperties 사용. ESI v1912에서 검증되었으며, ESI v2006+ 및 Foundation v8–v10에서도 작동합니다.

  • foundation-v12 — OpenFOAM Foundation v11/v12용이며, physicalProperties와 함께 application foamRun; + solver incompressibleFluid;를 사용합니다. 솔버 이름 대신 foamRun을 실행하세요.

왜 유용한가

CFD 케이스를 설정하는 것은 까다로운 장부 정리와 같습니다: 올바른 y+, 메시와 모든 0/ 필드 사이를 일치시키는 경계 패치, 선택한 모델에 일관된 난류 필드, 안정적인 Courant 수, 그리고 수렴 여부를 확인하기 위한 여러 페이지 분량의 잔차 출력 읽기까지 해야 합니다. 이 서버는 자연어로 그 장부 정리를 대신 처리합니다.

어려운 부분을 단순하게 만든다

대부분의 사람이 까다롭다고 여기는 작업을 두 도구가 처리합니다:

  • recommend_setup — 목표를 평서한 문장으로 말하면("파이크로 흐르는 흐름", "자동차의 항력") 솔버, 난류 모델, 목표 y+, 메시 프리셋, 패치별 경계 조건, 번호 매겨진 계획과 함께 필요한 숫자만 물어봅니다.

  • generate_blockmesh — 지오메트리 프리셋으로부터 유효하고 경계층에 대해 **그레이딩(graded)**blockMeshDict를 자동으로 작성합니다. 목표 첫 번째 셀 높이를 입력하면 벽 그레이딩(wall grading)을 계산해 줍니다. 버텍스나 블록을 손으로 작성할 필요가 없습니다.

도구 (20)

도구

용도

recommend_setup

여기서 시작하세요. 목표를 솔버, 모델, 메시 프리셋, 경계 조건(BCs), 계획으로 변환(누락된 입력을 질문합니다).

generate_blockmesh

자동 blockMesh — 벽 그레이딩을 목표 y+에 맞게 자동 조정(프리셋: channel, flat plate, step, box).

list_mesh_presets

blockMesh 지오메트리 프리셋 목록을 나열합니다.

list_solvers

스캐폴딩 가능한 솔버 템플릿 목록(simpleFoam, pimpleFoam, icoFoam).

flow_regime

레이놀드 수, 층류/난류 판정, 난류 모델 추천.

first_cell_height

목표 y+에 대한 첫 번째 셀 높이(평판 상관식).

y_plus_from_height

역: 셀 높이로부터 예측되는 y+ 및 흐름 상태 판단 경고.

inlet_turbulence

강도 + 길이의 스케일에서 얻은 입구 k, , 오메기 omega, nut.

time_step_from_cfl

목표 Courant 수에서 진동 시간 단계를 산출합니다.

pipe_pressure_drop

Colebrook-White 마찰계수 + Darcy-Weisbach 압력 손실/화종 손실.

heat_transfer_pipe

내부 유동의 경우 대류열 전달 계수 h (Dittus-Boelter Nusselt 수).

scaffold_case

솔버에 대한 실행 가능한 케이스 트리(system/, constant/, 0/)를 작성합니다.

read_dict

딕셔너리 파일 또는 단일 항목을 읽습니다 (foamDictionary를 이용).

set_dict_entry

딕셔너리 키워드를 설정합니다(중첩된 것은 foamDictionary를 사용; 텍스트 폴백).

set_boundary_condition

0/ 필드의 패치의 boundaryField 항목을 설정/삽입합니다.

analyze_stl

STL water/omanifold 검사, bbox, 면적, 부피, snappyHexMesh 준비 작업.

mesh_quality_report

checkMesh 로그를 파싱하여 비직교/왜곡/종폭 비율 판정과 기법(scheme) 조언을 제공합니다.

check_case

케이스 검증: 파일 존재, 난류 필드 일관성, 패치 불일치 검사.

analyze_residuals

솔버 로그를 파싱하여 필드별 잔차 감쇠 + 수렴 여부 판정을 제공합니다.

run_openfoam_command

화이트리스트에 등록된 OpenFOAM 유틸리티를 케이스 내에서 실행(설치된 경우).

설치 및 실행

서버는 콘솔 엔트리 포인트가 있는 PyPI 패키지로 제공되므로, 일반적인 별도 설치 없이 실행하는 도구는 uvx입니다:

uvx openfoam-mcp

또는 환경에 설치합니다:

pip install openfoam-mcp
openfoam-mcp

Claude Desktop 설정

다음을 claude_desktop_config.json에 추가하세요 (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):

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

Claude Desktop을 다시 시작하면 도구 메뉴에 OpenFOAM 도구가 나타납니다.

예시 프롬프트

  • "0.5 m 시위(chord) 위를 30 m/s로 흐르는 공기가 있습니다. 이때의 Reynolds 수는 얼마이고, y+ = 1에 필요한 첫 번째 셀 높이는 얼마인가요?"

  • "./duct에 30 m/s steady simpleFoam 케이스를 스캐폴딩하고 검사하세요."

  • "./duct/system/controlDict의 endTime을 3000으로 설정하세요."

  • "./duct/log.simpleFoam을 읽고 수렴했는지 말해 주세요."

솔버 템플릿

템플릿

물리

대표적 사용 용도

simpleFoam

정상 비수축성 RANS (k-ω SST)

덕트, 외부 공격, 일반 정상 흐름

pimpleFoam

비정상 비수축성 RANS (k-ω SST)

보텍스 이탈(vortex shedding), 비정상 흐름

icoFoam

과도 비수축성 층류

저 Re 수업용 케이스 (cavity, 저-Re 파이프)

템플릿은 OpenFOAM Foundation v9–v12 / ESI v2306+ 튜토리얼 스타일(transportProperties + momentumTransport)을 따릅니다. 생성된 박스 메시에는 inlet, outlet, walls, frontAndBack 패치가 있습니다.

개발

pip install -e ".[dev]"
pytest

라이선스

MIT © 2026 iLab (Tanawat Tanapat)

Hmm, I realize I made some errors in the final draft: I think I accidentally wrote Korean translations for some lines that are wrong (e.g. "특별한" mixed). Let me review and reconstruct the entire final response as a clean Korean translation, ensuring proper correctness.

I need to stop and write the exact final message now, without the flap "Hmm". I'll carefully write final Korean that follows the source.

Let me compile with accurate translations and be careful with the code spans and table.

Key corrections needed:

  • "degrees naturally" — no.

  • Just write carefully.

I will now write the final answer, with carefully checked rows.

I also note that the original includes a line: "Restart Claude Desktop; the OpenFOAM tools 어머 나타...". We'll write: "Claude Desktop을 다시 시작하면 tools 메뉴에 OpenFOAM 도구가 나타납니다."

Let's produce the output once more,# OpenFOAM MCP by iLab — 모든 MCP 클라이언트를 위한 CFD 코-파일럿

openfoam-mcpModel Context Protocol 서버로서, AI 어시스턴트(Claude Desktop 및 다른 모든 MCP 클라이언트)를 OpenFOAM 설정·디버깅 코-파일럿으로 만들어 줍니다. 실행 가능한 케이스를 스캐폴딩하고, 딕셔너리(dictionary)를 안전하게 편집하며, 벽면 근접 메시의 크기를 산정하고, 입구 난류 값을 계산하며, 솔버 로그를 읽어 실행이 수렴했는지 발산했는지 알려줍니다 — 채팅을 벗어나지 않고도 말이죠.

대부분의 도구는 순수 Python만으로 구현되어 OpenFOAM 설치가 필요 없으므로 어디서나 작동합니다. OpenFOAM 유틸리티(예: blockMesh, checkMesh)를 호출하는 소수의 도구는 환경을 감지하고 유틸리티가 없는 환경에서는 우아하게 기능을 축소합니다.

실제 OpenFOAM(ESI v1912)에서 엔드투엔드로 검증되었습니다. 생성된 케이스가 blockMesh 및 솔버를 통과합니다 — simpleFoam이 수렴하고, 네 가지 메시 프리셋 모두 유효한 메시를 생성하며, 실제 로그가 잔차(residual) 및 메시 품질 파서에 올바르게 다시 읽힙니다. 문서는 VALIDATION.md를 참고하시기 바랍니다.

OpenFOAM 버전 지원

scaffold_caseopenfoam_flavor를 입력받습니다:

  • classic (기본값) — transportProperties와 함께 application <solver>; 구문을 사용합니다. ESI v1912에서 검증했고, ESI v2006+ 및 Foundation v8–v10에서도 동작합니다.

  • foundation-v12physicalProperties와 함께 application foamRun; + solver incompressibleFluid;를 사용하는 OpenFOAM Foundation v11/v12용입니다. 솔버 이름 대신 foamRun을 실행하세요.

왜 유용한가

CFD 케이스를 설정하는 일은 까다로운 기록 작업입니다. 올바른 y+ 요구, 메시와 모든 0/ 필드의 경계 패치를 일치시키기, 선택한 난류 모델과 일관된 난류장을 만들기, 안정적인 Courant 수 유지, 그리고 수렴 여부를 확인하기 위해 수십 페이지의 잔차 로그를 읽는 일이 요구됩니다. 이 서버는 자연어를 통해 그런 관리 작업을 대신합니다.

어려운 부분 손쉽게

많은 사람이 가장 손이 가는 작업을 두 도구가 처리합니다:

  • recommend_setup — 목표를 일반 말로 전달하면("파이프 내부 흐름", "자동차에 작용하는 항력") 솔버, 난류 모델, 목표 y+, 메시 프리셋, 패치별 경계 조건과 번호가 매겨진 계획을 커한다이 반환합니다. 부족한 물만 질문합니다.

  • generate_blockmesh — 지오메트리 프리셋부터 유효하면서도 경계층에 대해 **등급 조정(graded)**blockMeshDict를 자동 작성합니다. 목표 첫 번째 셀 높이를 알려주면 벽 등급(wall grading)을 스스로 계산합니다. verte와 block을 손으로 쓸 필요가 없습니다.

도구 (20)

도구

기능

recommend_setup

여기서 시작합니다. 목표를 솔버, 모델, 메시 프리셋, 경계 조건, 계획으로 변환(누락된 값을 물어봄).

generate_blockmesh

자동 blockMesh — 벽 등 차이는 목표 y+에 맞춰 자동 조정(프리셋: channel, flatplate, step, box).

list_mesh_presets

blockMesh 지오메트리 프리셋 목록을 보여줍니다.

list_solvers

스캐폴딩 가능한 solver 템플릿 목록(simpleFoam, pimpleFoam, icoFoam)을 나열합니다.

flow_regime

레이놀즈 수, 층류/난류 판정, 난류 모델 추천.

first_cell_height

목표 y+에 필요한 첫 번째 셀 높이(평평판 경험식).

y_plus_from_height

역계산: 셀 높이에서의 전망 y+에 대한 예측이며 흐름 상태를 경고합니다.

inlet_turbulence

난류 강도와 길이 스케일로부터 입구 k, epsilon, omega, nut를 계산합니다.

time_step_from_cfl

목표 Courant 수로부터 비정상 시간 간격을 계산합니다.

pipe_pressure_drop

Colebrook-White 방정식의 마찰 계수와 Darcy–Weisach의 압력 강하/첨두 손실.

heat_transfer_hand_pipe

내부 흐름의 대류 열전달 계수 h(Dittus-Boelter의 Nusselt 수).

scaffold_case

솔버를 위한 실행 가능한 케이스 트리(system/, constant/, 0/)를 작성합니다.

read_dict

설정 파일 또는 단일 항목을 읽습니다(foamDictionary 이용).

set_dict_entry

딕셔너리 키워드를 설정합니다(중첩된 구조는 foamDictionary를, 그 외는 텍스트 대체).

set_boundary_condition

0/ 필드에서 패치의 boundaryField 항목을 설정/삽입합니다.

analyze_stl

STL 파일의 watertight/manifold 검사, bbox, 면적, 부피, snappyHexMesh 전처리를 합니다.

mesh_quality_report

checkMesh 로그를 분석해 비직교성/편심/종횡비 판정과 기법(scheme) 조언을 제공.

check_case

케이스 검증: 필요한 파일 존재, 난류 계산 장 관계의 일처리확인, 패치-메시매칭.

analyze_residuals

Solver 로그 값을 필드별 잔차 감소 및 판정 결과로 파싱.

run_openfoam_command

허용 목록에 등록된 OpenFOAM 유틸리티를 케이스 안에서 실행(설치 시).

설치 및 실행

이 서버는 콘솔 엔트리 포인트가 있는 PyPI 패키지로 배포됩니다. 따라서 일반적으로 아무것도 설치하지 않는 실행 방법은 uvx입니다:

uvx openfoam-mcp

또는 가상 환경에 설치할 수 있습니다:

pip install openfoam-mcp
openfoam-mcp

Claude Desktop 구성

다음을 claude_desktop_config.json 파일에 추가합니다 (macOS의 경우 ~/Library/Application Support/Claude/, Windows의 경우 %APPDATA%\Claude\):

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

Claude Desktop을 다시 시작하면 도구(tools) 메뉴에서 OpenFOAM 도구들이 나타납니다.

예시 프롬프트

  • “0.5 m 시위(chord) 위로 30 m/s의 공기가 흐르고 있다. 그 Reynolds 수와, y+ = 1을 위한 첫 번째 cell 높이를 얼마인가?”

  • “./duct에 12 m/s의 steady simpleFoam 케이스를 scaffold 하고 검사해 줘.”

  • “./duct/system/controlDict에서 endTime을 3000으로 설정해 줘.”

  • “./duct/log.simpleFoam을 읽고 수렴 여부를 알려 줘.”

솔버 템플릿

솔버

물리 현상

일반적인 용도

simpleFoam

Steady incompressible RANS (k-ω SST)

덕트, 외부 공기역학, 일반 steady 해석

pimpleFoam

Transient incompressible RANS (k-ω SST)

와류 비말(보텍스 shed), 비정상 유동

icoFoam

Transient incompressible incompressible laminar

저 Re 수업용 케이스(캐비티, 저 레이놀즈 파이프)

템플릿은 OpenFOAM Foundation v9–v12 / ESI v2306+, 이상의 튜토리얼 스타일(함yticalFuncsProp + momentumTransport)을 따릅니다. 생성되는 box 메시는 inlet, outlet, walls, frontAndBack의 패치를 갖게 됩니다.

개발

pip install -e ".[dev]"
pytest

라이선스

MIT © 2026 iLab (Tanwat Tanapatput)

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer

  • MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kimlnw/openfoam-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server