Skip to main content
Glama

OpenFOAM MCP by iLab — CFD-ассистент для любого MCP-клиента

openfoam-mcp — это сервер Model Context Protocol, который превращает ИИ-ассистента (Claude Desktop и любой другой MCP-клиент) в помощника по настройке и отладке OpenFOAM: он создаёт структуру запускаемых расчётных случаев, безопасно редактирует словари, подбирает пристеночную сетку, вычисляет входные параметры турбулентности и читает журналы решателя, чтобы сообщить, сошёлся ли расчёт или развалился, — и всё это прямо в чате.

Большинство инструментов написаны на чистом Python и не требуют установки OpenFOAM, поэтому они работают где угодно. Те немногие, что вызывают утилиты OpenFOAM (например, blockMesh, checkMesh), определяют окружение и корректно деградируют в его отсутствие.

Проверено end-to-end на реальном OpenFOAM (ESI v1912). Сгенерированные случаи проходят через blockMesh и решатели — simpleFoam сходится, все четыре пресета сетки дают корректные сетки, а реальные журналы правильно читаются парсерами остатков и качества сетки. См. VALIDATION.md.

Поддержка версий OpenFOAM

scaffold_case принимает параметр openfoam_flavor:

  • classic (по умолчанию) — application <solver>; с transportProperties. Проверено на ESI v1912; работает на ESI v2006+ и Foundation v8–v10.

  • foundation-v12application foamRun; + solver incompressibleFluid; с physicalProperties, для OpenFOAM Foundation v11/v12. Запускайте foamRun вместо имени решателя.

Почему это полезно

Постановка CFD-расчёта — это кропотливая рутинная работа: правильное значение y+, согласование граничных патчей между сеткой и каждым полем из 0/, консистентные поля турбулентности для выбранной модели, стабильное число Куранта и чтение страниц журнала остатков, чтобы понять, сошёлся ли расчёт. Этот сервер берёт на себя всю эту рутину, общаясь через естественный язык пользователя.

Делаем сложное простым

Два инструмента берут на себя то, что большинству кажется рутинным:

  • recommend_setешённой — расскажите ему о цели обычными словами («течение по труба», «обтекание автомобиля»), и он выдаст решатель, модель турбулентности, целевой y+, пресет сетки, граничные условия для каждого патча и нумерованный план — запрашивая только те числа, которых ему не хватает.

  • generate_blockmesh — автоматически пишет валидный blockMeshDict с сгущением в пограничном слое по геометрическому пресету. Задайте целевую высоту первого ряда — и он сам вычислит размерные сгущения у стенки. Никакого ручного описания вершин и блоков.

Инструменты (20)

| Инструмент | Что делает | | recommend_setup | Начните с указанной цели. Цель -> решатель, модель, пресет сетки, граничные условия, план (запрашивает недостающие данные). | | generate_blockentwicklung | Авто blockMeshСгенерированная автоматически сетка с подгонкой сгущения у стенки под ваше y+ (пресеты: channel, flatplate, step, box). | | list_mesh_presets | Перечисляет пресеты геометрии blockMesh. | list_solvers | Перечисляет какие шаблоны решателей можно использовать в scaffold (simpleFoam, pimpleFoam, icoFoam). | | flow_regime | Вычисляет число Рейнольдса, пусть ламинарный/турбулентный, рекомендует модель турбулентности. | | first_cell_height | Высота первой ячейки для нужного y+ (зависимость для плоской пластины). | | y_plus_from_height | Обратная задача: ожидаемый y+ при заданной высоте ячейки, с предупреждением о режиме. | | inlet_turbulence | Вход: k, epsilon, omega, nut изходит из плотности, фактическая scale on the length. | | time_step_from_cfl | Нестационарный от времени step from target number Courant. | | pipe_pressure_drop | Коэффициент трения по Колбрёку–Уайту + более падение давления / потеря напора по Дарси–Вейсбаху. | | heat_transfer_pipe | Конвективный h для течения в прямоугольных каналах (число Нуссельта Доттиус-Бо Krüger). | | scaffold_case | Записывает дерево готового к запуску расчетного случая (system/, constant/, 0/) для выбранного решателя. | | read_dict | Чтение файла словаря или одной записи (через foamDictionary). | | set_dict_entry | Задание ключа словаря (вложенные ключи через Про foamDictionary, с фолбэком на работу с текстом). | | set_boundary_condition | Задать/вставить запись boundaryField для патча в поле из каталога 0/. | | analyze_stl | Проверка STL на герметичность/замкнутость, bbox, площадь, объём, подготовка для snappyHexMesh. | | results_mesh_quality | Разбирает логи checkMesh в характеристику неортогональность/скошенность/аспект и перент. | | check_case | Проверка документа как: наличие файлов, согласие полей турбулентности, порядка патчей с сетью. | | analyze_vese | Разбирает журнал решателя на снижение остатков по полям и отдаёт вывод о сходимости. | | 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 — и в меню инструментов появится open-инструменты OpenFOAM.

Примеры запросов

  • «У меня воздух на скорости 30 м/с обтачивает хорду 0.5 м. Какое это число Рейнольдса и какая высота первого ячейки нужна для y+ = 1

  • «Создай стационарный simpleFoam-расчёт в ./duct при 12 м/с и проверь его».

  • «Установи endTime в 3000 в ./duct/system/controlDict».

  • «Прочитай ./duct/log-point и скажи, сошёлся ли расчёт».

Шаблоны решателей

Шаблон

Физика

Применение

simpleFoam

Стационарный несжимаемый RANS (k-ω SST)

Каналы, внешняя аэродинамика, общие стационарные потоки

pimpleFoam

Нестационарный несжимаемый RANS (k-ω SST)

Обтекание снарядов тел, нестационарные потоки

icoFoam

Нестационарный несжимаемый ламинированный

Учебные расчёты при низких Re (каверна, труба с низким Re)

Шаблоны соответствуют стилю туториалов OpenFOAM Foundation v9–v12 / OpenFOAM v2306+ (transportProperties + momentumTransport). Сгенерированная сеть сетки имеет патчи inlet, outlet, walls, frontAndBack.

Разработка

pip install -e ".[dev]"
pytest

Лицензия

MIT © 2026 iLab (Tanawat Manokieng)

-
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