Skip to main content
Glama

WellState Labs SB 1150 Screening (read-only)

Screen a list of operators

screen_operators
Read-onlyIdempotent

Screens up to 200 Railroad Commission of Texas operator numbers at once and returns one row per requested operator, in request order: inactive wellbores on the IWAR, affected, approaching by 2042-09-01 (compliance-plan horizon), contested, review and shared claims, Commission-published plugging cost on affected wellbores with its rate label, unpriced affected count, on editions that carry the Full Wellbore cross-check the affected claims whose wellbore that file flags as plugged (a cross-check only; it changes no outcome, count or cost), the crossing schedule by bucket (empty buckets left out of the rows), the raw P-5 status code, and a 16 TAC §3.78 blanket-assurance floor computed from inactive wells only (a lower bound, not a bond amount). Operators not in the publication come back as found:false rows. Includes totals over the found rows.

Input Schema

NameRequiredDescriptionDefault
operator_numbersYes1-200 Railroad Commission of Texas operator numbers as strings (e.g. ["276959", "760218"]). Shorter numeric strings are left-padded to 6 digits; duplicates are removed, keeping the first occurrence.

Output Schema

NameRequiredDescriptionDefault
rowsYes
termsYes
totalsYes
boundaryYes
screenedYes
requestedYes
cost_labelYes
count_unitYes
publication_rootYes
duplicates_removedYes
blanket_floor_basisYes
p5_status_code_noteYes
full_wellbore_crosscheck_noteYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / terms
      Added value: +{
      +  "const": "https://mcp.wellstatelabs.com/terms",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "boundary",
      -  "publication_root",
      -  "requested",
      -  "screened",
      -  "duplicates_removed",
      -  "count_unit",
      -  "cost_label",
      -  "full_wellbore_crosscheck_note",
      -  "p5_status_code_note",
      -  "blanket_floor_basis",
      -  "rows",
      -  "totals"
      -]New value: +[
      +  "boundary",
      +  "terms",
      +  "publication_root",
      +  "requested",
      +  "screened",
      +  "duplicates_removed",
      +  "count_unit",
      +  "cost_label",
      +  "full_wellbore_crosscheck_note",
      +  "p5_status_code_note",
      +  "blanket_floor_basis",
      +  "rows",
      +  "totals"
      +]
  2. First observed

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, so the bar is lower, and the description still adds real behavioral context: ordering, found:false rows for unpublished operators, empty buckets omitted, the wellbore cross-check explicitly flagged as cosmetic ('changes no outcome, count or cost'), and the §3.78 floor called out as a lower bound rather than a bond amount. Those caveats are exactly the kind of thing an agent cannot infer from annotations.

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

Conciseness2/5

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

The core purpose is front-loaded, but the body is one enormous run-on enumeration of output fields that runs well past what any agent needs before calling. Much of that enumeration duplicates the output schema and buries the genuinely useful caveats mid-sentence.

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

Completeness3/5

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

An output schema exists, so the long field-by-field enumeration is largely redundant effort; the parts that do carry weight (found:false handling, cross-check is informational only, floor is a lower bound) are present. Missing is any indication of cost, rate limits, or when this batch screen is preferable to the single-operator siblings.

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 is documented in the schema (padding, dedupe, bounds), so baseline 3 applies. The description only restates the 200 cap and does not add format or semantic detail beyond the schema.

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

Purpose4/5

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

Opens with a specific verb and resource: screens up to 200 RRC operator numbers and returns one row per requested operator in request order. That is clearly distinct from siblings like search_operators or get_well, though the description never explicitly contrasts itself with them.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance, and no sibling alternatives named despite eight related tools. The only usage-shaped information is incidental ('up to 200 at once', 'found:false rows'), which tells an agent about batching but not about tool selection.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources