Skip to main content
Glama
rhyne1012

OpenVSP MCP (Maintained Fork)

openvsp-mcp — OpenVSP and VSPAERO through MCP

A maintained fork of Three-Little-Birds/openvsp-mcp, extending MCP automation for OpenVSP and VSPAERO with geometry inspection, model modification, and aerodynamic analysis. The original MIT license and history are retained.

0.7.0 improves all 16 tool descriptions, parameter/output-field documentation and MCP annotations without changing tool names, input/output structures or OpenVSP/VSPAERO execution. Package identity changes as with any source update; resume old batches with their original runtime. See 0.7 metadata notes.

0.6.0 added durable multi-case analysis with bounded parallel execution, shared CPU admission, progress/cancellation, verified explicit resume and CSV/JSON exports. Each case can change conditions and typed parameters on a private model copy. See the batch guide, native batch regression and reproducible throughput/RSS benchmark. Measured results and coverage limits are in 0.6 validation. The 0.5 API audit and existing single-case workflows remain applicable.

Install

Python 3.10+ and a separate OpenVSP installation are required. Real integration is verified on macOS Apple Silicon with OpenVSP 3.51.3 / VSPAERO 7.2.2. Other binary versions/platforms have not been integration-tested. This pipeline requires the VSPAERO 7 thick/thin geometry-set interface. Binaries are not included. The MCP SDK is constrained to >=1.20,<2 for the FastMCP 1.x interface.

Keep Python environments, caches, and launchers on each computer's local disk. Source copies, models and result files can be synced; do not sync a venv or copy another computer's absolute-path client configuration. Validate each Mac separately.

git clone https://github.com/rhyne1012/openvsp-mcp.git
cd openvsp-mcp
# Use a local directory outside iCloud/Dropbox for the environment.
python3 -m venv "$HOME/Developer/Codex/.venvs/openvsp-mcp"
. "$HOME/Developer/Codex/.venvs/openvsp-mcp/bin/activate"
python -m pip install '.[dev]'

# Example macOS paths; adjust to this computer's installation.
export OPENVSP_BIN=/Applications/OpenVSP.app/Contents/Resources/vspscript
export VSPAERO_BIN=/Applications/OpenVSP.app/Contents/Resources/vspaero
python -m openvsp_mcp --health

OPENVSP_BIN identifies vspscript, or a vsp accepting -script. VSPAERO_BIN identifies the solver installation; OpenVSP calls it through its Analysis API. The wrapper does not pass a .vsp3 directly to the solver.

--describe reports package/SDK versions and a SHA-256 fingerprint of packaged Python/model files. --health additionally launches a small OpenVSP geometry/API probe and queries VSPAERO's version; it exits 1 when either check fails. Health reports the binary paths and whether the version pair matches the tested pair. Health is a readiness check, not a full solve or a convergence certificate.

For upgrades that preserve the previously selected environment until the candidate passes installation and health checks, see the local installer.

Related MCP server: tigl-mcp

MCP tools

Start with openvsp-mcp or python -m openvsp_mcp (stdio by default). Configure the client with that computer's absolute Python path and binary environment values. All tools return structured results. All except openvsp.health take a nested request object; health takes {}. Descriptions and nested field documentation are available through tools/list. Annotations account for temporary files, batch locks and trusted script I/O; preserving a source model does not mean an operation writes no files.

Tool

Behavior

openvsp.health

Probe binaries/API; report versions, paths and package fingerprint.

openvsp.create_model

Create a four-component aircraft template or custom model without an input file.

openvsp.inspect

Read .vsp3 XML metadata without launching OpenVSP or saving the source.

openvsp.modify

Apply commands, validate the output, then replace the input file.

openvsp.preview

Export SVG and STL from a copy; preserve the source.

openvsp.preflight

Check selected geometry sets in the loaded model and report reference/unit warnings; no solver.

openvsp.run_vspaero

Prepare and solve one condition; validate artifacts and matching polar; preserve source.

openvsp.query

Discover analyses, inspect their input types/defaults, or read paginated geometry parameters.

openvsp.set_parameters

Apply typed ID/value edits in one load/update; verify limits and final readback before replacing the source.

openvsp.read_results

Read saved coefficient subsets and bounded log tails without launching OpenVSP.

openvsp.sweep

Solve 1–25 explicitly specified conditions sequentially; retain partial results on failure.

openvsp.batch_submit

Submit independent cases with per-case parameters, parallel-job and CPU limits.

openvsp.batch_status

Read paginated progress and detect interrupted batches using an ownership lock; no solver or manifest rewrite.

openvsp.batch_cancel

Cancel selected cases or the whole batch.

openvsp.batch_resume

Explicitly retry incomplete cases after verifying inputs and successful artifacts.

openvsp.batch_export

Export saved case results and metadata as CSV/JSON.

Batch defaults are sequential, four CPU threads per case, and a four-thread batch budget. Set max_parallel_jobs and each case's analysis.ncpu together. OPENVSP_CPU_BUDGET limits shared native work in one server; by default it is the larger of four and the reported logical CPU count. Requests exceeding this budget are rejected. Multiple server processes do not share this limit. See the batch guide for lifecycle, resume and resource semantics.

Create a model:

{"request": {"output_dir": "/absolute/path/runs", "template": "simple_aircraft"}}

The template contains a fuselage, main wing, horizontal tail and vertical tail. Use its returned geometry_path for subsequent calls. template: "custom" requires set_commands that add geometry to the initially empty model.

Inspect it:

{"request": {"geometry_file": "/absolute/path/aircraft.vsp3"}}

Preview accepts the same minimal request. Preflight and solve accept these settings for the bundled aircraft:

{
  "request": {
    "geometry_file": "/absolute/path/aircraft.vsp3",
    "case_name": "single_point",
    "output_dir": "/absolute/path/runs",
    "timeout_seconds": 600,
    "analysis": {
      "thick_geom_set": 3,
      "thin_geom_set": 4,
      "mach": 0.1,
      "alpha": 3.0,
      "beta": 0.0,
      "sref": 12.0,
      "bref": 10.0,
      "cref": 1.2444444444,
      "xcg": 3.0,
      "vinf": 34.03,
      "rho": 1.225,
      "reynolds": 2900000.0,
      "length_unit": "m"
    }
  }
}

Set 3 is the fuselage and set 4 is the three lifting surfaces in this template only. Supply model-specific references and sets for other aircraft. -1 disables one surface type. Nonexistent/empty selected sets, identical set indices, or actual geometry overlap between thick and thin sets are rejected before solving. Preflight does not check surface intersections, mesh quality or physical validity.

Defaults remain all geometry as thin surfaces, no thick surfaces, unit reference area/span/chord, Mach 0.1 and alpha 3 degrees. Angles are degrees. length_unit (m, ft, or unspecified) documents your convention; it does not convert any inputs. Geometry, references, speed and density must use consistent units. Mach, speed, density and Reynolds are independent; no atmospheric consistency is derived. Unit references and unspecified units produce warnings, not automatic corrections.

For a sweep, replace analysis with a conditions list. Each entry is a complete analysis settings object with the same defaults; settings do not carry over from one entry to the next. Top-level analysis and run_vspaero are not accepted by this tool. For example, duplicate the explicit analysis object above and change alpha to 0 and 3. timeout_seconds budgets the entire batch. Each condition has its own run directory and verified polar. The batch uses a stable source snapshot.

To edit, call openvsp.modify with set_commands, for example:

{
  "request": {
    "geometry_file": "/absolute/path/aircraft.vsp3",
    "set_commands": [
      {"command": "SetGeomName(FindGeom(\"Main_Wing\",0),\"Renamed_Wing\")"}
    ]
  }
}

Commands are trusted AngelScript with server-process privileges; use trusted local clients. Preview/preflight/solve may apply commands to their private copy. modify and set_parameters replace the original after validation. Read-only preservation refers to the wrapper's normal operations; arbitrary trusted script commands can perform their own I/O.

Results and failures

Model creation, editing, preview, preflight and solve create a unique directory under output_dir, or openvsp_runs beside the source. Creation requires output_dir. Runs preserve scripts, models, logs and manifest.json; operations on an existing model also preserve its input snapshot and hash. Solver runs retain .vspgeom, .vspaero, .adb, .history, .polar, solver.log and history.csv. Preview adds preview.svg and preview.stl. Sweep batches have sweep.json, with completed conditions retained if a later one fails. Runs are not automatically deleted.

Responses include absolute artifact paths, coefficients, applied settings, operation, warnings, preflight, numerical quality and package/SDK fingerprint. A solve requires zero script exit status, a unique completion marker, nonempty geometry, fresh nonempty solver artifacts, and one finite polar row matching Mach, alpha, beta and Reynolds. API errors and failures expose run/log paths. POSIX timeouts kill the process group, including the solver; Windows child cleanup has not been integration-verified.

numerical_quality reports observed last-step coefficient changes and the range of the final five recorded iterations when the history format is recognized. It explicitly reports convergence_status: "not_assessed" and mesh_study: "not_performed". Completed execution, small iteration changes, and sweep success do not establish aerodynamic accuracy or mesh convergence.

Archived scripts read their own snapshot. Rerunning a script can overwrite that run's artifacts; copy the run first when preserving evidence.

Verification

python -m pytest
ruff check .
# Real OpenVSP/VSPAERO required; exercise the legacy and batch tools over MCP stdio:
python examples/simple_aircraft/run_smoke.py
python examples/simple_aircraft/batch_smoke.py

The real smoke queries native capabilities and analysis defaults, reads and edits parameters, verifies fixed-wake/GMRES settings, reads saved results, creates and previews an aircraft, verifies source preservation, checks actual geometry sets, rejects absent/empty/overlapping sets before solving, renames a wing, rejects an invalid parameter edit, runs one condition and an alpha 0/3 degree sweep. Full responses are saved in smoke_outputs/smoke_result.json; set OPENVSP_SMOKE_OUTPUT to choose a different output directory. The alpha 3 case gives approximately CL 0.233343 and CD 0.00959482. These numbers verify the workflow, not accuracy, convergence or design suitability.

Hosted CI uses no native binaries. Native smoke testing remains opt-in and must be repeated for each computer and binary version.

New typed operations

{"request": {"kind": "analysis", "analysis_name": "VSPAEROSweep"}}

Use kind: "parameters" with geometry_file; optionally select geom_id or parm_ids, and paginate with offset/limit (default 100, maximum 200). kind: "capabilities" lists installed analyses. Listing an analysis does not imply that this wrapper supports running it. Analysis input descriptions are omitted because of an audited upstream AngelScript binding defect; see the audit.

Call openvsp.set_parameters with geometry_file and edits: [{"parm_id": "ID_FROM_QUERY", "value": 1.5}]. This operation modifies the source after validation, like openvsp.modify.

Call openvsp.read_results with a returned manifest_file path and optional coefficient_names: ["CLtot", "CDtot"], log: "solver", log_tail_lines: 40. (The execution response calls this path manifest_path.)

For a single solve, set analysis.fixed_wake: true to select official FixedWakeFlag; the effective file must contain WakeIters=0. wake_iterations now accepts 3–255 and ncpu 1–255. Values accepted previously outside these native limits are rejected rather than silently clamped. forward_gmres_tolerance_factor defaults to 1 and accepts positive values up to 1e12. Wrapper defaults remain explicit; loaded-model/native defaults are reported separately by query. See the audit for intentionally narrower wrapper limits.

effective_settings reports verified solver-file fields. The request and analysis_inputs remain the requested values; preflight alone does not verify a solver file. timings reports preparation/native/validation/total seconds.

Other interfaces

Python exports include CreateModelRequest, SweepRequest, OpenVSPRequest, VSPAeroSettings, create_model, preview_model, preflight_model, run_sweep, health_check, execute_openvsp, QueryRequest, ParameterEditRequest, ResultRequest, query_model, set_parameters and read_results.

HTTP MCP binds to loopback by default:

python -m openvsp_mcp --transport streamable-http --host 127.0.0.1 --port 8000 --path /mcp
python -m uvicorn openvsp_mcp.fastapi_app:create_app --factory --host 127.0.0.1 --port 8002

REST exposes GET /health (200 ready, 503 unhealthy) and POST /vsp/inspect, /vsp/create, /vsp/modify, /vsp/preview, /vsp/preflight, /vsp/run, and /vsp/sweep, /vsp/query, /vsp/parameters, and /vsp/results. Batch routes are POST /vsp/batch/submit, /vsp/batch/status, /vsp/batch/cancel, /vsp/batch/resume and /vsp/batch/export. POST bodies contain the request object without the MCP wrapper. No authentication is provided; these interfaces are intended for trusted local use.

Maintenance

Keep upstream pointing to the original project and origin to this fork. Use a small branch per reproducible issue and retain a verified environment before switching a daily MCP client. See maintenance notes and LICENSE.

Available Tools

