openfoam-mcp
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-v12—application 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и скажи, сошёлся ли расчёт».
Шаблоны решателей
Шаблон | Физика | Применение |
| Стационарный несжимаемый RANS (k-ω SST) | Каналы, внешняя аэродинамика, общие стационарные потоки |
| Нестационарный несжимаемый RANS (k-ω SST) | Обтекание снарядов тел, нестационарные потоки |
| Нестационарный несжимаемый ламинированный | Учебные расчёты при низких Re (каверна, труба с низким Re) |
Шаблоны соответствуют стилю туториалов OpenFOAM Foundation v9–v12 / OpenFOAM v2306+ (transportProperties + momentumTransport). Сгенерированная сеть сетки имеет патчи inlet, outlet, walls, frontAndBack.
Разработка
pip install -e ".[dev]"
pytestЛицензия
MIT © 2026 iLab (Tanawat Manokieng)
This server cannot be installed
Maintenance
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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