OpenVSP MCP (Maintained Fork)
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENVSP_BIN | Yes | Path to the OpenVSP script binary (`vspscript` or `vsp` accepting `-script`). Required to run the server. | |
| VSPAERO_BIN | Yes | Path to the VSPAERO solver binary. Required to run the server. | |
| OPENVSP_CPU_BUDGET | No | Limits shared native work in one server; requests exceeding this budget are rejected. Optional. | the larger of 4 and the reported logical CPU count |
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| openvsp.healthA | Check installed OpenVSP/VSPAERO readiness, versions, paths and package identity. Launches a temporary OpenVSP API probe and a solver version command; no aerodynamic solve or user model is involved. Returns status=error with check details when unavailable; use openvsp.preflight to check a particular model's geometry sets. |
| openvsp.create_modelA | Create a new .vsp3 model from the four-component simple_aircraft template or custom trusted AngelScript, without an input model. Runs OpenVSP and retains the model, script, log and manifest in a unique directory under output_dir; no VSPAERO solve. Use openvsp.modify to edit an existing source model. |
| openvsp.inspectA | Read component IDs, wing names and a component summary directly from .vsp3 XML. Does not launch OpenVSP, write files or modify the source; unreadable or invalid XML fails. Use openvsp.query for native parameter values or analysis defaults. |
| openvsp.modifyA | Edit an existing model with trusted AngelScript and/or parameter ID/value edits. Runs OpenVSP on a snapshot, retains run artifacts and replaces the source only after validation; refuses replacement if the source changed during the run. No VSPAERO solve; use openvsp.set_parameters for a focused typed-edit request. |
| openvsp.previewA | Export preview.svg and preview.stl for a model, optionally applying edits to a private copy. Runs OpenVSP and retains exports, model, script, log and manifest in a unique run directory without replacing the source or running VSPAERO. Use openvsp.inspect for file-only metadata, or openvsp.preflight for geometry-set checks. |
| openvsp.preflightA | Check selected thick/thin geometry sets before a VSPAERO run; rejects missing, empty or overlapping sets and reports reference/unit warnings. Runs OpenVSP on a private copy and retains run artifacts without replacing the source or executing VSPAERO. Does not assess intersections, mesh quality or aerodynamic accuracy; use openvsp.run_vspaero for coefficients and verified solver-file settings. |
| openvsp.run_vspaeroA | Run one steady subsonic VSPAERO condition after geometry-set preflight. Runs native processes on a private model copy, retaining solver artifacts, coefficients and verified settings without replacing the source; the native timeout excludes preparation, CPU admission and validation. Failures retain run/log paths, and success does not certify convergence; use openvsp.sweep for sequential conditions or openvsp.batch_submit for independent jobs. |
| openvsp.sweepA | Solve 1-25 explicit steady conditions sequentially using one source snapshot and shared optional commands; each condition has its own complete analysis settings. Runs OpenVSP/VSPAERO and retains per-condition artifacts plus sweep.json without replacing the source; timeout_seconds is the whole-sweep budget and failures retain partial results. Use openvsp.batch_submit for durable independent cases, per-case parameter edits and bounded parallel execution. |
| openvsp.queryA | List installed analyses, read analysis input types/defaults, or read paginated geometry parameter IDs, values and limits. Launches OpenVSP using temporary files and an optional model snapshot, preserving the source; model-free capability lists may use a five-minute cache. Native defaults may depend on the model and do not imply wrapper execution support; use openvsp.inspect for XML-only inspection and openvsp.set_parameters to apply returned IDs. |
| openvsp.set_parametersA | Apply typed parameter ID/value edits obtained from openvsp.query in one OpenVSP load/update. Verifies limits and final readback, retains run artifacts and replaces the source after validation; rejects concurrent source changes. No VSPAERO solve; use openvsp.modify when trusted AngelScript commands are needed. |
| openvsp.read_resultsA | Read a saved operation manifest's coefficients, settings, diagnostics and optional bounded log tail without launching OpenVSP/VSPAERO or writing files. Pass an operation's manifest_path as manifest_file; unknown coefficient names or invalid manifests fail. Use openvsp.batch_status or openvsp.batch_export for batch.json, which is not an operation manifest. Known undefined ratios return explicit reasons. |
| openvsp.batch_submitA | Submit 1-1000 independent steady cases with per-case settings/parameter edits and bounded parallel jobs/CPU use. Creates a durable batch directory and private model snapshots, then runs OpenVSP/VSPAERO in background workers while preserving the source; returns an initial status without waiting for completion. No automatic retry; use openvsp.batch_status, openvsp.batch_cancel, openvsp.batch_resume and openvsp.batch_export for lifecycle control, or openvsp.sweep for a blocking sequential conditions list. |
| openvsp.batch_statusA | Read batch status, counts, resource limits and a paginated case summary, including after restart. Opens or creates .batch.lock to check runner ownership, but does not rewrite batch.json or run a solver. Reports interrupted when a saved running batch has no owner; use openvsp.batch_resume explicitly to retry it. |
| openvsp.batch_cancelA | Request cancellation of selected case IDs, or the whole batch when case_ids is empty. Updates live job state and signals active native work; returns current status, so poll openvsp.batch_status for cleanup completion. Preserves successful results and does not delete artifacts; a batch owned by another server must be cancelled through that owner, and retry requires openvsp.batch_resume. |
| openvsp.batch_resumeA | Explicitly retry selected non-successful cases, or all when case_ids is empty, in an idle batch. Verifies source/snapshot, package and native binary identities, specification and successful artifacts before updating job state and launching background work; successful cases are reused, never rerun. Identity changes including metadata-only package updates are rejected; use the original runtime to resume or openvsp.batch_submit for a new batch. |
| openvsp.batch_exportA | Export a saved batch manifest snapshot, including inputs, coefficients and pending/failed rows, to results.csv and results.json. Creates a new export directory inside the batch on every call without running a solver, rewriting batch.json or changing existing artifacts. Use openvsp.batch_status for a paginated progress summary or openvsp.read_results for one operation manifest. |
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
Descriptions meticulously cross-reference each other and carve out boundaries (preview/inspect/query, run_vspaero/sweep/batch_submit, set_parameters/modify, preflight/health), which strongly aids selection. However, genuine overlap remains between the edit tools (set_parameters vs modify) and the solving tools, requiring careful reading to distinguish rather than being self-evident.
All tools share a consistent openvsp.<snake_case> namespace with no mixed casing or conventions. Most use a verb_noun form (run_vspaero, set_parameters, batch_submit), but several are bare single words (preview, preflight, health, query, inspect, sweep, modify), a minor deviation from a fully uniform pattern.
16 tools is on the heavier side for the scope, but each earns its place: a batch lifecycle legitimately requires submit/status/cancel/resume/export, and health/inspect/query/preview cover distinct inspection levels. Slightly over but well-justified rather than redundant.
The surface covers the full lifecycle: health readiness, XML/native inspection, model creation/modification, parameter edits, geometry preflight, preview export, single/sequential/batch solving, results reading, and batch export. Minor gaps like batch or model deletion are absent but agents can work around these.