16 tools
openvsp.batch_cancelA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesExisting batch and optional cases to cancel.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds critical nuance beyond the destructiveHint=true annotation: it clarifies that cancellation does not delete artifacts and preserves successful results. It also discloses asynchronous cleanup ('poll openvsp.batch_status'), signals active native work, and notes ownership restrictions. No contradiction with annotations; in fact, it refines the meaning of destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loads the primary action, and covers essential operational details (state updates, polling, ownership, retry) without excessive verbosity. Slight redundancy with the schema (e.g., empty case_ids meaning) but it does not bloat the text and the unique ownership/retry info earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a cancellation tool with asynchronous behavior, the description covers the key actions, parameters, state updates, cleanup polling, artifact preservation, ownership constraints, and retry path. Since an output schema exists, return format is handled. The only minor gap is not specifying the exact effect on in-progress work (only 'signals active native work'), but this is acceptable given the schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both case_ids and batch_directory, and the tool description largely echoes the schema's semantics (empty case_ids means whole batch, unknown IDs fail, successful results preserved). The description does not introduce new parameter-specific details, so a baseline of 3 is appropriate since the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action ('Request cancellation of selected case IDs, or the whole batch') and clearly identifies the resource (cases/batch). It also distinguishes its default behavior (empty case_ids cancels whole batch) from its sibling batch_resume, which is the opposite operation for retry. This makes the tool's role immediately unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when not to use this tool: 'a batch owned by another server must be cancelled through that owner.' It also directs the agent to the alternative batch_resume for retry-non-successful cases, and to poll batch_status for cleanup completion. These clear exclusions and alternative references provide excellent selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesExisting batch directory to export without solving.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the sparse annotations by disclosing key side effects: it creates a new export directory on every call, does not run a solver, does not rewrite batch.json, and leaves existing artifacts untouched. This disambiguates the tool's non-destructive but additive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: first defines the output contents, second clarifies side effects, third routes to alternatives. No filler or redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one simple parameter, a well-documented input schema, and an output schema, the description provides everything an agent needs: purpose, side effects, output artifacts, and sibling alternatives. There are no significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already thoroughly documents batch_directory, including that it must be an existing directory at its original absolute location and that a fresh export directory is added there. The description adds output filenames and manifest contents, but no additional parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Export a saved batch manifest snapshot'), the exact resource (batch directory), and the output files (results.csv and results.json). It clearly differentiates itself from sibling tools batch_status and read_results by naming what those tools do instead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly routes the agent to alternatives: batch_status for a paginated progress summary and read_results for one operation manifest. This tells the agent when this export tool is and is not the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openvsp.batch_resumeA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesIdle batch and optional non-successful cases to retry.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include destructiveHint=true, and the description adds substantial context: it verifies identities and artifacts before updating state, reuses successful cases, rejects metadata-only updates, and launches background work. This goes beyond the annotation's simple destructive flag, clarifying the preconditions and side effects. A slight deduction for not detailing the exact state changes or output format, but the behavioral details are strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but information-rich, with each sentence earning its place. It front-loads the core purpose and then details conditions and exclusions. Slightly long for a single paragraph, but structured with semicolons to separate ideas. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (state changes, identity checks, background launch), the description covers the necessary preconditions and behaviors. An output schema exists (though not shown here), so return values are covered. Minor gap: it doesn't mention the exact failure behavior for batch_directory not found, but the schema hints at it. Overall, sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides thorough descriptions for both parameters (case_ids and batch_directory), covering coverage 100%. The description adds context by explaining empty case_ids behavior (all non-successful cases) and emphasizing the idle requirement, which is not fully in the schema. This elevates from baseline 3 to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: retry selected non-successful cases in an idle batch, with explicit mention of reusing successful cases and rejecting identity changes. It distinguishes itself from batch_submit and batch_cancel by referencing those as alternatives, and the sibling list confirms these exist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: for retrying non-successful cases in an idle batch, with conditions (idle batch, source/package/binary identities unchanged). It also states when not to use it (for new batches use batch_submit, or use original runtime for identity changes), clearly routing to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openvsp.batch_statusA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesExisting batch directory and case-page bounds.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that it opens or creates .batch.lock to check runner ownership, and that it reports interrupted when a saved running batch has no owner. This adds context beyond the annotations (idempotentHint, destructiveHint) about side effects on the lock file, though it does not detail the lock file's exact behavior or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, starting with the core purpose, then side effects, then the explicit instruction to use batch_resume. Every sentence serves a purpose, though it could be slightly more concise by merging the lock file and owner check details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is an output schema and the schema covers all parameters, the description provides sufficient context for an agent to call this tool correctly. It explains the key behavior around .batch.lock and the interrupted state, and directs to batch_resume for recovery. Minor gap: it doesn't explicitly state that the tool is safe to call repeatedly (though idempotentHint is true).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all parameters with descriptions (100% coverage), including pagination bounds and the requirement for the batch directory to exist. The description adds the note about the lock file, but the parameter semantics are adequately covered by the schema, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool reads batch status, counts, and a paginated case summary, and explicitly notes that it does not rewrite batch.json or run a solver. It distinguishes itself from batch_resume, a sibling tool, by mentioning the 'running batch has no owner' scenario.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool (to read status) and when not to run a solver, and it directs users to use openvsp.batch_resume explicitly to retry interrupted batches. This provides clear guidance on alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesShared model, independent cases and batch resource limits.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses highly relevant runtime behavior beyond the sparse annotations: it 'creates a durable batch directory and private model snapshots,' runs 'OpenVSP/VSPAERO in background workers while preserving the source,' and 'returns an initial status without waiting for completion.' It also explicitly states 'No automatic retry,' which is important side-effect information for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three dense sentences with no filler. The most important decision-relevant facts are front-loaded: the batch scope, independence, resource bounding, persistence, background execution, source preservation, and non-blocking return. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex batch-submission tool, the description covers the essential operational context: durable artifacts, private snapshots, source preservation, non-blocking behavior, no retries, and routing to lifecycle and blocking-alternative siblings. Since an output schema exists, omitting return-value details is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single request parameter and all nested fields thoroughly. The description adds conceptual framing like 'per-case settings/parameter edits' and 'bounded parallel jobs/CPU use,' but it does not add substantial parameter-level semantics beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Submit 1-1000 independent steady cases with per-case settings/parameter edits and bounded parallel jobs/CPU use.' It clearly distinguishes batch_submit from the batch lifecycle siblings and from openvsp.sweep by contrasting background/non-blocking submission with a 'blocking sequential conditions list.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells the agent exactly which sibling tools to use for lifecycle control: '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.' It also states that there is no automatic retry, which helps set expectations for when this tool is and is not appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openvsp.create_modelA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesNew model template and output settings.

Output Schema

ParametersJSON Schema
NameRequiredDescription
timingsNoMeasured operation phase durations in seconds; available phase keys depend on execution.
log_pathYesAbsolute path to the retained OpenVSP process log.
versionsNoPackage version, MCP SDK version and package SHA-256, with observed native versions when available. Package identity changes on source/metadata updates.
warningsNoReference/unit/atmospheric consistency warnings from existing checks; no automatic corrections.
artifactsNoMapping of run-relative artifact names to absolute file paths; files remain after the call.
operationNoExecuted operation: create, modify, preview, preflight or run_vspaero; reflects the enforced operation rather than the legacy input flag.
preflightNoSelected thick/thin geometry IDs and requested settings when preflight ran; empty otherwise. Does not certify mesh quality.
result_pathNoAbsolute path to the solver .adb result; null for operations without a VSPAERO solve.
script_pathYesAbsolute path to the retained AngelScript automation script.
coefficientsNoNative polar column names and unscaled numeric values for a verified solve; empty otherwise. Includes condition columns as well as dimensionless aerodynamic coefficients; AoA/Beta are degrees and Re/1e6 is Reynolds in millions.
geometry_pathYesAbsolute path to the validated model saved in the run directory, including for source-replacing edits.
manifest_pathYesAbsolute path to this operation's manifest.json; pass as manifest_file to openvsp.read_results.
run_directoryYesAbsolute path to the unique persistent directory containing this operation's artifacts.
analysis_inputsNoRequested analysis settings for solve/preflight, including defaults; empty for other operations. Units follow VSPAeroSettings and no conversion is applied.
parameter_valuesNoFinal native readback values keyed by edited parameter ID; native units, empty when no parameters were edited.
numerical_qualityNoObserved iteration-history diagnostics for a solve; convergence is not_assessed and mesh study not_performed. Empty for non-solver operations.
effective_settingsNoVerified solver-file values and observed CPU-thread information for a solve; empty before solving. Separate from requested analysis_inputs.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true, and the description adds meaningful context: it retains model/script/log/manifest in a unique directory under output_dir, runs OpenVSP natively, and does not solve VSPAERO. It also warns that AngelScript may perform arbitrary file/external I/O with server privileges, which is critical behavioral disclosure beyond the annotations. Minor gap: it doesn't explicitly state that the unique directory is newly created or that existing files are not overwritten, but the 'unique directory' phrasing covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: the first states the core function and scope, the second describes the run artifacts and the no-solve behavior, the third routes to the sibling for editing. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a create tool with a rich schema and output schema present. It covers the key behavioral aspects (unique directory, no solve, arbitrary I/O risk) and sibling routing. It doesn't detail the output schema's contents, but the output schema itself carries that burden. A small gap is not mentioning that the tool is destructive (overwrites/creates new dirs) explicitly, but annotations cover that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds the high-level context that template and set_commands are the two ways to build the model, but it doesn't add meaning beyond the schema's own parameter descriptions. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new .vsp3 model from a template or custom AngelScript, without an input model, and explicitly distinguishes it from openvsp.modify for editing existing models. The verb 'create' plus resource '.vsp3 model' and the no-input-model condition make the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool (create new model without input) and when not to (use openvsp.modify to edit an existing source model). It also notes that no VSPAERO solve is performed, which helps route to run_vspaero or batch_submit for that need. This is strong usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false, so the description carries the full burden. It discloses it launches a temporary API probe and solver version command, explicitly says no solve or user model is involved, and notes status=error behavior when unavailable. This is meaningful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences with the main purpose front-loaded. No filler or redundant phrasing; every sentence adds either scope, behavior, or routing to an alternative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers what is checked, how it is checked (probe + version command), what it returns on failure, and which sibling to use for model-specific checks. With an output schema present and zero parameters, nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parametersches, so the schema fully covers parameter documentation. The description need not elaborate on parameters; baseline 4 is appropriate for a no-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Check') and resource ('OpenVSP/VSPAERO readiness, versions, paths and package identity'). It also distinguishes itself from openvsp.preflight by explicitly narrowing scope to installed environment, not model geometry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative openvsp.preflight and specifies that it is for checking a particular model's geometry sets. The statement 'no aerodynamic solve or user model is involved' clarifies what this tool is not for, though it does not provide an explicit 'when to use' rule beyond exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openvsp.inspectA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesModel file to inspect as XML.

Output Schema

ParametersJSON Schema
NameRequiredDescription
geom_idsYesComponent IDs found in Vehicle/Geom XML entries, in file order.
info_logYesNewline-separated component summaries in ID:name:type form; no solver log.
wing_namesNoNames of components whose XML type is Wing; empty when none exist.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral detail beyond the readOnlyHint annotation: it does not launch OpenVSP, write files, or modify source, and it fails on unreadable or invalid XML. This clarifies side effects and error behavior in a way annotations alone do not, and it is consistent with the readOnlyHint=true annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the primary purpose, and every sentence earns its place: what it reads, what it avoids doing, how it fails, and when to use an alternative. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool with an output schema, the description covers the input file handling, the non-mutating behavior, error conditions, and the appropriate alternative tool. The presence of an output schema removes the need to enumerate return fields in the description. Nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single parameter 'geometry_file' is already well-described in the schema with path semantics and tilde expansion. The tool description adds context about reading the file as XML and the kind of data extracted, but does not significantly enhance parameter-level meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific verb ('Read'), a specific resource ('.vsp3 XML'), and the exact data returned (component IDs, wing names, component summary). It also explicitly distinguishes itself from openvsp.query by noting that query provides native parameter values or analysis defaults, making sibling differentiation clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool: to read component and wing data directly from XML without launching OpenVSP. It also provides an explicit when-not by directing users to openvsp.query for native parameter values or analysis defaults, giving clear guidance on choosing between these tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openvsp.modifyA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesSource and edits; this tool always modifies without solving.

Output Schema

ParametersJSON Schema
NameRequiredDescription
timingsNoMeasured operation phase durations in seconds; available phase keys depend on execution.
log_pathYesAbsolute path to the retained OpenVSP process log.
versionsNoPackage version, MCP SDK version and package SHA-256, with observed native versions when available. Package identity changes on source/metadata updates.
warningsNoReference/unit/atmospheric consistency warnings from existing checks; no automatic corrections.
artifactsNoMapping of run-relative artifact names to absolute file paths; files remain after the call.
operationNoExecuted operation: create, modify, preview, preflight or run_vspaero; reflects the enforced operation rather than the legacy input flag.
preflightNoSelected thick/thin geometry IDs and requested settings when preflight ran; empty otherwise. Does not certify mesh quality.
result_pathNoAbsolute path to the solver .adb result; null for operations without a VSPAERO solve.
script_pathYesAbsolute path to the retained AngelScript automation script.
coefficientsNoNative polar column names and unscaled numeric values for a verified solve; empty otherwise. Includes condition columns as well as dimensionless aerodynamic coefficients; AoA/Beta are degrees and Re/1e6 is Reynolds in millions.
geometry_pathYesAbsolute path to the validated model saved in the run directory, including for source-replacing edits.
manifest_pathYesAbsolute path to this operation's manifest.json; pass as manifest_file to openvsp.read_results.
run_directoryYesAbsolute path to the unique persistent directory containing this operation's artifacts.
analysis_inputsNoRequested analysis settings for solve/preflight, including defaults; empty for other operations. Units follow VSPAeroSettings and no conversion is applied.
parameter_valuesNoFinal native readback values keyed by edited parameter ID; native units, empty when no parameters were edited.
numerical_qualityNoObserved iteration-history diagnostics for a solve; convergence is not_assessed and mesh study not_performed. Empty for non-solver operations.
effective_settingsNoVerified solver-file values and observed CPU-thread information for a solve; empty before solving. Separate from requested analysis_inputs.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation risk is known. The description adds valuable behavioral context: it runs on a snapshot, retains run artifacts, replaces the source only after validation, and refuses replacement if the source changed during the run. This goes beyond the annotations and gives the agent a clear safety model. It doesn't detail every side effect, but the snapshot/validation behavior is the key disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler. The core action, the safety behavior, and the alternative tool are all front-loaded. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential operational context: snapshot execution, validation before replacement, artifact retention, and the no-solve constraint. The output schema exists, so return values don't need to be described. A small gap is that it doesn't explicitly say what happens to the run artifacts or how the agent learns whether replacement was refused, but the validation behavior is stated clearly enough for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the request object and its nested fields thoroughly. The description adds the key semantic that this tool 'always modifies without solving' and that set_commands are 'trusted' with server privileges, but most parameter meaning is already in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Edit an existing model' via AngelScript and/or parameter ID/value edits. It clearly distinguishes itself from siblings by stating 'No VSPAERO solve' and pointing to openvsp.set_parameters for a focused typed-edit request. The title is null, but the description fully compensates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool (editing an existing model with trusted scripts or parameter edits) and when not to ('No VSPAERO solve; use openvsp.set_parameters for a focused typed-edit request'). It also names the alternative tool, giving an agent clear routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openvsp.preflightA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesModel and analysis settings to check without solving.

Output Schema

ParametersJSON Schema
NameRequiredDescription
timingsNoMeasured operation phase durations in seconds; available phase keys depend on execution.
log_pathYesAbsolute path to the retained OpenVSP process log.
versionsNoPackage version, MCP SDK version and package SHA-256, with observed native versions when available. Package identity changes on source/metadata updates.
warningsNoReference/unit/atmospheric consistency warnings from existing checks; no automatic corrections.
artifactsNoMapping of run-relative artifact names to absolute file paths; files remain after the call.
operationNoExecuted operation: create, modify, preview, preflight or run_vspaero; reflects the enforced operation rather than the legacy input flag.
preflightNoSelected thick/thin geometry IDs and requested settings when preflight ran; empty otherwise. Does not certify mesh quality.
result_pathNoAbsolute path to the solver .adb result; null for operations without a VSPAERO solve.
script_pathYesAbsolute path to the retained AngelScript automation script.
coefficientsNoNative polar column names and unscaled numeric values for a verified solve; empty otherwise. Includes condition columns as well as dimensionless aerodynamic coefficients; AoA/Beta are degrees and Re/1e6 is Reynolds in millions.
geometry_pathYesAbsolute path to the validated model saved in the run directory, including for source-replacing edits.
manifest_pathYesAbsolute path to this operation's manifest.json; pass as manifest_file to openvsp.read_results.
run_directoryYesAbsolute path to the unique persistent directory containing this operation's artifacts.
analysis_inputsNoRequested analysis settings for solve/preflight, including defaults; empty for other operations. Units follow VSPAeroSettings and no conversion is applied.
parameter_valuesNoFinal native readback values keyed by edited parameter ID; native units, empty when no parameters were edited.
numerical_qualityNoObserved iteration-history diagnostics for a solve; convergence is not_assessed and mesh study not_performed. Empty for non-solver operations.
effective_settingsNoVerified solver-file values and observed CPU-thread information for a solve; empty before solving. Separate from requested analysis_inputs.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=false and destructiveHint=true, the description carries meaningful safety burden and does so by disclosing that it runs on a private copy, retains artifacts, does not replace the source, and does not execute VSPAERO. It also states what it refuses to validate. It doesn't mention that set_commands can still perform arbitrary I/O, but that caveat exists in the schema, so the description is not contradictory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences front-load the core purpose, follow with behavioral safety guarantees, and end with exclusions and an alternative. No redundant wording; every sentence contributes decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, scope, exclusions, safety model, and routing to the sibling solver tool. An output schema is present, so return-value description isn't needed; the description is sufficient for an agent to decide when to call preflight and what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the request object already documents model and analysis settings in detail. The description adds only the context 'before a VSPAERO run' and 'without solving,' which clarifies intent but no new parameter syntax or constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names the exact operation: 'Check selected thick/thin geometry sets before a VSPAERO run,' and lists concrete validation outcomes (rejects missing, empty, or overlapping sets; reports reference/unit warnings). It also distinguishes itself from run_vspaero by stating it does not execute VSPAERO or assess aerodynamic accuracy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says this is a pre-run check and provides exclusions: it does not assess intersections, mesh quality, or aerodynamic accuracy. It names the alternative, openvsp.run_vspaero, for coefficients and verified solver-file settings, so an agent knows when to use each tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openvsp.previewA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesModel, optional private-copy edits and export location.

Output Schema

ParametersJSON Schema
NameRequiredDescription
timingsNoMeasured operation phase durations in seconds; available phase keys depend on execution.
log_pathYesAbsolute path to the retained OpenVSP process log.
versionsNoPackage version, MCP SDK version and package SHA-256, with observed native versions when available. Package identity changes on source/metadata updates.
warningsNoReference/unit/atmospheric consistency warnings from existing checks; no automatic corrections.
artifactsNoMapping of run-relative artifact names to absolute file paths; files remain after the call.
operationNoExecuted operation: create, modify, preview, preflight or run_vspaero; reflects the enforced operation rather than the legacy input flag.
preflightNoSelected thick/thin geometry IDs and requested settings when preflight ran; empty otherwise. Does not certify mesh quality.
result_pathNoAbsolute path to the solver .adb result; null for operations without a VSPAERO solve.
script_pathYesAbsolute path to the retained AngelScript automation script.
coefficientsNoNative polar column names and unscaled numeric values for a verified solve; empty otherwise. Includes condition columns as well as dimensionless aerodynamic coefficients; AoA/Beta are degrees and Re/1e6 is Reynolds in millions.
geometry_pathYesAbsolute path to the validated model saved in the run directory, including for source-replacing edits.
manifest_pathYesAbsolute path to this operation's manifest.json; pass as manifest_file to openvsp.read_results.
run_directoryYesAbsolute path to the unique persistent directory containing this operation's artifacts.
analysis_inputsNoRequested analysis settings for solve/preflight, including defaults; empty for other operations. Units follow VSPAeroSettings and no conversion is applied.
parameter_valuesNoFinal native readback values keyed by edited parameter ID; native units, empty when no parameters were edited.
numerical_qualityNoObserved iteration-history diagnostics for a solve; convergence is not_assessed and mesh study not_performed. Empty for non-solver operations.
effective_settingsNoVerified solver-file values and observed CPU-thread information for a solve; empty before solving. Separate from requested analysis_inputs.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses useful runtime behavior beyond annotations: it runs OpenVSP, retains exports/model/script/log/manifest in a unique run directory, uses a private copy, preserves the source, and does not run VSPAERO. It does not mention that set_commands may perform arbitrary server-privileged I/O, but the schema covers that and destructiveHint already signals risk.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences. The first sentence states the core action, and the second packs retention behavior and alternative routing without redundancy. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with a rich input schema and output schema, the description covers the key operational facts an agent needs: what files are produced, where artifacts are retained, that the source is not replaced, that VSPAERO is not run, and which sibling handles adjacent concerns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the detailed request schema already documents all parameters, including parameter_edits, output_dir, and set_commands. The tool description adds only high-level context about private-copy edits and output file names, which is useful but does not meaningfully extend parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Export preview.svg and preview.stl for a model'. It also separates this tool from siblings by noting it does not replace the source or run VSPAERO, and briefly names openvsp.inspect and openvsp.preflight for different tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context for when preview is appropriate: private-copy edits, exporting preview artifacts, no source replacement, and no VSPAERO. It explicitly routes file-only metadata to openvsp.inspect and geometry-set checks to openvsp.preflight, which is strong alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesNative query kind, optional model and parameter pagination.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With all annotations false, the description carries the behavioral disclosure burden, and it does so thoroughly: it states that OpenVSP is launched via temporary files, the source model is preserved, model-free capability lists may use a five-minute cache, and temporary files are removed afterward. It also surfaces the caveat that native defaults may depend on the model and may not be executable by the wrapper. This is strong, non-contradictory transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler, front-loads the primary purpose, and packs caveats and sibling routing into the remaining sentences. Every sentence earns its place, and the structure is easy for an agent to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the tool's multi-mode complexity, the description covers all three query kinds, launch behavior, caching, source preservation, parameter applicability, and routing to relevant sibling tools. The output schema exists, so return-value details do not need to be restated in the description. Nothing critical is missing for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and every parameter already has a detailed description, so the baseline is 3. The description adds useful behavioral context such as the five-minute cache and model-dependent defaults, but it does not materially redefine or enrich individual parameter semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List installed analyses, read analysis input types/defaults, or read paginated geometry parameter IDs, values and limits.' It clearly enumerates three distinct modes and names the sibling alternatives (openvsp.inspect, openvsp.set_parameters), so an agent can distinguish this tool from its siblings without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit routing guidance: 'use openvsp.inspect for XML-only inspection and openvsp.set_parameters to apply returned IDs.' It also cautions that native defaults 'do not imply wrapper execution support.' However, it does not give when-not-to-use guidance against the broader sibling family (e.g., sweeps, batch jobs), leaving some inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openvsp.read_resultsA
Read-only

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; missing coefficient names or invalid manifests fail. Use openvsp.batch_status or openvsp.batch_export for batch.json, which is not an operation manifest.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesSaved operation manifest, coefficient selection and log bounds.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is known. The description adds specifics: it does not launch OpenVSP/VSPAERO, does not write files, and fails on missing coefficient names or invalid manifests. It also explains log tail behavior. This enriches the annotation without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that are dense and front-loaded: the core purpose and mode of operation come first, followed by a crucial usage caveat. Every clause earns its place, with no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the readOnlyHint and openWorldHint annotations, the thorough input schema, and the presence of an output schema (implied), the description covers everything an agent needs to call it correctly: what it reads, what fails, and how to route non-manifest files. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for all parameters, including defaults and constraints. The description adds the hint 'Pass an operation's manifest_path as manifest_file', but the schema already states that manifest_file is 'Path to a saved operation manifest.json, as returned in manifest_path'. Thus the description adds little beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (read a saved operation manifest's coefficients, settings, diagnostics, and optional log tail) and clearly distinguishes it from batch.json usage by pointing to sibling tools. It names the resource (operation manifest) and the mode (without launching or writing files), making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells when not to use this tool (for batch.json) and directs to openvsp.batch_status or openvsp.batch_export, which is a clear exclusion. It also implies it is for operation manifests. It does not enumerate all possible alternative tools, but the key one is covered, so this is above average.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openvsp.run_vspaeroA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesModel, optional private-copy edits and one flight condition.

Output Schema

ParametersJSON Schema
NameRequiredDescription
timingsNoMeasured operation phase durations in seconds; available phase keys depend on execution.
log_pathYesAbsolute path to the retained OpenVSP process log.
versionsNoPackage version, MCP SDK version and package SHA-256, with observed native versions when available. Package identity changes on source/metadata updates.
warningsNoReference/unit/atmospheric consistency warnings from existing checks; no automatic corrections.
artifactsNoMapping of run-relative artifact names to absolute file paths; files remain after the call.
operationNoExecuted operation: create, modify, preview, preflight or run_vspaero; reflects the enforced operation rather than the legacy input flag.
preflightNoSelected thick/thin geometry IDs and requested settings when preflight ran; empty otherwise. Does not certify mesh quality.
result_pathNoAbsolute path to the solver .adb result; null for operations without a VSPAERO solve.
script_pathYesAbsolute path to the retained AngelScript automation script.
coefficientsNoNative polar column names and unscaled numeric values for a verified solve; empty otherwise. Includes condition columns as well as dimensionless aerodynamic coefficients; AoA/Beta are degrees and Re/1e6 is Reynolds in millions.
geometry_pathYesAbsolute path to the validated model saved in the run directory, including for source-replacing edits.
manifest_pathYesAbsolute path to this operation's manifest.json; pass as manifest_file to openvsp.read_results.
run_directoryYesAbsolute path to the unique persistent directory containing this operation's artifacts.
analysis_inputsNoRequested analysis settings for solve/preflight, including defaults; empty for other operations. Units follow VSPAeroSettings and no conversion is applied.
parameter_valuesNoFinal native readback values keyed by edited parameter ID; native units, empty when no parameters were edited.
numerical_qualityNoObserved iteration-history diagnostics for a solve; convergence is not_assessed and mesh study not_performed. Empty for non-solver operations.
effective_settingsNoVerified solver-file values and observed CPU-thread information for a solve; empty before solving. Separate from requested analysis_inputs.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true and readOnlyHint=false, but the description adds critical context: runs on a private copy without replacing the source, retains artifacts and settings, failures preserve paths, and success does not certify convergence. It fully discloses the mutation behavior and its safety guard. No contradiction; the private-copy detail actually clarifies the destructive hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, but packed with essential information: what it does, where it runs, what it retains, timeout semantics, failure behavior, and alternatives. It is front-loaded with the core function and then details, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has a rich output schema (not shown but indicated as true), a complete nested request schema, and annotations that cover safety, the description covers all operational aspects. It answers the 'what, where, when, and alternatives' questions without redundancy.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with detailed descriptions (e.g., request, analysis, case_name). The description adds no parameter-specific semantics beyond what the schema provides, and with full coverage, a baseline of 3 is appropriate. It does mention 'native timeout excludes preparation' which relates to timeout_seconds, but the schema already explains that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool runs one steady subsonic VSPAERO condition after geometry-set preflight, on a private copy, retaining artifacts. It distinguishes itself from sweep and batch_submit by name, exactly what the agent needs to differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says use openvsp.sweep for sequential conditions and openvsp.batch_submit for independent jobs, giving at least two alternatives and the condition for each. It also states prerequisites (geometry-set preflight) and timeout semantics, making usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openvsp.set_parametersA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesSource model and typed edits that replace it after validation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
timingsNoMeasured operation phase durations in seconds; available phase keys depend on execution.
log_pathYesAbsolute path to the retained OpenVSP process log.
versionsNoPackage version, MCP SDK version and package SHA-256, with observed native versions when available. Package identity changes on source/metadata updates.
warningsNoReference/unit/atmospheric consistency warnings from existing checks; no automatic corrections.
artifactsNoMapping of run-relative artifact names to absolute file paths; files remain after the call.
operationNoExecuted operation: create, modify, preview, preflight or run_vspaero; reflects the enforced operation rather than the legacy input flag.
preflightNoSelected thick/thin geometry IDs and requested settings when preflight ran; empty otherwise. Does not certify mesh quality.
result_pathNoAbsolute path to the solver .adb result; null for operations without a VSPAERO solve.
script_pathYesAbsolute path to the retained AngelScript automation script.
coefficientsNoNative polar column names and unscaled numeric values for a verified solve; empty otherwise. Includes condition columns as well as dimensionless aerodynamic coefficients; AoA/Beta are degrees and Re/1e6 is Reynolds in millions.
geometry_pathYesAbsolute path to the validated model saved in the run directory, including for source-replacing edits.
manifest_pathYesAbsolute path to this operation's manifest.json; pass as manifest_file to openvsp.read_results.
run_directoryYesAbsolute path to the unique persistent directory containing this operation's artifacts.
analysis_inputsNoRequested analysis settings for solve/preflight, including defaults; empty for other operations. Units follow VSPAeroSettings and no conversion is applied.
parameter_valuesNoFinal native readback values keyed by edited parameter ID; native units, empty when no parameters were edited.
numerical_qualityNoObserved iteration-history diagnostics for a solve; convergence is not_assessed and mesh study not_performed. Empty for non-solver operations.
effective_settingsNoVerified solver-file values and observed CPU-thread information for a solve; empty before solving. Separate from requested analysis_inputs.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although destructiveHint=true already signals mutation, the description gives concrete behavioral detail: it verifies limits and readback, retains run artifacts, replaces the source only after validation, and rejects concurrent source changes. This is valuable context beyond the annotation and clarifies the tool's transactional behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences cover function, behavioral guarantees, and sibling routing with no filler. The most important action is front-loaded, and every clause provides useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich schema and presence of an output schema, the description supplies the missing operational context: validation workflow, artifact retention, replacement semantics, concurrency rejection, and alternative tooling. Nothing essential for selecting or invoking the tool is left out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage and thoroughly documents parm_id, value, edits, geometry_file, output_dir, and timeout_seconds. The tool description mostly restates the query provenance and native-units expectation rather than adding new parameter-level meaning, so the schema-carries-the-load baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific verb and resource: applying typed parameter ID/value edits obtained from openvsp.query in one OpenVSP load/update. It also differentiates from siblings by stating 'No VSPAERO solve' and pointing to openvsp.modify, so an agent can distinguish it from related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly routes to openvsp.modify when trusted AngelScript commands are needed and explicitly excludes VSPAERO solving. It also establishes the intended data flow by requiring IDs obtained from openvsp.query, making the precondition and alternative clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openvsp.sweepA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYesShared source, explicit conditions and total sweep budget.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal destructive and open-world behavior, so the lower bar is met. The description adds valuable context: source is snapshotted once, artifacts plus sweep.json are retained, the source is not replaced, failures retain partial results, and timeout_seconds bounds the whole sweep. It does not surface that set_commands are server-privileged and may perform arbitrary I/O, leaving part of the destructiveHint unexplained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences deliver the core sequential behavior, artifact/source-safety guarantees, timeout semantics, and the batch_submit alternative with no filler. The most important distinguishing trait, sequential per-condition solving, is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given rich nested schema descriptions, annotations, and an output schema, the description covers the essential operational facts: execution mode, artifact retention, source preservation, partial results, budget semantics, and when to use batch_submit instead. No critical information needed to call the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the request object, conditions, timeout, output behavior, and per-field VSPAeroSettings semantics. The description restates the whole-sweep timeout and per-condition independence but adds no parameter-level detail beyond what the schema provides; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action and resource: 'Solve 1-25 explicit steady conditions sequentially using one source snapshot and shared optional commands.' It also names the sibling alternative openvsp.batch_submit, making the tool's scope and boundary clear without needing to inspect schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly routes to an alternative: 'Use openvsp.batch_submit for durable independent cases, per-case parameter edits and bounded parallel execution.' This gives a clear when-to-use vs. when-not-to-use rule and names the specific sibling to prefer instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 15 tool updatesv0.7.0
    • Changedopenvsp.batch_cancel3 fields changed
      • addedInput schema / $defs / BatchCancelRequest / properties / batch_directory / description
        Added value: +"Existing batch directory at its original absolute location. Cancel active work through its owner; resume requires an idle batch with unchanged source/package/binary identities. Tilde and relative paths resolve on the server."
      • addedInput schema / $defs / BatchCancelRequest / properties / case_ids / description
        Added value: +"Selected case IDs. Empty (default) means the whole batch for batch_cancel, or every non-successful case for batch_resume. Unknown IDs fail; successful results are preserved."
      • addedInput schema / properties / request / description
        Added value: +"Existing batch and optional cases to cancel."
    • Changedopenvsp.batch_export2 fields changed
      • addedInput schema / $defs / BatchExportRequest / properties / batch_directory / description
        Added value: +"Existing batch directory at its original absolute location. A fresh export directory containing CSV/JSON is added here on every call; no solver runs."
      • addedInput schema / properties / request / description
        Added value: +"Existing batch directory to export without solving."
    • Changedopenvsp.batch_resume3 fields changed
      • addedInput schema / $defs / BatchResumeRequest / properties / batch_directory / description
        Added value: +"Existing batch directory at its original absolute location. Cancel active work through its owner; resume requires an idle batch with unchanged source/package/binary identities. Tilde and relative paths resolve on the server."
      • addedInput schema / $defs / BatchResumeRequest / properties / case_ids / description
        Added value: +"Selected case IDs. Empty (default) means the whole batch for batch_cancel, or every non-successful case for batch_resume. Unknown IDs fail; successful results are preserved."
      • addedInput schema / properties / request / description
        Added value: +"Idle batch and optional non-successful cases to retry."
    • Changedopenvsp.batch_status4 fields changed
      • addedInput schema / $defs / BatchStatusRequest / properties / batch_directory / description
        Added value: +"Existing batch directory returned by batch_submit; it must remain at its original absolute location. Tilde expands; batch.json and the ownership lock are read there."
      • addedInput schema / $defs / BatchStatusRequest / properties / limit / description
        Added value: +"Maximum case summaries to return, 1-100 (default 50); aggregate status/counts are not paginated."
      • addedInput schema / $defs / BatchStatusRequest / properties / offset / description
        Added value: +"Zero-based offset into the ordered case summary (default 0); counts always cover the entire batch."
      • addedInput schema / properties / request / description
        Added value: +"Existing batch directory and case-page bounds."
    • Changedopenvsp.batch_submit33 fields changed
      • addedInput schema / $defs / BatchCase / properties / analysis / description
        Added value: +"Complete settings for this independent steady solve; omitted fields use VSPAeroSettings defaults. ncpu must fit both batch and server budgets."
      • addedInput schema / $defs / BatchCase / properties / case_id / description
        Added value: +"Unique case identifier and artifact filename stem within the batch; must match the schema pattern."
      • addedInput schema / $defs / BatchCase / properties / parameter_edits / description
        Added value: +"Unique parameter ID/value edits on this case's private model copy; defaults to none. Limits and readback are verified; source model is preserved."
      • addedInput schema / $defs / BatchCase / properties / timeout_seconds / description
        Added value: +"Native OpenVSP/VSPAERO process timeout for this case in seconds (default 600); not an overall batch deadline and excludes resource waiting."
      • addedInput schema / $defs / BatchRequest / properties / cases / description
        Added value: +"1-1000 independent steady cases with unique case_id values; each has its own settings and optional parameter edits."
      • addedInput schema / $defs / BatchRequest / properties / cpu_budget / description
        Added value: +"Maximum sum of admitted case CPU threads for this batch, 1-255 (default 4). Each case ncpu must fit; must not exceed the shared per-server OPENVSP_CPU_BUDGET."
      • addedInput schema / $defs / BatchRequest / properties / failure_policy / description
        Added value: +"stop (default) stops scheduling queued cases after a failure while admitted work may finish; continue attempts remaining cases. Neither policy automatically retries failures."
      • addedInput schema / $defs / BatchRequest / properties / geometry_file / description
        Added value: +"Existing nonempty .vsp3 model to snapshot for all cases; source is preserved and hashed for resume checks. Tilde and relative paths resolve on the server."
      • addedInput schema / $defs / BatchRequest / properties / max_parallel_jobs / description
        Added value: +"Maximum concurrent case workers in this batch, 1-16 (default 1). Effective concurrency is also limited by CPU budgets and each case's ncpu."
      • addedInput schema / $defs / BatchRequest / properties / output_dir / description
        Added value: +"Parent for a new unique persistent batch directory; omitted/null uses openvsp_runs beside the resolved source. Existing batches are not overwritten."
      • addedInput schema / $defs / ParameterEdit / properties / parm_id / description
        Added value: +"Native parameter ID obtained from openvsp.query for the target model; not a display name."
      • addedInput schema / $defs / ParameterEdit / properties / value / description
        Added value: +"Requested finite value in the native units of that parameter, without conversion. Native limits and post-Update readback must accept the value."
      • addedInput schema / $defs / VSPAeroSettings / properties / alpha / description
        Added value: +"Angle of attack in degrees, passed to VSPAERO AlphaStart/AlphaEnd for one condition."
      • addedInput schema / $defs / VSPAeroSettings / properties / beta / description
        Added value: +"Sideslip angle in degrees, passed to VSPAERO BetaStart/BetaEnd for one condition."
      • addedInput schema / $defs / VSPAeroSettings / properties / bref / description
        Added value: +"Reference span in model length units; passed unchanged as bref. Supply a model-specific value; the default is 1."
      • addedInput schema / $defs / VSPAeroSettings / properties / cref / description
        Added value: +"Reference chord in model length units; passed unchanged as cref. Also identifies the chord basis of reynolds."
      • addedInput schema / $defs / VSPAeroSettings / properties / fixed_wake / description
        Added value: +"Use the official FixedWakeFlag; true requires WakeIters=0 in the generated solver file. Does not certify convergence."
      • addedInput schema / $defs / VSPAeroSettings / properties / forward_gmres_tolerance_factor / description
        Added value: +"Positive factor passed unchanged as ForwardGMRESConvergenceFactor, at most 1e12 (default 1); not an absolute residual tolerance."
      • addedInput schema / $defs / VSPAeroSettings / properties / length_unit / description
        Added value: +"Documentation only: m, ft or unspecified (default). Does not scale geometry or convert any input; all dimensional quantities must already be consistent."
      • addedInput schema / $defs / VSPAeroSettings / properties / mach / description
        Added value: +"Dimensionless Mach number for this steady subsonic case (0 <= Mach < 1). Independent of vinf, rho and reynolds; no atmosphere is derived."
      • addedInput schema / $defs / VSPAeroSettings / properties / ncpu / description
        Added value: +"Requested native CPU threads per solve, 1-255 (default 4). Must fit the server CPU budget and, for batch cases, the batch cpu_budget."
      • addedInput schema / $defs / VSPAeroSettings / properties / reynolds / description
        Added value: +"Dimensionless Reynolds number based on cref, passed as ReCref (not in millions). Independent of Mach, vinf and rho."
      • addedInput schema / $defs / VSPAeroSettings / properties / rho / description
        Added value: +"Freestream mass density in mass/volume units consistent with geometry and vinf (e.g. kg/m^3 in SI). Passed unchanged; no atmosphere or unit conversion."
      • addedInput schema / $defs / VSPAeroSettings / properties / sref / description
        Added value: +"Reference area in squared model length units; passed unchanged as Sref. Supply a model-specific value; the default is 1."
      • addedInput schema / $defs / VSPAeroSettings / properties / thick_geom_set / description
        Added value: +"OpenVSP set index for thick surfaces; -1 disables thick surfaces (default). Selected sets must exist, be nonempty and share no geometry with the thin set."
      • addedInput schema / $defs / VSPAeroSettings / properties / thin_geom_set / description
        Added value: +"OpenVSP set index for thin surfaces; 0 selects all geometry by default, -1 disables thin surfaces. Must differ from the thick set; at least one surface type must be selected."
      • addedInput schema / $defs / VSPAeroSettings / properties / vinf / description
        Added value: +"Freestream speed in length/time units consistent with the model and rho (e.g. m/s in SI). Passed unchanged; not computed from Mach and not converted by length_unit."
      • addedInput schema / $defs / VSPAeroSettings / properties / wake_iterations / description
        Added value: +"Requested WakeNumIter, 3-255 (default 30). When fixed_wake is true, the verified solver file instead has WakeIters=0."
      • addedInput schema / $defs / VSPAeroSettings / properties / wake_nodes / description
        Added value: +"Number of wake nodes passed as NumWakeNodes, 4-1024 (default 32)."
      • addedInput schema / $defs / VSPAeroSettings / properties / xcg / description
        Added value: +"X coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Xcg."
      • addedInput schema / $defs / VSPAeroSettings / properties / ycg / description
        Added value: +"Y coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Ycg."
      • addedInput schema / $defs / VSPAeroSettings / properties / zcg / description
        Added value: +"Z coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Zcg."
      • addedInput schema / properties / request / description
        Added value: +"Shared model, independent cases and batch resource limits."
    • Changedopenvsp.create_model24 fields changed
      • addedInput schema / $defs / CreateModelRequest / properties / case_name / description
        Added value: +"Run-directory prefix and model filename stem (default aircraft), not a filesystem path."
      • addedInput schema / $defs / CreateModelRequest / properties / output_dir / description
        Added value: +"Required parent directory for a new unique persistent run. Tilde expands and relative paths use the server working directory; no input model is needed."
      • addedInput schema / $defs / CreateModelRequest / properties / set_commands / description
        Added value: +"Trusted AngelScript statements appended after template commands, or used to build a custom model. May perform arbitrary I/O with server privileges; defaults to none."
      • addedInput schema / $defs / CreateModelRequest / properties / template / description
        Added value: +"simple_aircraft creates a fuselage, main wing and horizontal/vertical tails; custom starts empty and requires set_commands that add geometry."
      • addedInput schema / $defs / CreateModelRequest / properties / timeout_seconds / description
        Added value: +"Native OpenVSP process timeout in seconds (default 120); preparation, resource admission and validation are outside this timeout."
      • changedInput schema / $defs / VSPCommand / properties / command / description
        Previous value: -"Trusted AngelScript statement; runs with server privileges"New value: +"Trusted AngelScript statement executed with server-process privileges. May perform arbitrary file or external I/O; private-copy/source-preservation guarantees do not constrain the statement itself."
      • addedInput schema / properties / request / description
        Added value: +"New model template and output settings."
      • addedOutput schema / properties / analysis_inputs / description
        Added value: +"Requested analysis settings for solve/preflight, including defaults; empty for other operations. Units follow VSPAeroSettings and no conversion is applied."
      • addedOutput schema / properties / artifacts / description
        Added value: +"Mapping of run-relative artifact names to absolute file paths; files remain after the call."
      • addedOutput schema / properties / coefficients / description
        Added value: +"Native polar column names and unscaled numeric values for a verified solve; empty otherwise. Includes condition columns as well as dimensionless aerodynamic coefficients; AoA/Beta are degrees and Re/1e6 is Reynolds in millions."
      • addedOutput schema / properties / effective_settings / description
        Added value: +"Verified solver-file values and observed CPU-thread information for a solve; empty before solving. Separate from requested analysis_inputs."
      • addedOutput schema / properties / geometry_path / description
        Added value: +"Absolute path to the validated model saved in the run directory, including for source-replacing edits."
      • addedOutput schema / properties / log_path / description
        Added value: +"Absolute path to the retained OpenVSP process log."
      • addedOutput schema / properties / manifest_path / description
        Added value: +"Absolute path to this operation's manifest.json; pass as manifest_file to openvsp.read_results."
      • addedOutput schema / properties / numerical_quality / description
        Added value: +"Observed iteration-history diagnostics for a solve; convergence is not_assessed and mesh study not_performed. Empty for non-solver operations."
      • addedOutput schema / properties / operation / description
        Added value: +"Executed operation: create, modify, preview, preflight or run_vspaero; reflects the enforced operation rather than the legacy input flag."
      • addedOutput schema / properties / parameter_values / description
        Added value: +"Final native readback values keyed by edited parameter ID; native units, empty when no parameters were edited."
      • addedOutput schema / properties / preflight / description
        Added value: +"Selected thick/thin geometry IDs and requested settings when preflight ran; empty otherwise. Does not certify mesh quality."
      • addedOutput schema / properties / result_path / description
        Added value: +"Absolute path to the solver .adb result; null for operations without a VSPAERO solve."
      • addedOutput schema / properties / run_directory / description
        Added value: +"Absolute path to the unique persistent directory containing this operation's artifacts."
      • addedOutput schema / properties / script_path / description
        Added value: +"Absolute path to the retained AngelScript automation script."
      • addedOutput schema / properties / timings / description
        Added value: +"Measured operation phase durations in seconds; available phase keys depend on execution."
      • addedOutput schema / properties / versions / description
        Added value: +"Package version, MCP SDK version and package SHA-256, with observed native versions when available. Package identity changes on source/metadata updates."
      • addedOutput schema / properties / warnings / description
        Added value: +"Reference/unit/atmospheric consistency warnings from existing checks; no automatic corrections."
    • Changedopenvsp.inspect5 fields changed
      • changedInput schema / $defs / OpenVSPGeometryRequest / properties / geometry_file / description
        Previous value: -"Path to the .vsp3 file"New value: +"Path to an existing .vsp3 file, read as XML without native processes. Tilde expands; relative paths use the server working directory."
      • addedInput schema / properties / request / description
        Added value: +"Model file to inspect as XML."
      • addedOutput schema / properties / geom_ids / description
        Added value: +"Component IDs found in Vehicle/Geom XML entries, in file order."
      • addedOutput schema / properties / info_log / description
        Added value: +"Newline-separated component summaries in ID:name:type form; no solver log."
      • addedOutput schema / properties / wing_names / description
        Added value: +"Names of components whose XML type is Wing; empty when none exist."
    • Changedopenvsp.modify49 fields changed
      • addedInput schema / $defs / OpenVSPRequest / properties / analysis / description
        Added value: +"One complete flight/solver settings object. Defaults do not come from the model; used by preflight and run_vspaero, ignored by modify/preview."
      • addedInput schema / $defs / OpenVSPRequest / properties / case_name / description
        Added value: +"Run-directory prefix and artifact filename stem, not a path. Defaults to case; use output_dir to choose the parent directory."
      • changedInput schema / $defs / OpenVSPRequest / properties / geometry_file / description
        Previous value: -"Existing .vsp3 input; run_vspaero leaves it unchanged"New value: +"Existing .vsp3 path; tilde expands and relative paths use the server working directory. modify replaces this source after validation; preview, preflight and run_vspaero use private copies."
      • changedInput schema / $defs / OpenVSPRequest / properties / output_dir / description
        Previous value: -"Parent directory for unique, persistent runs"New value: +"Parent for a unique persistent run directory. Omitted/null uses openvsp_runs beside the resolved source; tilde and relative paths resolve on the server. Existing run directories are not reused."
      • addedInput schema / $defs / OpenVSPRequest / properties / parameter_edits / description
        Added value: +"Parameter ID/value edits applied after set_commands, before one Update; defaults to none. Limits and final values are verified; obtain IDs with openvsp.query."
      • addedInput schema / $defs / OpenVSPRequest / properties / run_vspaero / description
        Added value: +"Legacy shared-request selector (default true). MCP modify/preview/preflight/run_vspaero force their named operation regardless of this value; it selects solve versus modify only when execute_openvsp has no explicit operation."
      • addedInput schema / $defs / OpenVSPRequest / properties / set_commands / description
        Added value: +"Ordered trusted AngelScript statements applied to the snapshot before parameter_edits and Update. Defaults to none; statements may perform their own I/O with server privileges."
      • addedInput schema / $defs / OpenVSPRequest / properties / timeout_seconds / description
        Added value: +"Native OpenVSP process timeout in seconds (default 600), including an invoked solver. Preparation, CPU admission and validation are outside this per-call native timeout."
      • addedInput schema / $defs / ParameterEdit / properties / parm_id / description
        Added value: +"Native parameter ID obtained from openvsp.query for the target model; not a display name."
      • addedInput schema / $defs / ParameterEdit / properties / value / description
        Added value: +"Requested finite value in the native units of that parameter, without conversion. Native limits and post-Update readback must accept the value."
      • addedInput schema / $defs / VSPAeroSettings / properties / alpha / description
        Added value: +"Angle of attack in degrees, passed to VSPAERO AlphaStart/AlphaEnd for one condition."
      • addedInput schema / $defs / VSPAeroSettings / properties / beta / description
        Added value: +"Sideslip angle in degrees, passed to VSPAERO BetaStart/BetaEnd for one condition."
      • addedInput schema / $defs / VSPAeroSettings / properties / bref / description
        Added value: +"Reference span in model length units; passed unchanged as bref. Supply a model-specific value; the default is 1."
      • addedInput schema / $defs / VSPAeroSettings / properties / cref / description
        Added value: +"Reference chord in model length units; passed unchanged as cref. Also identifies the chord basis of reynolds."
      • addedInput schema / $defs / VSPAeroSettings / properties / fixed_wake / description
        Added value: +"Use the official FixedWakeFlag; true requires WakeIters=0 in the generated solver file. Does not certify convergence."
      • addedInput schema / $defs / VSPAeroSettings / properties / forward_gmres_tolerance_factor / description
        Added value: +"Positive factor passed unchanged as ForwardGMRESConvergenceFactor, at most 1e12 (default 1); not an absolute residual tolerance."
      • addedInput schema / $defs / VSPAeroSettings / properties / length_unit / description
        Added value: +"Documentation only: m, ft or unspecified (default). Does not scale geometry or convert any input; all dimensional quantities must already be consistent."
      • addedInput schema / $defs / VSPAeroSettings / properties / mach / description
        Added value: +"Dimensionless Mach number for this steady subsonic case (0 <= Mach < 1). Independent of vinf, rho and reynolds; no atmosphere is derived."
      • addedInput schema / $defs / VSPAeroSettings / properties / ncpu / description
        Added value: +"Requested native CPU threads per solve, 1-255 (default 4). Must fit the server CPU budget and, for batch cases, the batch cpu_budget."
      • addedInput schema / $defs / VSPAeroSettings / properties / reynolds / description
        Added value: +"Dimensionless Reynolds number based on cref, passed as ReCref (not in millions). Independent of Mach, vinf and rho."
      • addedInput schema / $defs / VSPAeroSettings / properties / rho / description
        Added value: +"Freestream mass density in mass/volume units consistent with geometry and vinf (e.g. kg/m^3 in SI). Passed unchanged; no atmosphere or unit conversion."
      • addedInput schema / $defs / VSPAeroSettings / properties / sref / description
        Added value: +"Reference area in squared model length units; passed unchanged as Sref. Supply a model-specific value; the default is 1."
      • addedInput schema / $defs / VSPAeroSettings / properties / thick_geom_set / description
        Added value: +"OpenVSP set index for thick surfaces; -1 disables thick surfaces (default). Selected sets must exist, be nonempty and share no geometry with the thin set."
      • addedInput schema / $defs / VSPAeroSettings / properties / thin_geom_set / description
        Added value: +"OpenVSP set index for thin surfaces; 0 selects all geometry by default, -1 disables thin surfaces. Must differ from the thick set; at least one surface type must be selected."
      • addedInput schema / $defs / VSPAeroSettings / properties / vinf / description
        Added value: +"Freestream speed in length/time units consistent with the model and rho (e.g. m/s in SI). Passed unchanged; not computed from Mach and not converted by length_unit."
      • addedInput schema / $defs / VSPAeroSettings / properties / wake_iterations / description
        Added value: +"Requested WakeNumIter, 3-255 (default 30). When fixed_wake is true, the verified solver file instead has WakeIters=0."
      • addedInput schema / $defs / VSPAeroSettings / properties / wake_nodes / description
        Added value: +"Number of wake nodes passed as NumWakeNodes, 4-1024 (default 32)."
      • addedInput schema / $defs / VSPAeroSettings / properties / xcg / description
        Added value: +"X coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Xcg."
      • addedInput schema / $defs / VSPAeroSettings / properties / ycg / description
        Added value: +"Y coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Ycg."
      • addedInput schema / $defs / VSPAeroSettings / properties / zcg / description
        Added value: +"Z coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Zcg."
      • changedInput schema / $defs / VSPCommand / properties / command / description
        Previous value: -"Trusted AngelScript statement; runs with server privileges"New value: +"Trusted AngelScript statement executed with server-process privileges. May perform arbitrary file or external I/O; private-copy/source-preservation guarantees do not constrain the statement itself."
      • addedInput schema / properties / request / description
        Added value: +"Source and edits; this tool always modifies without solving."
      • addedOutput schema / properties / analysis_inputs / description
        Added value: +"Requested analysis settings for solve/preflight, including defaults; empty for other operations. Units follow VSPAeroSettings and no conversion is applied."
      • addedOutput schema / properties / artifacts / description
        Added value: +"Mapping of run-relative artifact names to absolute file paths; files remain after the call."
      • addedOutput schema / properties / coefficients / description
        Added value: +"Native polar column names and unscaled numeric values for a verified solve; empty otherwise. Includes condition columns as well as dimensionless aerodynamic coefficients; AoA/Beta are degrees and Re/1e6 is Reynolds in millions."
      • addedOutput schema / properties / effective_settings / description
        Added value: +"Verified solver-file values and observed CPU-thread information for a solve; empty before solving. Separate from requested analysis_inputs."
      • addedOutput schema / properties / geometry_path / description
        Added value: +"Absolute path to the validated model saved in the run directory, including for source-replacing edits."
      • addedOutput schema / properties / log_path / description
        Added value: +"Absolute path to the retained OpenVSP process log."
      • addedOutput schema / properties / manifest_path / description
        Added value: +"Absolute path to this operation's manifest.json; pass as manifest_file to openvsp.read_results."
      • addedOutput schema / properties / numerical_quality / description
        Added value: +"Observed iteration-history diagnostics for a solve; convergence is not_assessed and mesh study not_performed. Empty for non-solver operations."
      • addedOutput schema / properties / operation / description
        Added value: +"Executed operation: create, modify, preview, preflight or run_vspaero; reflects the enforced operation rather than the legacy input flag."
      • addedOutput schema / properties / parameter_values / description
        Added value: +"Final native readback values keyed by edited parameter ID; native units, empty when no parameters were edited."
      • addedOutput schema / properties / preflight / description
        Added value: +"Selected thick/thin geometry IDs and requested settings when preflight ran; empty otherwise. Does not certify mesh quality."
      • addedOutput schema / properties / result_path / description
        Added value: +"Absolute path to the solver .adb result; null for operations without a VSPAERO solve."
      • addedOutput schema / properties / run_directory / description
        Added value: +"Absolute path to the unique persistent directory containing this operation's artifacts."
      • addedOutput schema / properties / script_path / description
        Added value: +"Absolute path to the retained AngelScript automation script."
      • addedOutput schema / properties / timings / description
        Added value: +"Measured operation phase durations in seconds; available phase keys depend on execution."
      • addedOutput schema / properties / versions / description
        Added value: +"Package version, MCP SDK version and package SHA-256, with observed native versions when available. Package identity changes on source/metadata updates."
      • addedOutput schema / properties / warnings / description
        Added value: +"Reference/unit/atmospheric consistency warnings from existing checks; no automatic corrections."
    • Changedopenvsp.preflight49 fields changed
      • addedInput schema / $defs / OpenVSPRequest / properties / analysis / description
        Added value: +"One complete flight/solver settings object. Defaults do not come from the model; used by preflight and run_vspaero, ignored by modify/preview."
      • addedInput schema / $defs / OpenVSPRequest / properties / case_name / description
        Added value: +"Run-directory prefix and artifact filename stem, not a path. Defaults to case; use output_dir to choose the parent directory."
      • changedInput schema / $defs / OpenVSPRequest / properties / geometry_file / description
        Previous value: -"Existing .vsp3 input; run_vspaero leaves it unchanged"New value: +"Existing .vsp3 path; tilde expands and relative paths use the server working directory. modify replaces this source after validation; preview, preflight and run_vspaero use private copies."
      • changedInput schema / $defs / OpenVSPRequest / properties / output_dir / description
        Previous value: -"Parent directory for unique, persistent runs"New value: +"Parent for a unique persistent run directory. Omitted/null uses openvsp_runs beside the resolved source; tilde and relative paths resolve on the server. Existing run directories are not reused."
      • addedInput schema / $defs / OpenVSPRequest / properties / parameter_edits / description
        Added value: +"Parameter ID/value edits applied after set_commands, before one Update; defaults to none. Limits and final values are verified; obtain IDs with openvsp.query."
      • addedInput schema / $defs / OpenVSPRequest / properties / run_vspaero / description
        Added value: +"Legacy shared-request selector (default true). MCP modify/preview/preflight/run_vspaero force their named operation regardless of this value; it selects solve versus modify only when execute_openvsp has no explicit operation."
      • addedInput schema / $defs / OpenVSPRequest / properties / set_commands / description
        Added value: +"Ordered trusted AngelScript statements applied to the snapshot before parameter_edits and Update. Defaults to none; statements may perform their own I/O with server privileges."
      • addedInput schema / $defs / OpenVSPRequest / properties / timeout_seconds / description
        Added value: +"Native OpenVSP process timeout in seconds (default 600), including an invoked solver. Preparation, CPU admission and validation are outside this per-call native timeout."
      • addedInput schema / $defs / ParameterEdit / properties / parm_id / description
        Added value: +"Native parameter ID obtained from openvsp.query for the target model; not a display name."
      • addedInput schema / $defs / ParameterEdit / properties / value / description
        Added value: +"Requested finite value in the native units of that parameter, without conversion. Native limits and post-Update readback must accept the value."
      • addedInput schema / $defs / VSPAeroSettings / properties / alpha / description
        Added value: +"Angle of attack in degrees, passed to VSPAERO AlphaStart/AlphaEnd for one condition."
      • addedInput schema / $defs / VSPAeroSettings / properties / beta / description
        Added value: +"Sideslip angle in degrees, passed to VSPAERO BetaStart/BetaEnd for one condition."
      • addedInput schema / $defs / VSPAeroSettings / properties / bref / description
        Added value: +"Reference span in model length units; passed unchanged as bref. Supply a model-specific value; the default is 1."
      • addedInput schema / $defs / VSPAeroSettings / properties / cref / description
        Added value: +"Reference chord in model length units; passed unchanged as cref. Also identifies the chord basis of reynolds."
      • addedInput schema / $defs / VSPAeroSettings / properties / fixed_wake / description
        Added value: +"Use the official FixedWakeFlag; true requires WakeIters=0 in the generated solver file. Does not certify convergence."
      • addedInput schema / $defs / VSPAeroSettings / properties / forward_gmres_tolerance_factor / description
        Added value: +"Positive factor passed unchanged as ForwardGMRESConvergenceFactor, at most 1e12 (default 1); not an absolute residual tolerance."
      • addedInput schema / $defs / VSPAeroSettings / properties / length_unit / description
        Added value: +"Documentation only: m, ft or unspecified (default). Does not scale geometry or convert any input; all dimensional quantities must already be consistent."
      • addedInput schema / $defs / VSPAeroSettings / properties / mach / description
        Added value: +"Dimensionless Mach number for this steady subsonic case (0 <= Mach < 1). Independent of vinf, rho and reynolds; no atmosphere is derived."
      • addedInput schema / $defs / VSPAeroSettings / properties / ncpu / description
        Added value: +"Requested native CPU threads per solve, 1-255 (default 4). Must fit the server CPU budget and, for batch cases, the batch cpu_budget."
      • addedInput schema / $defs / VSPAeroSettings / properties / reynolds / description
        Added value: +"Dimensionless Reynolds number based on cref, passed as ReCref (not in millions). Independent of Mach, vinf and rho."
      • addedInput schema / $defs / VSPAeroSettings / properties / rho / description
        Added value: +"Freestream mass density in mass/volume units consistent with geometry and vinf (e.g. kg/m^3 in SI). Passed unchanged; no atmosphere or unit conversion."
      • addedInput schema / $defs / VSPAeroSettings / properties / sref / description
        Added value: +"Reference area in squared model length units; passed unchanged as Sref. Supply a model-specific value; the default is 1."
      • addedInput schema / $defs / VSPAeroSettings / properties / thick_geom_set / description
        Added value: +"OpenVSP set index for thick surfaces; -1 disables thick surfaces (default). Selected sets must exist, be nonempty and share no geometry with the thin set."
      • addedInput schema / $defs / VSPAeroSettings / properties / thin_geom_set / description
        Added value: +"OpenVSP set index for thin surfaces; 0 selects all geometry by default, -1 disables thin surfaces. Must differ from the thick set; at least one surface type must be selected."
      • addedInput schema / $defs / VSPAeroSettings / properties / vinf / description
        Added value: +"Freestream speed in length/time units consistent with the model and rho (e.g. m/s in SI). Passed unchanged; not computed from Mach and not converted by length_unit."
      • addedInput schema / $defs / VSPAeroSettings / properties / wake_iterations / description
        Added value: +"Requested WakeNumIter, 3-255 (default 30). When fixed_wake is true, the verified solver file instead has WakeIters=0."
      • addedInput schema / $defs / VSPAeroSettings / properties / wake_nodes / description
        Added value: +"Number of wake nodes passed as NumWakeNodes, 4-1024 (default 32)."
      • addedInput schema / $defs / VSPAeroSettings / properties / xcg / description
        Added value: +"X coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Xcg."
      • addedInput schema / $defs / VSPAeroSettings / properties / ycg / description
        Added value: +"Y coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Ycg."
      • addedInput schema / $defs / VSPAeroSettings / properties / zcg / description
        Added value: +"Z coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Zcg."
      • changedInput schema / $defs / VSPCommand / properties / command / description
        Previous value: -"Trusted AngelScript statement; runs with server privileges"New value: +"Trusted AngelScript statement executed with server-process privileges. May perform arbitrary file or external I/O; private-copy/source-preservation guarantees do not constrain the statement itself."
      • addedInput schema / properties / request / description
        Added value: +"Model and analysis settings to check without solving."
      • addedOutput schema / properties / analysis_inputs / description
        Added value: +"Requested analysis settings for solve/preflight, including defaults; empty for other operations. Units follow VSPAeroSettings and no conversion is applied."
      • addedOutput schema / properties / artifacts / description
        Added value: +"Mapping of run-relative artifact names to absolute file paths; files remain after the call."
      • addedOutput schema / properties / coefficients / description
        Added value: +"Native polar column names and unscaled numeric values for a verified solve; empty otherwise. Includes condition columns as well as dimensionless aerodynamic coefficients; AoA/Beta are degrees and Re/1e6 is Reynolds in millions."
      • addedOutput schema / properties / effective_settings / description
        Added value: +"Verified solver-file values and observed CPU-thread information for a solve; empty before solving. Separate from requested analysis_inputs."
      • addedOutput schema / properties / geometry_path / description
        Added value: +"Absolute path to the validated model saved in the run directory, including for source-replacing edits."
      • addedOutput schema / properties / log_path / description
        Added value: +"Absolute path to the retained OpenVSP process log."
      • addedOutput schema / properties / manifest_path / description
        Added value: +"Absolute path to this operation's manifest.json; pass as manifest_file to openvsp.read_results."
      • addedOutput schema / properties / numerical_quality / description
        Added value: +"Observed iteration-history diagnostics for a solve; convergence is not_assessed and mesh study not_performed. Empty for non-solver operations."
      • addedOutput schema / properties / operation / description
        Added value: +"Executed operation: create, modify, preview, preflight or run_vspaero; reflects the enforced operation rather than the legacy input flag."
      • addedOutput schema / properties / parameter_values / description
        Added value: +"Final native readback values keyed by edited parameter ID; native units, empty when no parameters were edited."
      • addedOutput schema / properties / preflight / description
        Added value: +"Selected thick/thin geometry IDs and requested settings when preflight ran; empty otherwise. Does not certify mesh quality."
      • addedOutput schema / properties / result_path / description
        Added value: +"Absolute path to the solver .adb result; null for operations without a VSPAERO solve."
      • addedOutput schema / properties / run_directory / description
        Added value: +"Absolute path to the unique persistent directory containing this operation's artifacts."
      • addedOutput schema / properties / script_path / description
        Added value: +"Absolute path to the retained AngelScript automation script."
      • addedOutput schema / properties / timings / description
        Added value: +"Measured operation phase durations in seconds; available phase keys depend on execution."
      • addedOutput schema / properties / versions / description
        Added value: +"Package version, MCP SDK version and package SHA-256, with observed native versions when available. Package identity changes on source/metadata updates."
      • addedOutput schema / properties / warnings / description
        Added value: +"Reference/unit/atmospheric consistency warnings from existing checks; no automatic corrections."
    • Changedopenvsp.preview49 fields changed
      • addedInput schema / $defs / OpenVSPRequest / properties / analysis / description
        Added value: +"One complete flight/solver settings object. Defaults do not come from the model; used by preflight and run_vspaero, ignored by modify/preview."
      • addedInput schema / $defs / OpenVSPRequest / properties / case_name / description
        Added value: +"Run-directory prefix and artifact filename stem, not a path. Defaults to case; use output_dir to choose the parent directory."
      • changedInput schema / $defs / OpenVSPRequest / properties / geometry_file / description
        Previous value: -"Existing .vsp3 input; run_vspaero leaves it unchanged"New value: +"Existing .vsp3 path; tilde expands and relative paths use the server working directory. modify replaces this source after validation; preview, preflight and run_vspaero use private copies."
      • changedInput schema / $defs / OpenVSPRequest / properties / output_dir / description
        Previous value: -"Parent directory for unique, persistent runs"New value: +"Parent for a unique persistent run directory. Omitted/null uses openvsp_runs beside the resolved source; tilde and relative paths resolve on the server. Existing run directories are not reused."
      • addedInput schema / $defs / OpenVSPRequest / properties / parameter_edits / description
        Added value: +"Parameter ID/value edits applied after set_commands, before one Update; defaults to none. Limits and final values are verified; obtain IDs with openvsp.query."
      • addedInput schema / $defs / OpenVSPRequest / properties / run_vspaero / description
        Added value: +"Legacy shared-request selector (default true). MCP modify/preview/preflight/run_vspaero force their named operation regardless of this value; it selects solve versus modify only when execute_openvsp has no explicit operation."
      • addedInput schema / $defs / OpenVSPRequest / properties / set_commands / description
        Added value: +"Ordered trusted AngelScript statements applied to the snapshot before parameter_edits and Update. Defaults to none; statements may perform their own I/O with server privileges."
      • addedInput schema / $defs / OpenVSPRequest / properties / timeout_seconds / description
        Added value: +"Native OpenVSP process timeout in seconds (default 600), including an invoked solver. Preparation, CPU admission and validation are outside this per-call native timeout."
      • addedInput schema / $defs / ParameterEdit / properties / parm_id / description
        Added value: +"Native parameter ID obtained from openvsp.query for the target model; not a display name."
      • addedInput schema / $defs / ParameterEdit / properties / value / description
        Added value: +"Requested finite value in the native units of that parameter, without conversion. Native limits and post-Update readback must accept the value."
      • addedInput schema / $defs / VSPAeroSettings / properties / alpha / description
        Added value: +"Angle of attack in degrees, passed to VSPAERO AlphaStart/AlphaEnd for one condition."
      • addedInput schema / $defs / VSPAeroSettings / properties / beta / description
        Added value: +"Sideslip angle in degrees, passed to VSPAERO BetaStart/BetaEnd for one condition."
      • addedInput schema / $defs / VSPAeroSettings / properties / bref / description
        Added value: +"Reference span in model length units; passed unchanged as bref. Supply a model-specific value; the default is 1."
      • addedInput schema / $defs / VSPAeroSettings / properties / cref / description
        Added value: +"Reference chord in model length units; passed unchanged as cref. Also identifies the chord basis of reynolds."
      • addedInput schema / $defs / VSPAeroSettings / properties / fixed_wake / description
        Added value: +"Use the official FixedWakeFlag; true requires WakeIters=0 in the generated solver file. Does not certify convergence."
      • addedInput schema / $defs / VSPAeroSettings / properties / forward_gmres_tolerance_factor / description
        Added value: +"Positive factor passed unchanged as ForwardGMRESConvergenceFactor, at most 1e12 (default 1); not an absolute residual tolerance."
      • addedInput schema / $defs / VSPAeroSettings / properties / length_unit / description
        Added value: +"Documentation only: m, ft or unspecified (default). Does not scale geometry or convert any input; all dimensional quantities must already be consistent."
      • addedInput schema / $defs / VSPAeroSettings / properties / mach / description
        Added value: +"Dimensionless Mach number for this steady subsonic case (0 <= Mach < 1). Independent of vinf, rho and reynolds; no atmosphere is derived."
      • addedInput schema / $defs / VSPAeroSettings / properties / ncpu / description
        Added value: +"Requested native CPU threads per solve, 1-255 (default 4). Must fit the server CPU budget and, for batch cases, the batch cpu_budget."
      • addedInput schema / $defs / VSPAeroSettings / properties / reynolds / description
        Added value: +"Dimensionless Reynolds number based on cref, passed as ReCref (not in millions). Independent of Mach, vinf and rho."
      • addedInput schema / $defs / VSPAeroSettings / properties / rho / description
        Added value: +"Freestream mass density in mass/volume units consistent with geometry and vinf (e.g. kg/m^3 in SI). Passed unchanged; no atmosphere or unit conversion."
      • addedInput schema / $defs / VSPAeroSettings / properties / sref / description
        Added value: +"Reference area in squared model length units; passed unchanged as Sref. Supply a model-specific value; the default is 1."
      • addedInput schema / $defs / VSPAeroSettings / properties / thick_geom_set / description
        Added value: +"OpenVSP set index for thick surfaces; -1 disables thick surfaces (default). Selected sets must exist, be nonempty and share no geometry with the thin set."
      • addedInput schema / $defs / VSPAeroSettings / properties / thin_geom_set / description
        Added value: +"OpenVSP set index for thin surfaces; 0 selects all geometry by default, -1 disables thin surfaces. Must differ from the thick set; at least one surface type must be selected."
      • addedInput schema / $defs / VSPAeroSettings / properties / vinf / description
        Added value: +"Freestream speed in length/time units consistent with the model and rho (e.g. m/s in SI). Passed unchanged; not computed from Mach and not converted by length_unit."
      • addedInput schema / $defs / VSPAeroSettings / properties / wake_iterations / description
        Added value: +"Requested WakeNumIter, 3-255 (default 30). When fixed_wake is true, the verified solver file instead has WakeIters=0."
      • addedInput schema / $defs / VSPAeroSettings / properties / wake_nodes / description
        Added value: +"Number of wake nodes passed as NumWakeNodes, 4-1024 (default 32)."
      • addedInput schema / $defs / VSPAeroSettings / properties / xcg / description
        Added value: +"X coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Xcg."
      • addedInput schema / $defs / VSPAeroSettings / properties / ycg / description
        Added value: +"Y coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Ycg."
      • addedInput schema / $defs / VSPAeroSettings / properties / zcg / description
        Added value: +"Z coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Zcg."
      • changedInput schema / $defs / VSPCommand / properties / command / description
        Previous value: -"Trusted AngelScript statement; runs with server privileges"New value: +"Trusted AngelScript statement executed with server-process privileges. May perform arbitrary file or external I/O; private-copy/source-preservation guarantees do not constrain the statement itself."
      • addedInput schema / properties / request / description
        Added value: +"Model, optional private-copy edits and export location."
      • addedOutput schema / properties / analysis_inputs / description
        Added value: +"Requested analysis settings for solve/preflight, including defaults; empty for other operations. Units follow VSPAeroSettings and no conversion is applied."
      • addedOutput schema / properties / artifacts / description
        Added value: +"Mapping of run-relative artifact names to absolute file paths; files remain after the call."
      • addedOutput schema / properties / coefficients / description
        Added value: +"Native polar column names and unscaled numeric values for a verified solve; empty otherwise. Includes condition columns as well as dimensionless aerodynamic coefficients; AoA/Beta are degrees and Re/1e6 is Reynolds in millions."
      • addedOutput schema / properties / effective_settings / description
        Added value: +"Verified solver-file values and observed CPU-thread information for a solve; empty before solving. Separate from requested analysis_inputs."
      • addedOutput schema / properties / geometry_path / description
        Added value: +"Absolute path to the validated model saved in the run directory, including for source-replacing edits."
      • addedOutput schema / properties / log_path / description
        Added value: +"Absolute path to the retained OpenVSP process log."
      • addedOutput schema / properties / manifest_path / description
        Added value: +"Absolute path to this operation's manifest.json; pass as manifest_file to openvsp.read_results."
      • addedOutput schema / properties / numerical_quality / description
        Added value: +"Observed iteration-history diagnostics for a solve; convergence is not_assessed and mesh study not_performed. Empty for non-solver operations."
      • addedOutput schema / properties / operation / description
        Added value: +"Executed operation: create, modify, preview, preflight or run_vspaero; reflects the enforced operation rather than the legacy input flag."
      • addedOutput schema / properties / parameter_values / description
        Added value: +"Final native readback values keyed by edited parameter ID; native units, empty when no parameters were edited."
      • addedOutput schema / properties / preflight / description
        Added value: +"Selected thick/thin geometry IDs and requested settings when preflight ran; empty otherwise. Does not certify mesh quality."
      • addedOutput schema / properties / result_path / description
        Added value: +"Absolute path to the solver .adb result; null for operations without a VSPAERO solve."
      • addedOutput schema / properties / run_directory / description
        Added value: +"Absolute path to the unique persistent directory containing this operation's artifacts."
      • addedOutput schema / properties / script_path / description
        Added value: +"Absolute path to the retained AngelScript automation script."
      • addedOutput schema / properties / timings / description
        Added value: +"Measured operation phase durations in seconds; available phase keys depend on execution."
      • addedOutput schema / properties / versions / description
        Added value: +"Package version, MCP SDK version and package SHA-256, with observed native versions when available. Package identity changes on source/metadata updates."
      • addedOutput schema / properties / warnings / description
        Added value: +"Reference/unit/atmospheric consistency warnings from existing checks; no automatic corrections."
    • Changedopenvsp.query9 fields changed
      • addedInput schema / $defs / QueryRequest / properties / analysis_name / description
        Added value: +"Installed analysis name queried only for kind=analysis (default VSPAEROSweep). Enumerated analyses are not necessarily executable through this wrapper."
      • addedInput schema / $defs / QueryRequest / properties / geom_id / description
        Added value: +"For kind=parameters, optionally select one geometry component when parm_ids is empty. Ignored when explicit parm_ids are supplied."
      • addedInput schema / $defs / QueryRequest / properties / geometry_file / description
        Added value: +"Optional existing .vsp3 path copied to a temporary model; required for parameters. Without a model, analysis defaults come from an empty model; tilde and relative paths resolve on the server."
      • addedInput schema / $defs / QueryRequest / properties / kind / description
        Added value: +"capabilities lists installed analyses; analysis reads native input types/defaults; parameters reads paginated parameter IDs/values/limits and requires geometry_file."
      • addedInput schema / $defs / QueryRequest / properties / limit / description
        Added value: +"Maximum parameter entries returned, 1-200 (default 100); used only for kind=parameters."
      • addedInput schema / $defs / QueryRequest / properties / offset / description
        Added value: +"Zero-based offset into parameter results (default 0); used only for kind=parameters."
      • addedInput schema / $defs / QueryRequest / properties / parm_ids / description
        Added value: +"Explicit parameter IDs for kind=parameters; defaults to enumeration from geom_id or all components. Takes precedence over geom_id; offset/limit also apply to this list."
      • addedInput schema / $defs / QueryRequest / properties / timeout_seconds / description
        Added value: +"Native query-process timeout in seconds (default 30). Model-free capability cache hits do not launch OpenVSP; temporary files are removed after the query."
      • addedInput schema / properties / request / description
        Added value: +"Native query kind, optional model and parameter pagination."
    • Changedopenvsp.read_results5 fields changed
      • addedInput schema / $defs / ResultRequest / properties / coefficient_names / description
        Added value: +"Exact saved polar column names to return; empty returns all saved entries. Unknown names fail; no coefficient conversion or recomputation."
      • addedInput schema / $defs / ResultRequest / properties / log / description
        Added value: +"none omits logs (default); openvsp reads openvsp.log; solver reads solver.log beside the manifest. Missing requested logs fail."
      • addedInput schema / $defs / ResultRequest / properties / log_tail_lines / description
        Added value: +"Maximum trailing log lines, 1-200 (default 40). Only the final 64 KiB is read, so fewer complete lines may be returned; unused when log=none."
      • addedInput schema / $defs / ResultRequest / properties / manifest_file / description
        Added value: +"Path to a saved operation manifest.json, as returned in manifest_path; not sweep.json or batch.json. Tilde and relative paths resolve on the server; maximum read size is 4 MiB."
      • addedInput schema / properties / request / description
        Added value: +"Saved operation manifest, coefficient selection and log bounds."
    • Changedopenvsp.run_vspaero49 fields changed
      • addedInput schema / $defs / OpenVSPRequest / properties / analysis / description
        Added value: +"One complete flight/solver settings object. Defaults do not come from the model; used by preflight and run_vspaero, ignored by modify/preview."
      • addedInput schema / $defs / OpenVSPRequest / properties / case_name / description
        Added value: +"Run-directory prefix and artifact filename stem, not a path. Defaults to case; use output_dir to choose the parent directory."
      • changedInput schema / $defs / OpenVSPRequest / properties / geometry_file / description
        Previous value: -"Existing .vsp3 input; run_vspaero leaves it unchanged"New value: +"Existing .vsp3 path; tilde expands and relative paths use the server working directory. modify replaces this source after validation; preview, preflight and run_vspaero use private copies."
      • changedInput schema / $defs / OpenVSPRequest / properties / output_dir / description
        Previous value: -"Parent directory for unique, persistent runs"New value: +"Parent for a unique persistent run directory. Omitted/null uses openvsp_runs beside the resolved source; tilde and relative paths resolve on the server. Existing run directories are not reused."
      • addedInput schema / $defs / OpenVSPRequest / properties / parameter_edits / description
        Added value: +"Parameter ID/value edits applied after set_commands, before one Update; defaults to none. Limits and final values are verified; obtain IDs with openvsp.query."
      • addedInput schema / $defs / OpenVSPRequest / properties / run_vspaero / description
        Added value: +"Legacy shared-request selector (default true). MCP modify/preview/preflight/run_vspaero force their named operation regardless of this value; it selects solve versus modify only when execute_openvsp has no explicit operation."
      • addedInput schema / $defs / OpenVSPRequest / properties / set_commands / description
        Added value: +"Ordered trusted AngelScript statements applied to the snapshot before parameter_edits and Update. Defaults to none; statements may perform their own I/O with server privileges."
      • addedInput schema / $defs / OpenVSPRequest / properties / timeout_seconds / description
        Added value: +"Native OpenVSP process timeout in seconds (default 600), including an invoked solver. Preparation, CPU admission and validation are outside this per-call native timeout."
      • addedInput schema / $defs / ParameterEdit / properties / parm_id / description
        Added value: +"Native parameter ID obtained from openvsp.query for the target model; not a display name."
      • addedInput schema / $defs / ParameterEdit / properties / value / description
        Added value: +"Requested finite value in the native units of that parameter, without conversion. Native limits and post-Update readback must accept the value."
      • addedInput schema / $defs / VSPAeroSettings / properties / alpha / description
        Added value: +"Angle of attack in degrees, passed to VSPAERO AlphaStart/AlphaEnd for one condition."
      • addedInput schema / $defs / VSPAeroSettings / properties / beta / description
        Added value: +"Sideslip angle in degrees, passed to VSPAERO BetaStart/BetaEnd for one condition."
      • addedInput schema / $defs / VSPAeroSettings / properties / bref / description
        Added value: +"Reference span in model length units; passed unchanged as bref. Supply a model-specific value; the default is 1."
      • addedInput schema / $defs / VSPAeroSettings / properties / cref / description
        Added value: +"Reference chord in model length units; passed unchanged as cref. Also identifies the chord basis of reynolds."
      • addedInput schema / $defs / VSPAeroSettings / properties / fixed_wake / description
        Added value: +"Use the official FixedWakeFlag; true requires WakeIters=0 in the generated solver file. Does not certify convergence."
      • addedInput schema / $defs / VSPAeroSettings / properties / forward_gmres_tolerance_factor / description
        Added value: +"Positive factor passed unchanged as ForwardGMRESConvergenceFactor, at most 1e12 (default 1); not an absolute residual tolerance."
      • addedInput schema / $defs / VSPAeroSettings / properties / length_unit / description
        Added value: +"Documentation only: m, ft or unspecified (default). Does not scale geometry or convert any input; all dimensional quantities must already be consistent."
      • addedInput schema / $defs / VSPAeroSettings / properties / mach / description
        Added value: +"Dimensionless Mach number for this steady subsonic case (0 <= Mach < 1). Independent of vinf, rho and reynolds; no atmosphere is derived."
      • addedInput schema / $defs / VSPAeroSettings / properties / ncpu / description
        Added value: +"Requested native CPU threads per solve, 1-255 (default 4). Must fit the server CPU budget and, for batch cases, the batch cpu_budget."
      • addedInput schema / $defs / VSPAeroSettings / properties / reynolds / description
        Added value: +"Dimensionless Reynolds number based on cref, passed as ReCref (not in millions). Independent of Mach, vinf and rho."
      • addedInput schema / $defs / VSPAeroSettings / properties / rho / description
        Added value: +"Freestream mass density in mass/volume units consistent with geometry and vinf (e.g. kg/m^3 in SI). Passed unchanged; no atmosphere or unit conversion."
      • addedInput schema / $defs / VSPAeroSettings / properties / sref / description
        Added value: +"Reference area in squared model length units; passed unchanged as Sref. Supply a model-specific value; the default is 1."
      • addedInput schema / $defs / VSPAeroSettings / properties / thick_geom_set / description
        Added value: +"OpenVSP set index for thick surfaces; -1 disables thick surfaces (default). Selected sets must exist, be nonempty and share no geometry with the thin set."
      • addedInput schema / $defs / VSPAeroSettings / properties / thin_geom_set / description
        Added value: +"OpenVSP set index for thin surfaces; 0 selects all geometry by default, -1 disables thin surfaces. Must differ from the thick set; at least one surface type must be selected."
      • addedInput schema / $defs / VSPAeroSettings / properties / vinf / description
        Added value: +"Freestream speed in length/time units consistent with the model and rho (e.g. m/s in SI). Passed unchanged; not computed from Mach and not converted by length_unit."
      • addedInput schema / $defs / VSPAeroSettings / properties / wake_iterations / description
        Added value: +"Requested WakeNumIter, 3-255 (default 30). When fixed_wake is true, the verified solver file instead has WakeIters=0."
      • addedInput schema / $defs / VSPAeroSettings / properties / wake_nodes / description
        Added value: +"Number of wake nodes passed as NumWakeNodes, 4-1024 (default 32)."
      • addedInput schema / $defs / VSPAeroSettings / properties / xcg / description
        Added value: +"X coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Xcg."
      • addedInput schema / $defs / VSPAeroSettings / properties / ycg / description
        Added value: +"Y coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Ycg."
      • addedInput schema / $defs / VSPAeroSettings / properties / zcg / description
        Added value: +"Z coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Zcg."
      • changedInput schema / $defs / VSPCommand / properties / command / description
        Previous value: -"Trusted AngelScript statement; runs with server privileges"New value: +"Trusted AngelScript statement executed with server-process privileges. May perform arbitrary file or external I/O; private-copy/source-preservation guarantees do not constrain the statement itself."
      • addedInput schema / properties / request / description
        Added value: +"Model, optional private-copy edits and one flight condition."
      • addedOutput schema / properties / analysis_inputs / description
        Added value: +"Requested analysis settings for solve/preflight, including defaults; empty for other operations. Units follow VSPAeroSettings and no conversion is applied."
      • addedOutput schema / properties / artifacts / description
        Added value: +"Mapping of run-relative artifact names to absolute file paths; files remain after the call."
      • addedOutput schema / properties / coefficients / description
        Added value: +"Native polar column names and unscaled numeric values for a verified solve; empty otherwise. Includes condition columns as well as dimensionless aerodynamic coefficients; AoA/Beta are degrees and Re/1e6 is Reynolds in millions."
      • addedOutput schema / properties / effective_settings / description
        Added value: +"Verified solver-file values and observed CPU-thread information for a solve; empty before solving. Separate from requested analysis_inputs."
      • addedOutput schema / properties / geometry_path / description
        Added value: +"Absolute path to the validated model saved in the run directory, including for source-replacing edits."
      • addedOutput schema / properties / log_path / description
        Added value: +"Absolute path to the retained OpenVSP process log."
      • addedOutput schema / properties / manifest_path / description
        Added value: +"Absolute path to this operation's manifest.json; pass as manifest_file to openvsp.read_results."
      • addedOutput schema / properties / numerical_quality / description
        Added value: +"Observed iteration-history diagnostics for a solve; convergence is not_assessed and mesh study not_performed. Empty for non-solver operations."
      • addedOutput schema / properties / operation / description
        Added value: +"Executed operation: create, modify, preview, preflight or run_vspaero; reflects the enforced operation rather than the legacy input flag."
      • addedOutput schema / properties / parameter_values / description
        Added value: +"Final native readback values keyed by edited parameter ID; native units, empty when no parameters were edited."
      • addedOutput schema / properties / preflight / description
        Added value: +"Selected thick/thin geometry IDs and requested settings when preflight ran; empty otherwise. Does not certify mesh quality."
      • addedOutput schema / properties / result_path / description
        Added value: +"Absolute path to the solver .adb result; null for operations without a VSPAERO solve."
      • addedOutput schema / properties / run_directory / description
        Added value: +"Absolute path to the unique persistent directory containing this operation's artifacts."
      • addedOutput schema / properties / script_path / description
        Added value: +"Absolute path to the retained AngelScript automation script."
      • addedOutput schema / properties / timings / description
        Added value: +"Measured operation phase durations in seconds; available phase keys depend on execution."
      • addedOutput schema / properties / versions / description
        Added value: +"Package version, MCP SDK version and package SHA-256, with observed native versions when available. Package identity changes on source/metadata updates."
      • addedOutput schema / properties / warnings / description
        Added value: +"Reference/unit/atmospheric consistency warnings from existing checks; no automatic corrections."
    • Changedopenvsp.set_parameters24 fields changed
      • addedInput schema / $defs / ParameterEdit / properties / parm_id / description
        Added value: +"Native parameter ID obtained from openvsp.query for the target model; not a display name."
      • addedInput schema / $defs / ParameterEdit / properties / value / description
        Added value: +"Requested finite value in the native units of that parameter, without conversion. Native limits and post-Update readback must accept the value."
      • addedInput schema / $defs / ParameterEditRequest / properties / edits / description
        Added value: +"1-200 unique parameter ID/value edits applied in one load/update. Obtain IDs with openvsp.query; duplicate IDs are rejected."
      • addedInput schema / $defs / ParameterEditRequest / properties / geometry_file / description
        Added value: +"Existing .vsp3 source to replace only after validating all edits and checking for concurrent source changes. Tilde and relative paths resolve on the server."
      • addedInput schema / $defs / ParameterEditRequest / properties / output_dir / description
        Added value: +"Parent for a unique persistent validation/artifact run; omitted/null uses openvsp_runs beside the source. The validated output also replaces geometry_file."
      • addedInput schema / $defs / ParameterEditRequest / properties / timeout_seconds / description
        Added value: +"Native OpenVSP process timeout in seconds (default 120); excludes preparation, CPU admission and validation."
      • addedInput schema / properties / request / description
        Added value: +"Source model and typed edits that replace it after validation."
      • addedOutput schema / properties / analysis_inputs / description
        Added value: +"Requested analysis settings for solve/preflight, including defaults; empty for other operations. Units follow VSPAeroSettings and no conversion is applied."
      • addedOutput schema / properties / artifacts / description
        Added value: +"Mapping of run-relative artifact names to absolute file paths; files remain after the call."
      • addedOutput schema / properties / coefficients / description
        Added value: +"Native polar column names and unscaled numeric values for a verified solve; empty otherwise. Includes condition columns as well as dimensionless aerodynamic coefficients; AoA/Beta are degrees and Re/1e6 is Reynolds in millions."
      • addedOutput schema / properties / effective_settings / description
        Added value: +"Verified solver-file values and observed CPU-thread information for a solve; empty before solving. Separate from requested analysis_inputs."
      • addedOutput schema / properties / geometry_path / description
        Added value: +"Absolute path to the validated model saved in the run directory, including for source-replacing edits."
      • addedOutput schema / properties / log_path / description
        Added value: +"Absolute path to the retained OpenVSP process log."
      • addedOutput schema / properties / manifest_path / description
        Added value: +"Absolute path to this operation's manifest.json; pass as manifest_file to openvsp.read_results."
      • addedOutput schema / properties / numerical_quality / description
        Added value: +"Observed iteration-history diagnostics for a solve; convergence is not_assessed and mesh study not_performed. Empty for non-solver operations."
      • addedOutput schema / properties / operation / description
        Added value: +"Executed operation: create, modify, preview, preflight or run_vspaero; reflects the enforced operation rather than the legacy input flag."
      • addedOutput schema / properties / parameter_values / description
        Added value: +"Final native readback values keyed by edited parameter ID; native units, empty when no parameters were edited."
      • addedOutput schema / properties / preflight / description
        Added value: +"Selected thick/thin geometry IDs and requested settings when preflight ran; empty otherwise. Does not certify mesh quality."
      • addedOutput schema / properties / result_path / description
        Added value: +"Absolute path to the solver .adb result; null for operations without a VSPAERO solve."
      • addedOutput schema / properties / run_directory / description
        Added value: +"Absolute path to the unique persistent directory containing this operation's artifacts."
      • addedOutput schema / properties / script_path / description
        Added value: +"Absolute path to the retained AngelScript automation script."
      • addedOutput schema / properties / timings / description
        Added value: +"Measured operation phase durations in seconds; available phase keys depend on execution."
      • addedOutput schema / properties / versions / description
        Added value: +"Package version, MCP SDK version and package SHA-256, with observed native versions when available. Package identity changes on source/metadata updates."
      • addedOutput schema / properties / warnings / description
        Added value: +"Reference/unit/atmospheric consistency warnings from existing checks; no automatic corrections."
    • Changedopenvsp.sweep28 fields changed
      • addedInput schema / $defs / SweepRequest / properties / case_name / description
        Added value: +"Sweep-directory prefix (default sweep); each condition uses point_000, point_001, etc. as its artifact stem."
      • addedInput schema / $defs / SweepRequest / properties / conditions / description
        Added value: +"1-25 explicit, complete steady analysis settings, executed sequentially. Omitted fields take VSPAeroSettings defaults independently; settings never carry over from previous entries."
      • addedInput schema / $defs / SweepRequest / properties / geometry_file / description
        Added value: +"Existing .vsp3 path snapshotted once for all conditions; the wrapper preserves the source. Tilde expands and relative paths use the server working directory."
      • addedInput schema / $defs / SweepRequest / properties / output_dir / description
        Added value: +"Parent for a unique persistent sweep directory; omitted/null uses openvsp_runs beside the resolved source. Tilde and relative paths resolve on the server."
      • addedInput schema / $defs / SweepRequest / properties / set_commands / description
        Added value: +"Same ordered trusted AngelScript statements applied independently to each condition's private model. Defaults to none; statements may perform their own I/O."
      • addedInput schema / $defs / SweepRequest / properties / timeout_seconds / description
        Added value: +"Total sweep budget in seconds (default 600), shared across conditions and resource waits; completed results remain if the budget is exhausted."
      • addedInput schema / $defs / VSPAeroSettings / properties / alpha / description
        Added value: +"Angle of attack in degrees, passed to VSPAERO AlphaStart/AlphaEnd for one condition."
      • addedInput schema / $defs / VSPAeroSettings / properties / beta / description
        Added value: +"Sideslip angle in degrees, passed to VSPAERO BetaStart/BetaEnd for one condition."
      • addedInput schema / $defs / VSPAeroSettings / properties / bref / description
        Added value: +"Reference span in model length units; passed unchanged as bref. Supply a model-specific value; the default is 1."
      • addedInput schema / $defs / VSPAeroSettings / properties / cref / description
        Added value: +"Reference chord in model length units; passed unchanged as cref. Also identifies the chord basis of reynolds."
      • addedInput schema / $defs / VSPAeroSettings / properties / fixed_wake / description
        Added value: +"Use the official FixedWakeFlag; true requires WakeIters=0 in the generated solver file. Does not certify convergence."
      • addedInput schema / $defs / VSPAeroSettings / properties / forward_gmres_tolerance_factor / description
        Added value: +"Positive factor passed unchanged as ForwardGMRESConvergenceFactor, at most 1e12 (default 1); not an absolute residual tolerance."
      • addedInput schema / $defs / VSPAeroSettings / properties / length_unit / description
        Added value: +"Documentation only: m, ft or unspecified (default). Does not scale geometry or convert any input; all dimensional quantities must already be consistent."
      • addedInput schema / $defs / VSPAeroSettings / properties / mach / description
        Added value: +"Dimensionless Mach number for this steady subsonic case (0 <= Mach < 1). Independent of vinf, rho and reynolds; no atmosphere is derived."
      • addedInput schema / $defs / VSPAeroSettings / properties / ncpu / description
        Added value: +"Requested native CPU threads per solve, 1-255 (default 4). Must fit the server CPU budget and, for batch cases, the batch cpu_budget."
      • addedInput schema / $defs / VSPAeroSettings / properties / reynolds / description
        Added value: +"Dimensionless Reynolds number based on cref, passed as ReCref (not in millions). Independent of Mach, vinf and rho."
      • addedInput schema / $defs / VSPAeroSettings / properties / rho / description
        Added value: +"Freestream mass density in mass/volume units consistent with geometry and vinf (e.g. kg/m^3 in SI). Passed unchanged; no atmosphere or unit conversion."
      • addedInput schema / $defs / VSPAeroSettings / properties / sref / description
        Added value: +"Reference area in squared model length units; passed unchanged as Sref. Supply a model-specific value; the default is 1."
      • addedInput schema / $defs / VSPAeroSettings / properties / thick_geom_set / description
        Added value: +"OpenVSP set index for thick surfaces; -1 disables thick surfaces (default). Selected sets must exist, be nonempty and share no geometry with the thin set."
      • addedInput schema / $defs / VSPAeroSettings / properties / thin_geom_set / description
        Added value: +"OpenVSP set index for thin surfaces; 0 selects all geometry by default, -1 disables thin surfaces. Must differ from the thick set; at least one surface type must be selected."
      • addedInput schema / $defs / VSPAeroSettings / properties / vinf / description
        Added value: +"Freestream speed in length/time units consistent with the model and rho (e.g. m/s in SI). Passed unchanged; not computed from Mach and not converted by length_unit."
      • addedInput schema / $defs / VSPAeroSettings / properties / wake_iterations / description
        Added value: +"Requested WakeNumIter, 3-255 (default 30). When fixed_wake is true, the verified solver file instead has WakeIters=0."
      • addedInput schema / $defs / VSPAeroSettings / properties / wake_nodes / description
        Added value: +"Number of wake nodes passed as NumWakeNodes, 4-1024 (default 32)."
      • addedInput schema / $defs / VSPAeroSettings / properties / xcg / description
        Added value: +"X coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Xcg."
      • addedInput schema / $defs / VSPAeroSettings / properties / ycg / description
        Added value: +"Y coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Ycg."
      • addedInput schema / $defs / VSPAeroSettings / properties / zcg / description
        Added value: +"Z coordinate of the VSPAERO moment reference in model length units and model coordinates; passed unchanged as Zcg."
      • changedInput schema / $defs / VSPCommand / properties / command / description
        Previous value: -"Trusted AngelScript statement; runs with server privileges"New value: +"Trusted AngelScript statement executed with server-process privileges. May perform arbitrary file or external I/O; private-copy/source-preservation guarantees do not constrain the statement itself."
      • addedInput schema / properties / request / description
        Added value: +"Shared source, explicit conditions and total sweep budget."
  2. 16 tool updatesv0.6.0
    • First observedopenvsp.batch_cancel
    • First observedopenvsp.batch_export
    • First observedopenvsp.batch_resume
    • First observedopenvsp.batch_status
    • First observedopenvsp.batch_submit
    • First observedopenvsp.create_model
    • First observedopenvsp.health
    • First observedopenvsp.inspect
    • First observedopenvsp.modify
    • First observedopenvsp.preflight
    • First observedopenvsp.preview
    • First observedopenvsp.query
    • First observedopenvsp.read_results
    • First observedopenvsp.run_vspaero
    • First observedopenvsp.set_parameters
    • First observedopenvsp.sweep

TDQS

A4.4/5.0

Scored across 16 tools

Disambiguation5/5

Each tool targets a distinct operation: installation checks, model create/inspect/modify/preview, parameter editing, single/sweep/batch VSPAERO runs, and batch lifecycle control. The descriptions actively disambiguate adjacent tools with explicit cross-references, so there is no realistic overlap.

Naming Consistency4/5

The openvsp. prefix and consistent snake_case style make the set feel uniform, and most tool names use clear action words. However, the pattern is not strictly verb_noun: standalone verbs like health, query, and sweep, plus resource-prefixed names like batch_status and batch_export, break strict consistency.

Tool Count4/5

At 16 tools the server is at the upper edge of a typical MCP surface, but the count maps cleanly onto model setup, analysis execution, results reading, and batch control. Each tool has a distinct role, so the size feels reasonable rather than bloated.

Completeness4/5

The server covers the full create/edit/inspect/run/read lifecycle, including single, sweep, and batch execution modes plus preflight and health checks. The main gap is the lack of explicit deletion or cleanup tools for models and batches, which is a minor omission given the strong emphasis on retaining artifacts.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides MCP tools for CPACS-oriented TiGL workflows, enabling lifecycle management, inspection, export, and parameter manipulation of aircraft geometry models without native geometry runtimes.
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that provides pre-flight validation and post-processing tools for OpenMC Monte Carlo transport simulations, catching common authoring mistakes before jobs hit the HPC queue.
    MIT