vCFD
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VCFD_AUTH_TOKEN | No | Bearer token for protecting the MCP server when using HTTP transport. | |
| VCFD_OPENFOAM_MODE | No | OpenFOAM execution mode: mock, docker, or native. | mock |
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": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_templatesA | List available OpenFOAM case templates (e.g. hagen_poiseuille). |
| list_casesA | List CFD cases in the workspace with mesh and time status. |
| create_caseA | Create a new OpenFOAM case from a template. |
| describe_caseB | Describe a case: template, mesh status, parameters, latest time, solver. |
| delete_caseA | Permanently delete a case directory. Requires confirm=true. |
| clean_caseA | Remove time directories and post-processing output; keep 0/, constant/, system/. Requires confirm=true. |
| set_pipe_parametersC | Set Hagen–Poiseuille pipe geometry, fluid properties, and mesh resolution. Units: meters, Pa·s (dynamic viscosity), kg/m³, m/s. |
| generate_meshA | Run blockMesh for the case. Use background=true for async job. |
| check_meshC | Run checkMesh and return a quality summary. |
| start_solverA | Start the OpenFOAM solver as a background job. Returns job_id immediately. |
| get_job_statusA | Get status of a job by job_id, or list jobs for a case / all jobs. |
| get_logsC | Return the tail of a solver/mesh job log (filtered residual-friendly). |
| stop_jobA | Stop a running job. force=true sends SIGKILL. |
| summarize_resultsC | Summarize latest results for spoken delivery (times, parameters, residuals). |
| compare_to_analyticalA | Compare numerical pipe flow to Hagen–Poiseuille analytical solution. In mock mode, uses an ideal parabolic profile with small noise-free match. With real OpenFOAM results, samples from case parameters (MVP: uses bulk U and analytical profile as reference; full field sampling can be extended). |
| export_for_paraviewB | Export case for ParaView via foamToVTK and optional zip package on disk. |
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 16 tools
Each tool targets a distinct aspect of the CFD workflow—case lifecycle, mesh generation, solver jobs, or result analysis—so an agent can reliably select the right one. The slight similarity between describe_case and summarize_results is mitigated by their clear separation of case state versus result outcome.
All tool names follow a consistent snake_case verb_noun pattern (e.g., list_cases, create_case, generate_mesh). Even longer names like set_pipe_parameters and export_for_paraview maintain the same verb-first structure, making the pattern predictable.
At 16 tools, the count is slightly above the typical 3–15 sweet spot, but each tool maps to a necessary step in the CFD pipeline—templates, cases, mesh, solver, results, and export. No tool feels redundant, and the granularity supports a coherent workflow.
The tool surface covers the full lifecycle from template listing and case creation through mesh generation, solver execution, job monitoring, result summarization, and ParaView export. Minor gaps, such as editing arbitrary case files or importing custom templates, are outside the apparent intended scope and can likely be worked around.