Skip to main content
Glama

run_flow

Start OPM Flow reservoir simulations in the background and receive a job ID immediately. Handles parallel job queuing, MPI processes, and custom flow arguments.

Instructions

Start an OPM Flow simulation in the background; returns a job id immediately.

extra_args is a JSON array of flow flags, e.g. ["--enable-tuning=true"] — a plain string is also accepted and split shell-style. At most OPM_MCP_MAX_PARALLEL jobs run at once — extra submissions are state="queued" and launch automatically as slots free. By default writes INFOSTEP/INFOITER diagnostics so flow_convergence_report works (convergence_info="none" to skip). mpi_processes=N runs mpirun -np N for distributed solves.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
threadsNo
deck_pathYes
extra_argsNo
output_dirNo
mpi_processesNo
convergence_infoNosteps,iterations

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden, and it does so well: it discloses async execution, immediate job-id return, queueing behavior, default diagnostics writing, and the MPI mode. An agent knows what side effects to expect beyond simply 'run flow.'

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 compact and front-loaded: the essential behavior is in the first sentence, and the following sentences add concrete operational details with examples. No redundant text is present.

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 largely complete for launching a job: it covers async behavior, queue limits, diagnostics, and MPI. It does not mention output_dir or threads behavior, but the output schema likely covers return structure. Minor gaps keep it from a perfect score.

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 0%, so the description must compensate. It does explain extra_args syntax, mpi_processes, and convergence_info meaningfully. However, threads and output_dir are not described beyond their titles, leaving some ambiguity in a zero-coverage 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, 'Start an OPM Flow simulation in the background; returns a job id immediately,' uses a specific verb and resource and clearly separates this from validation, monitoring, and cancellation siblings. The purpose is 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?

The description explains the concurrency model (OPM_MCP_MAX_PARALLEL, queued submissions), when convergence output is useful, and how mpi_processes changes invocation. It does not explicitly tell an agent when not to use this tool versus validate_deck or flow_status, but the context is strong enough to infer the right call.

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