Skip to main content
Glama

Labour estimates

wenmar_labor
Read-only

Wenmar's own estimates of the hours a repair job takes: written by people who do the work, measured from repair orders, or worked out by AI from the repair steps; never copied from a labour guide. An estimate, not a quote. Rust, seized fasteners and added equipment change the time. action=jobs lists the jobs an estimate can be about; with job it gives one job: what it includes, what it excludes, and its typical hours by class of vehicle. action=vehicle takes id, a vehicle id such as "2018_ford_f-150" (an id that ends with an engine asks for that engine), and optionally job: for each job it gives hours (low, typical, high), basis (expert, observed or ai: an AI estimate worked out from the repair steps, not checked by a person; say so, with its confidence_pct) and scope, which says what the figure is for: engine, generation, model or class. notes says what an AI estimate assumed (the engine, both sides or one): repeat it when it matters; page_url is a page to give a person; method_url is the page that says how estimates are made. A class figure is typical for vehicles of that class and was not worked out on this vehicle: say so. A vehicle answer's missing lists the jobs with no Wenmar estimate for that vehicle: say there is none, never make one up. action=vin takes vin (and optionally year, job) and does the same for the vehicle the VIN decodes to. action=coverage takes job and lists the vehicles that have their own figure for it (make, model, years), for 'which vehicles do you have times for'; pass next_cursor back as cursor for more. No answer holds a price: multiply by the shop's own rate. Credit the data as attribution says: Labour estimates by Wenmar Pro, CC BY 4.0.

Input Schema

NameRequiredDescriptionDefault
idNoA vehicle id, such as 2018_ford_f-150.
jobNoA job id, such as brake-pads-front.
vinNoA 17-character VIN. Spaces and dashes are ignored.
yearNoFor vin: the model year to use.
limitNoFor coverage: at most this many vehicles, up to 500. The default is 100.
actionYes
cursorNoFor coverage: `next_cursor` from the page before, unchanged.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "jobs",
      -  "vehicle",
      -  "vin"
      -]New value: +[
      +  "jobs",
      +  "vehicle",
      +  "vin",
      +  "coverage"
      +]
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "For coverage: `next_cursor` from the page before, unchanged.",
      +  "type": "string"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "For coverage: at most this many vehicles, up to 500. The default is 100.",
      +  "type": "integer"
      +}
  2. Added

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint; the description adds substantial context beyond them: estimates are never copied from a labour guide, AI-derived figures are unchecked by a person and must be labelled with confidence_pct, class-level figures are not vehicle-specific and must be flagged as such, and missing jobs must be reported as absent rather than invented. It also discloses the CC BY 4.0 attribution obligation and the no-price rule, both caller-facing constraints.

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?

The first sentence front-loads what the resource is, and nearly every clause carries operational content (provenance, missing-data handling, attribution). It is a single dense block with a couple of repeated cautions ("say so" twice) that would read better as per-action structure, but there is little pure 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?

For a seven-parameter, four-action tool with no output schema, the description names the returned fields an agent must interpret (`hours` low/typical/high, `basis`, `scope`, `notes`, `page_url`, `method_url`, `missing`, `next_cursor`) and states how to report each. Nothing needed to call it correctly or to relay results accurately is missing.

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?

With 86% schema coverage the baseline is 3, and the description goes further: it explains that a vehicle id ending in an engine requests that engine, that `vin` optionally pairs with `year`/`job`, and that `next_cursor` must be passed back unchanged as `cursor`. Only `limit` is left entirely to 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?

States a specific resource with provenance up front: "Wenmar's own estimates of the hours a repair job takes", and enumerates the four actions so an agent knows the tool's surface. The one gap is that a sibling named wenmar_vin exists and this tool also offers action=vin, yet nothing distinguishes the two.

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?

Each action is scoped with a use case ("action=jobs lists the jobs an estimate can be about", "action=coverage ... for 'which vehicles do you have times for'"), which is strong routing guidance. It never states when to prefer the wenmar_vin sibling over action=vin, nor when wenmar_vehicles should be used instead of action=vehicle, so exclusions are incomplete.

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