openfoam-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| foam_infoA | OpenFOAM installation, server configuration and resources (version, flavour, paths, cores, ParaView). |
| foam_referenceA | Look up what OpenFOAM supports: valid boundary-condition types, models, function objects, solvers, app options. |
| list_tutorialsA | Find OpenFOAM tutorial cases to start from (and working examples of any keyword or feature). |
| create_caseA | Create a case by cloning a tutorial or copying an existing case (results are left behind unless include_results). |
| list_casesA | List cases in the workspace with solver, mesh/result state and running jobs. |
| case_summaryA | One-call overview of a case: solver, run control, mesh & patches, initial/boundary conditions, physics, numerics, results. |
| clean_caseB | Remove results: time directories after the first, postProcessing, logs, processor dirs and optionally the mesh. |
| delete_caseA | Permanently delete a case directory from the workspace. |
| list_filesA | List files in a case (sizes in bytes; long runs of time directories are collapsed). |
| read_fileB | Read a text file from a case (dictionaries, logs, scripts). Large value lists are elided by default. |
| write_fileA | Create or overwrite a file in a case (new dictionaries, STL-free text inputs, scripts). Prefer set_dict for edits. |
| import_fileB | Copy geometry (STL/OBJ), meshes or other files into a case, e.g. the surface for snappyHexMesh. |
| get_dictB | Read a dictionary or one entry through OpenFOAM's foamDictionary (authoritative parsing). |
| set_dictA | Edit dictionary entries safely via foamDictionary (set/add/remove), then read back the new values. |
| runA | Run an OpenFOAM application or case script as a background job; waits briefly and reports the outcome or progress. |
| job_statusA | Status of a job (progress, residuals, errors, log tail) or a list of running and recent jobs. |
| stop_jobA | Stop a running job, gracefully (results written) or forcibly. |
| read_logB | Read the tail of a log, or grep it (e.g. 'FOAM Warning|bounding|Courant'). |
| solver_progressB | Convergence report from a solver log: state (converged/diverging/failed...), residuals and trends, Courant, continuity, ETA. |
| check_meshB | Run checkMesh and return structured mesh statistics, failed checks and practical advice. |
| post_processB | Run a post-processing function object on saved results (writes fields and/or postProcessing/ data). |
| list_postprocessingB | List function-object output files under postProcessing/ with their column names. |
| read_postprocessingA | Read a postProcessing table (forces, coefficients, probes, sampled lines...) with statistics and optional plot. |
| field_statsB | Min/max/mean of a field (internal and per patch) at a time, read directly from ASCII field files. |
| renderB | Render a picture of the flow or mesh with ParaView (headless) and return it as an image plus metadata. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 25 tools
Most tools target clearly distinct resources or actions (case creation, file I/O, dictionary editing, job control, post-processing). However, some overlap exists: read_file also reads dictionaries alongside get_dict, and job_status, solver_progress, and read_log all partially cover log/monitoring use cases. Descriptions help differentiate, but these boundaries are not perfectly crisp.
All names use snake_case, and the dominant pattern is verb_noun (e.g., create_case, list_files, read_log). Deviations are mostly conventional noun phrases for info/status tools (foam_info, job_status) and two bare verbs (run, render), which are readable but not perfectly uniform.
At 25 tools, the surface feels heavy for the domain, sitting at the upper end of the rubric's borderline range. While most tools are individually justified for a complex CFD workflow, some consolidation (e.g., monitoring/log tools, file/dict operations) could reduce the count without losing capability.
The surface covers the main OpenFOAM lifecycle: case setup, file/dictionary editing, running solvers, monitoring, mesh checking, post-processing, and rendering. Minor gaps exist, such as file-level delete/move/rename operations and dedicated mesh-generation tools (though run can invoke them), but these are workable for an agent.