Skip to main content
Glama
paintbrushv

platworks-mcp

by paintbrushv

evaluate_bid

Evaluate contractor bids against internal estimates, flagging inflated, vague, and timeline risks and issuing a verdict of reasonable, concerns, or reject.

Instructions

Evaluate a contractor bid against the internal estimate; flags inflated, vague, and timeline risks.

Line items 30%+ above the internal high estimate flag inflated; unmatched descriptions flag vague; short timelines flag change-order risk. The overall assessment (reasonable / concerns / reject) is the costmodel's deterministic verdict. (The arguments are declared optional so missing-input refusals reach the client as payloads instead of validation crashes.)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bidNo
estimateNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and delivers: it discloses exact thresholds (30%+ above high estimate), matching logic for vagueness, timeline/change-order risk, deterministic verdict categories, and even why arguments are optional. No side effects are implied but 'evaluate' plus this detail is sufficiently transparent.

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

Conciseness5/5

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

The description is about four sentences and is front-loaded with the core purpose, followed by precise criteria, verdict semantics, and a useful optionality note. Every sentence adds information; no filler.

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

Completeness4/5

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

Given no output schema and no annotations, the description explains the verdict values, risk conditions, and missing-input behavior well. It is only slightly incomplete because it does not describe the expected bid/estimate structures or the exact payload shape of the assessment result.

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 schema provides only names/defaults, so the description must add meaning. It clarifies that 'bid' is a contractor bid and 'estimate' is an internal estimate with line items and a high estimate. However, it never specifies the expected object shapes or property names an agent needs to construct valid arguments.

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 verb 'Evaluate' plus resource 'a contractor bid against the internal estimate' states a specific action, and the outcome categories (inflated/vague/timeline risks, reasonable/concerns/reject) make it distinct from sibling tools. No other sibling name is needed to understand what this tool is for.

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

Usage Guidelines3/5

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

The use case is implied clearly: use this when you have a contractor bid and an internal estimate to compare. However, there is no explicit when-not-to-use guidance or mention of alternative tools like renovation_estimate or generate_sow, so an agent must infer the boundary.

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