Skip to main content
Glama

LeaveSheet: Davis-Bacon wage rates and WH-347 certified payroll

Wage rates of a wage determination

get_wage_rates
Read-onlyIdempotent

Use when the user needs the prevailing base rate and fringe of one or more classifications and has the text of the WD (pasted from the contract or the sam.gov page). Reads the pasted text and returns each matching classification row (craft, classification, zone, base and fringe $/h with the rule they come from, notes, parse confidence) plus the verbatim excerpt and the sam.gov page to check it. rowId values feed check_crew_pay and draft_conformance_request when the same text is passed. Example: wdText="General Decision Number: TX20260291 05/18/2026 …", search="welder".

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum rows returned (1-100).
searchNoText to match in craft, classification or zone, e.g. "laborer".
wdTextYesFull text of the general wage determination, pasted by the user from the contract or from the sam.gov page, from "General Decision Number" to "END OF GENERAL DECISION", line breaks kept (max 400000 characters). Pass the same text again in later calls so rowId values stay valid.

Output Schema

NameRequiredDescriptionDefault
cardYes
rowsYes
viewYes
headerYes
sourceYes
matchedYes
totalRowsYes
disclaimerYes
unparsedLinesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, but the description adds genuinely useful behavior: it returns parse confidence, a verbatim excerpt and the sam.gov page for verification, and warns that rowId stability depends on re-passing identical text. It does not discuss size/rate limits or how partial parses are surfaced beyond the confidence field.

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-loaded with the trigger condition and prerequisite, then return shape, then reuse rule, then example — a logical order with no filler sentences. The parenthetical asides ('craft, classification, zone, base and fringe $/h with the rule they come from') make the single paragraph dense but not wasteful.

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 3-parameter parsing tool with a full output schema, the description covers the prerequisite input format, the search semantics, the return contents, the verification affordance, and the cross-tool contract for rowId. An agent has everything needed to invoke it correctly and to know what to do with the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description adds value with a concrete invocation example (wdText="General Decision Number: TX20260291 …", search="welder") that shows the expected string format for both the required paste and the search term. That is real added meaning over the schema text.

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?

Specific verb and resource: reads pasted wage determination text and returns matching classification rows with base/fringe rates. It clearly distinguishes itself from find_wage_determination by requiring the user to already have the WD text, and names the downstream consumers (check_crew_pay, draft_conformance_request) of the rowId it produces.

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?

Explicit trigger condition is given — 'when the user needs the prevailing base rate and fringe of one or more classifications and has the text of the WD' — which implicitly excludes the case where the text is unavailable (find_wage_determination territory). It also states the reuse rule (pass the same text again so rowIds stay valid). The alternative lookup tool is never named outright, so it falls short of a full when/when-not/alternatives statement.

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