Skip to main content
Glama
rhyne1012

OpenVSP MCP (Maintained Fork)

openvsp.batch_submit

Submit 1-1000 independent steady VSPAERO cases with per-case parameter edits, run them in background with bounded CPU and parallel jobs, and get initial status immediately without waiting for completion.

Instructions

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.

Input Schema

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

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed33 schema fields changedv0.7.0
    • 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."
  2. First observedv0.6.0

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.