su2-mcp
su2-mcp exposes SU2 session lifecycle, config editing, solver execution, and
results inspection through an MCP server.
Features
- Session lifecycle management with per-session working directories.
- Config helpers for reading, parsing, and updating SU2
.cfgfiles. - Mesh upload and automatic
MESH_FILENAMEsynchronization. - Optional STEP -> SU2 mesh conversion via
gmsh(generate_mesh_from_step). - Solver wrappers for
SU2_CFDandSU2_DEFwith timeout/missing-binary handling. - Result-file listing, base64 download, history CSV parsing, and surface sampling.
- Open-ended mesh refinement (2026-06-21): the CPACS adapter exposes
optional
surface_densityandfarfield_factoroverrides on top of the three named presets (laptop/workstation/industry), and reports the actualmesh_n_elemcell count plus acauchy_triggeredflag so callers can build a converge-until-plateau loop (see theSKILL_OPEN_ENDED_MESH.mdskill andscripts/run_converged_su2.pyincmudrc/agent-mcp).
Install
python3 -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
Run the Server
StdIO (default)
su2-mcp --transport stdio
HTTP transports
su2-mcp --transport http --host 0.0.0.0 --port 8002 --path /mcp
su2-mcp --transport streamable-http --host 0.0.0.0 --port 8002 --streamable-http-path /mcp
Server-Sent Events (SSE)
su2-mcp --transport sse --host 0.0.0.0 --port 8000 --mount-path / --sse-path /sse
Programmatic entrypoints are available from su2_mcp.main.
Development
make dev
make lint
make type
make test
make docs
Full local CI-style gate:
make ci
Checking SU2 binaries
The MCP tool get_su2_status reports availability of common SU2 binaries
(SU2_CFD, SU2_CFD_MPI, SU2_DEF).
Optional SU2 dependency extra
pip install .[su2]
System dependencies
The Python package is pure Python, but some tools rely on external executables:
run_su2_solver/generate_deformed_mesh: requires SU2 binaries onPATHgenerate_mesh_from_step: requiresgmshonPATH
Shared-CPACS Integration
This MCP includes a CPACS adapter (src/su2_mcp/cpacs_adapter.py) that
bridges SU2 to the shared-CPACS aircraft analysis pipeline.
What it does
The adapter reads reference geometry and flight conditions from CPACS, meshes
STEP files via Gmsh, runs real SU2_CFD Euler simulations, parses CL/CD from
history.csv, and writes aerodynamic results into //analysisResults/aero.
| Direction | XPath |
|---|---|
| Reads | .//vehicles/aircraft/model/reference, .//analysisResults/tigl |
| Writes | .//vehicles/aircraft/model/analysisResults/aero (CL, CD, L/D, solver info) |
Running as part of the pipeline
# Classic preset path
python pipeline/shared_cpacs_orchestrator.py D150_v30.xml \
--mcps tigl su2 pycycle nseg --su2-preset workstation
# Custom one-off density (open-ended override)
python pipeline/shared_cpacs_orchestrator.py D150_v30.xml \
--mcps tigl su2 --su2-density 120
# Converged delivery: refine surface_density until CL/CD plateau
python pipeline/shared_cpacs_orchestrator.py D150_v30.xml \
--mcps tigl su2 --su2-converge
See cmudrc/aircraft-analysis for full pipeline documentation, versioning details, and installation instructions.
Related MCP servers
| MCP | Repository |
|---|---|
| TiGL (geometry) | cmudrc/tigl-mcp |
| pyCycle (engine cycle) | cmudrc/pycycle-mcp |
| Mission (trajectory/fuel) | cmudrc/mission-mcp |
No comments yet
Be the first to share your take.