Skip to main content
Glama

lint_control_file

Read-only

Validate a BPP control file against its data after every edit. Fix errors and re-lint until the server reports valid.

Instructions

Validate a control file (bpp-lint --json --check-priors) and check it against its data.

Call after make_control_file and after every change. Loop until server.status is "valid": fix each error (with set_keyword, or by remaking the file with make_control_file and the corrected arguments), then lint again.

Read in the result:

  • server.status: "valid" only if bpp-lint reports no errors AND the temporary server.data_checks found none. Use this, not report.status.

  • report.diagnostics[]: each has code, severity, message, suggestion, suggested_fix. Use explain_diagnostic(code) to explain one to the user.

  • report.prior_check: priors compared with estimates from the data.

  • server.data_checks.issues[] (temporary, until bpp-lint checks these itself): missing data files, nloci larger than the data, sequence tags with no Imap line, Imap species that differ from the tree, phase digit count, speciesdelimitation with the wrong number of arguments. A valid lint does not prove BPP will run: smoke_test next.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ctlYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations give readOnlyHint=true and openWorldHint=false, but the description adds substantial behavioral context beyond that: the loop-until-valid workflow, that server.status (not report.status) is authoritative, that server.data_checks are temporary, and that a clean lint still does not guarantee BPP will run. This is rich disclosure the annotations do not cover.

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?

Front-loads the purpose in the first sentence, then uses bullets for the workflow and return-value semantics. It is somewhat long and detailed, but each section (loop, server.status, diagnostics, data_checks, smoke_test caveat) carries distinct actionable information rather than filler.

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?

There is no output schema, so the description fully documents the return surface: server.status vs report.status, report.diagnostics fields and how to explain them, prior_check, and data_checks.issues including the specific checks performed. An agent has everything needed to call it and interpret results.

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 single ctl parameter has 0% schema description coverage, so the description must carry the load. It implies ctl is the control file to validate, but never states whether it is a path, filename, or inline content, nor the expected format. Marginal value over the bare schema entry.

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 ("Validate a control file") and even names the exact underlying command (bpp-lint --json --check-priors). It is clearly distinguishable from siblings like make_control_file, set_keyword, explain_diagnostic, and smoke_test, which the description explicitly routes to.

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?

Explicit when-to-use ("Call after make_control_file and after every change"), the loop condition, the remediation alternatives (set_keyword, remake with make_control_file), and the next step ("smoke_test next"). Nothing about selection or sequencing is left to inference.

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