Skip to main content
Glama
rhyne1012

OpenVSP MCP (Maintained Fork)

openvsp.set_parameters

Destructive

Apply typed parameter edits from openvsp.query in one OpenVSP load/update. Validates limits, verifies readback, and replaces the source file only after all edits pass.

Instructions

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.

Input Schema

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

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
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 and omitted undefined ratios; 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.run_vspaero
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 finite unscaled values for a verified solve; empty otherwise. Undefined ratios are omitted with reasons in numerical_quality.unavailable_coefficients. Includes condition columns; 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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.8.0
    • changedOutput schema / properties / coefficients / description
      Previous 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."New value: +"Native polar column names and finite unscaled values for a verified solve; empty otherwise. Undefined ratios are omitted with reasons in numerical_quality.unavailable_coefficients. Includes condition columns; AoA/Beta are degrees and Re/1e6 is Reynolds in millions."
    • changedOutput schema / properties / warnings / description
      Previous value: -"Reference/unit/atmospheric consistency warnings from existing checks; no automatic corrections."New value: +"Reference/unit/atmospheric consistency warnings and omitted undefined ratios; no automatic corrections."
  2. Changed24 schema fields changedv0.7.0
    • 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."
  3. First observedv0.6.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations declare destructiveHint=true and idempotentHint=false, and the description substantiates that: it verifies limits and final readback, retains run artifacts, replaces the source only after validation, and rejects concurrent source changes. This adds real operational context (atomicity, concurrency guard, validation gate) beyond what the annotations convey.

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 with zero filler; the core action is front-loaded and the alternative/constraint (openvsp.modify, no VSPAERO solve) is placed after the primary claim. No repetition of schema or annotation 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?

An output schema exists, so return values need not be explained, and the description covers the remaining gaps: destructive replacement semantics, validation and readback, concurrency rejection, artifact retention, and the trusted-alternative path. An agent has everything required to call it correctly.

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?

Schema coverage is 100%, so the baseline is 3. The description still adds semantic value beyond the schema by emphasizing that all edits are typed, ID-based, applied in a single load/update, and that IDs come from openvsp.query rather than display names, which clarifies batch atomicity and identifier provenance.

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 verb and resource (apply typed parameter ID/value edits) with explicit scope ('in one OpenVSP load/update') and provenance ('obtained from openvsp.query'). It also names the sibling it is not (openvsp.modify) and rules out VSPAERO solving, so an agent can distinguish it without opening a schema.

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?

Gives explicit routing rules: use openvsp.modify when trusted AngelScript commands are needed, and obtain IDs via openvsp.query. 'No VSPAERO solve' cleanly states a when-not condition. Nothing is left to inference about which sibling to pick.

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