Skip to main content
Glama
ghiaog123

Contaminated Land MCP

by ghiaog123

Screen Lab Results

screen_lab_results
Read-only

Screen every lab result for a site against a chosen criteria set, listing each exceedance with its criterion value and cited document, page and table, plus any unscreened results.

Instructions

Compare every laboratory result for one site against published assessment criteria and list each exceedance with the criterion value and the document, page and table it comes from. The comparison is done by code, not by a language model, so the same input always gives the same numbers. Results below the limit of reporting are not exceedances. Anything that could not be compared (no criterion, unit that cannot be converted) is listed under not_screened with the reason, never silently skipped. criteria_set must be one of the ids returned by the list_criteria_sets tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
site_idYes
criteria_setYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
notesYes
site_idYes
exceedancesYes
criteria_setYes
not_screenedYes
samples_screenedYes
analytes_screenedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

With readOnlyHint=true already covering safety, the description adds substantial non-obvious behavior: the comparison is code-driven and deterministic, results below the limit of reporting are not exceedances, and anything non-comparable is surfaced under not_screened with a reason rather than silently dropped. That non-silent-skip guarantee is exactly the kind of disclosure annotations cannot provide.

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?

Sentences are dense but each carries a distinct guarantee (determinism, LOR handling, not_screened, criteria_set source) and the core action is front-loaded. Slightly longer than strictly needed, but little waste.

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 formatting need not be explained, yet the description still characterizes the result categories (exceedances, not_screened) and cites the sibling tool for the criteria id. For a two-parameter read tool, an agent has everything needed to call it correctly.

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 carries the burden for two params. It meaningfully constrains criteria_set (must be an id from list_criteria_sets) but says nothing about what site_id denotes or its expected form. Partial compensation only, so baseline-adjacent 3.

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 states a precise verb+resource+scope: compare every lab result for one site against published assessment criteria and list each exceedance. It also defines the output unit (criterion value plus document, page and table) and distinguishes itself from sibling tools by pointing at list_criteria_sets for valid criteria ids.

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?

It gives a clear precondition (criteria_set must be one of the ids returned by list_criteria_sets), which routes the agent correctly. It does not state when-not to use this tool or contrast outcomes with search_guidance or draft_section, so it falls short of explicit alternatives/exclusions.

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