Skip to main content
Glama

contractors.fyi

Check a solar quote

check_solar_quote
Read-onlyIdempotent

Where a solar quote's price falls among what homeowners in the same city paid for a system of the same size (Berkeley Lab records, homeowner-owned systems, no battery, before incentives): a percentile, the local typical price and range, and the quote's price per watt.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kwYesSystem size in kW (DC)
cityYes
priceYesQuoted cash price in dollars, before incentives

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare a safe read-only, idempotent operation, and the description adds meaningful context beyond that: the exact data source (Berkeley Lab records), scope (homeowner-owned, no battery, before incentives), and the shape of the result. No contradiction with the annotations is present.

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 entire behavior is conveyed in one dense sentence with no filler, and the most important comparison logic is front-loaded. The parenthetical list of filters is efficient, though the phrasing is slightly awkward.

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?

With no output schema and only moderate complexity, the description carries the full burden of explaining return content, and it does: percentile, local typical price/range, and price per watt. Combined with the schema's bounds and enum, an agent has enough to select and invoke the tool correctly.

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?

Two parameters already have schema descriptions (kw, price), and the description adds the key relational meaning: city defines the comparison group, kw defines the size match, and price is the quote being evaluated. This is useful context beyond the schema, though it does not spell out per-parameter syntax.

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 precisely defines what the tool computes: where a given quote price falls relative to same-city, same-size homeowner purchases, and enumerates the outputs (percentile, typical price/range, price per watt). This makes it clearly distinct from sibling tools like solar_estimate or project_cost, which estimate costs rather than benchmark a specific quote.

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 (benchmarking a quote against local Berkeley Lab market data) is implied by the description, and the filters are clear. However, it does not explicitly state when to use this tool instead of alternatives such as solar_estimate or project_cost, nor does it mention exclusions beyond the embedded data filters.

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