Skip to main content
Glama

contractors.fyi

Server Details

US contractors ranked by city permits, permit costs and timelines, solar and generator sizing.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct task: quote evaluation vs solar sizing, contractor ranking by trade vs lookup by name, cost stats vs permit timing, plus coverage and generator sizing. No two tools have meaningfully overlapping purposes, and the descriptions make the boundaries clear.

Naming Consistency3/5

Names are all lowercase snake_case and readable, but they mix verb-led patterns like check_solar_quote and find_contractors with noun-led labels like generator_size and permit_timeline. This is a readable mix but not a consistent naming convention.

Tool Count5/5

At 8 tools, the set is well within the ideal range and each tool addresses a distinct contractor, permit, cost, solar, or generator question. None feel redundant or padding.

Completeness5/5

For a read-only permit-data service, the surface covers the main workflows: discovering coverage, finding/searching contractors, estimating project cost and permit duration, sizing and pricing solar, and sizing generators. There are no dead-end operations or glaring missing functions within the stated domain.

Available Tools

8 tools
check_solar_quoteCheck a solar quoteA
Read-onlyIdempotent
Inspect

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.

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

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.

find_contractorsFind ranked contractorsA
Read-onlyIdempotent
Inspect

Contractors ranked by how many jobs of this kind their city permit record shows. Returns name, license where the state publishes one, job count, typical stated job value, the ZIP codes they work in most, and a profile URL. Ranking is by volume on the public record, not quality or reviews.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity id from list_coverage, e.g. los-angeles, new-york, austin
limitNoHow many to return, up to 25
kind_of_workYesKind of work, e.g. roofing, solar, adu, remodel

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description adds valuable behavioral detail beyond them: it discloses exactly what data is returned ('name, license where the state publishes one, job count...') and explains the ranking meaning ('by volume on the public record, not quality or reviews'). No contradiction with annotations.

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 three sentences with no filler. The first sentence states the core purpose, the second lists the output fields, and the third clarifies the ranking basis. Every sentence earns its place and the most important information is front-loaded.

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?

For a read-only tool with 3 parameters and no output schema, the description is quite complete: it names the return fields and clarifies the ranking criterion. It does not mention response format or how the 'limit' parameter affects the output, but those are sufficiently covered in the schema and the description's field list gives an agent enough to use the tool 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 100%, so the baseline is 3. The description does not add new meaning to the parameters beyond what the schema already documents; it only implicitly references 'this kind' and 'their city permit record,' which are already explained in the parameter descriptions. No extra compensation needed.

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 opens with a specific verb and resource: 'Contractors ranked by how many jobs of this kind their city permit record shows.' It clearly distinguishes this tool from the sibling 'search_contractor_records' by focusing on ranking by permit volume rather than general search, and it lists distinct output fields (name, license, job count, etc.) that define its identity.

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?

The description provides clear context on when to use this tool: when the agent needs a ranked list of contractors by public permit volume. It also gives a specific when-not: 'not quality or reviews.' However, it does not explicitly name sibling alternatives or state conditions for choosing them, so it falls short of a 5.

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

generator_sizeHome generator sizeA
Read-onlyIdempotent
Inspect

The smallest common home standby generator size, with 10% to spare, for the things that must run in an outage: running watts plus the biggest motor's start. Also what generator permits stated as job value, by size, where a city has enough of them. Typical appliance figures; an electrician's load calculation beats them.

ParametersJSON Schema
NameRequiredDescriptionDefault
loadsYesWhat must run in an outage

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark the tool read-only and idempotent, and the description adds behavioral nuance beyond that: it uses typical appliance figures rather than exact loads, applies a 10% spare factor, and counts running watts plus the largest motor's starting wattage. The explicit limitation about electrician load calculations is useful. No contradiction with annotations.

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

Conciseness3/5

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

The description is only two sentences and front-loads the primary sizing purpose. However, the second sentence is structurally tangled: 'what generator permits stated as job value, by size, where a city has enough of them' is hard to parse and does not earn its place as cleanly as the first sentence.

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

Completeness3/5

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

There is no output schema, so the description carries the burden of explaining results; it names generator size and permits but omits units, output format, and how the permit value relates to the loads input. The phrase 'where a city has enough of them' is incomplete given that the only parameter is a loads array, leaving an agent to guess part of the expected response.

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?

The schema already documents the loads array and its enum, so the baseline is 3. The description adds meaning by explaining that these loads represent outage must-runs and that the sizing method combines running watts with the biggest motor's starting watts, which helps an agent reason about appropriate enum selections.

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?

The description identifies the core output: the smallest common home standby generator size with a 10% safety margin for outage-critical loads, and it mentions generator permit values by size. This differentiates it from siblings like permit_timeline and project_cost, though the second clause 'where a city has enough of them' is grammatically vague and weakens precision.

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 establishes a clear context: use this tool to size a standby generator for the appliances that must run during an outage. The closing caveat 'an electrician's load calculation beats them' tells the agent the result is a rough estimate and should not replace a professional calculation, though it does not explicitly name sibling alternatives.

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

list_coverageList cities and kinds of workA
Read-onlyIdempotent
Inspect

Which cities and kinds of work contractors.fyi covers, with the dates each list covers. Call this before the other tools to get valid city and kind_of_work values.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already establish the safe, read-only, idempotent nature of the call. The description adds value by disclosing that the output includes coverage dates and that it serves as the source of valid enumerations for other tools, which is useful behavioral context beyond the annotations.

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?

Two sentences with no filler. The first sentence states the core output and scope; the second sentence provides actionable usage guidance. Everything earns its place.

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 simple, parameterless discovery tool with annotations covering safety, the description fully explains what the agent will get and when to use it. No output schema is present, but the described return content is sufficient for the agent's decision-making.

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?

The input schema has zero parameters, so there are no parameter semantics for the description to clarify. The baseline of 4 applies because no parameter information is needed here.

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 uses a specific verb ('covers'/'list') and identifies the exact resource: cities, kinds of work, and the dates each list covers. It also marks itself as the preliminary discovery tool distinct from the sibling tools that consume these values.

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

Usage Guidelines5/5

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

Explicitly instructs the agent to call this tool before the others to obtain valid city and kind_of_work values. This is clear when-to-use guidance that routes the agent correctly relative to all sibling tools.

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

permit_timelineHow long permits takeA
Read-onlyIdempotent
Inspect

Days from permit application to issue, and from issue to final inspection, from the dates on city permits, with the number of permits and the dates they cover. Final-inspection times count finished jobs only.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity id from list_coverage, e.g. los-angeles, new-york, austin
kind_of_workYesKind of work, e.g. roofing, solar, adu, remodel

TDQS

A3.6/5.0
Behavior4/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description adds meaningful behavioral context: it names the data source ('dates on city permits'), mentions the number of permits and date coverage, and discloses that final-inspection times only count finished jobs. This is useful nuance that annotations do not provide.

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 compact and front-loaded with the core measurement, followed by a single important caveat. Both sentences carry distinct value with no filler, making it easy for an agent to parse quickly.

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?

For a two-parameter, read-only tool with high schema coverage and a descriptive title, the description covers the data source, the computed intervals, sample size, and a key methodological exclusion. Since there is no output schema, slightly more detail about the exact return shape would be useful, but the core calling context is complete.

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 coverage is 100%, and both parameters already have enum values and descriptive text. The description does not add parameter-level detail, but with the schema handling the meaning of city and kind_of_work, a baseline score of 3 is appropriate.

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?

The description clearly specifies the tool's output: days from permit application to issue and from issue to final inspection, plus permit counts and date coverage. It identifies a concrete resource (city permits) and scope, though it lacks an explicit verb like 'calculate' or 'return' and does not explicitly compare itself to sibling tools.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like project_cost or solar_estimate. The description implies its purpose through the title, but it never states conditions, exclusions, or sibling routing, so an agent has to infer the appropriate context.

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

project_costJob value on permitsA
Read-onlyIdempotent
Inspect

What city permits for this kind of work stated as the job value: median and middle half, with the number of permits and their dates. Give a ZIP to get that ZIP's figure where the site publishes one. The value stated on the city permit, not the price paid.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNoFive-digit ZIP code
cityYesCity id from list_coverage, e.g. los-angeles, new-york, austin
kind_of_workYesKind of work, e.g. roofing, solar, adu, remodel

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about ZIP-level availability ('where the site publishes one') and clarifies the data source (city permit value vs price paid). However, it doesn't disclose behavior like missing data handling, date ranges, or response format, which would be valuable for a data lookup tool.

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 compact and front-loaded: it states the core output (median and middle half of job value, permit count, dates) in the first sentence, then clarifies the ZIP behavior and the value definition. Every sentence earns its place, and there is no redundant repetition of schema details.

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?

For a read-only lookup tool with 100% schema coverage and no output schema, the description covers the key aspects: what is returned, how ZIP filtering works, and the definition of the value. It could mention what happens when no data exists for a city/kind_of_work combination, but overall it is sufficiently complete for an agent to invoke 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 100%, so the schema already documents all three parameters. The description adds meaning by explaining that zip is optional and only used where the site publishes a ZIP-level figure, and that kind_of_work refers to the permit's stated work type. This is helpful but not extensive; the schema already carries the parameter definitions.

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 clearly states the tool's purpose: it returns the job value stated on city permits for a given kind of work, with median and middle half statistics, permit count, and dates. It distinguishes itself from siblings by focusing on permit value statistics rather than timelines, contractors, or estimates.

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?

The description explains that a ZIP is needed to get a ZIP-specific figure where the site publishes one, and clarifies that the value is the city permit's stated value, not the price paid. It doesn't explicitly name alternatives or when-not-to-use, but the context is clear enough for an agent to select this tool for permit value queries.

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

search_contractor_recordsSearch contractors by nameA
Read-onlyIdempotent
Inspect

Look a contractor up by business name across every city covered: the city, how many permitted jobs are on its record there, and its profile URL. This searches the permit record; it does not verify a license today.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBusiness name or part of it

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds valuable context: it searches the permit record (not a license verification) and covers 'every city covered', which clarifies scope and limitations beyond what annotations provide.

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 two sentences with zero filler. The main action and scope are front-loaded, and the limitation is stated clearly in the second sentence. Efficient and well-structured.

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?

For a simple single-parameter read-only tool with annotations, the description is nearly complete. It states the returned fields (city, jobs count, profile URL) and the key limitation (no license verification). It does not describe pagination or result count, but these are not critical for such a straightforward search.

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 coverage is 100%, so the single parameter 'name' is fully documented in the schema with description 'Business name or part of it'. The description merely restates this ('by business name') without adding format, syntax, or edge-case details. Baseline of 3 is appropriate given high schema coverage.

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?

The description clearly states the verb 'look up' and the resource 'contractor by business name', and specifies the returned fields (city, permitted jobs count, profile URL). It is specific and unambiguous, though it does not explicitly differentiate from sibling tools like find_contractors, which might perform a similar search.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It only clarifies a limitation ('does not verify a license today'), which is a behavioral note rather than usage routing. No exclusions or alternative tool names are mentioned.

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

solar_estimateSolar size, price and paybackA
Read-onlyIdempotent
Inspect

Size a home solar system from the monthly electric bill (or its kWh, or, with neither, the home and what runs on electricity), plus anything the home plans to add such as electric cars, then give the price range homeowners in that city paid for a system that size (Berkeley Lab records, before any tax credit, no battery), yearly savings and payback. Output per kW, heating and cooling use and the default price per kWh are rough city figures.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYes
usesNoWhat runs on electricity besides lights, fridge and outlets
home_sizeNosmall: under 1,500 sq ft; medium: 1,500 to 3,000; large: over 3,000medium
monthly_kwhNoFrom the bill; replaces the estimate
monthly_billNoMonthly electric bill in dollars
electric_carsNo
miles_per_carNoMiles a year, each car
price_per_kwhNoDollars per kWh from the bill; default is a typical city figure

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds valuable behavioral context: it discloses that output figures are 'rough city figures,' specifies the data source (Berkeley Lab records), and clarifies exclusions ('before any tax credit, no battery'). It also explains the fallback logic for inputs (bill, kWh, or home details). These details go beyond the annotations and help the agent understand approximation and scope.

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 description is a few sentences but packs substantial information without redundancy. It front-loads the core purpose ('Size a home solar system') and then details inputs, outputs, and caveats. Each clause contributes unique information (inputs, add-ons, price source, exclusions, rough figures). It is appropriately concise for a tool with 8 parameters, though it could be slightly more structured with bullet points, but the current flow is logical.

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 the tool's complexity (8 parameters, no output schema), the description is quite complete. It explains what outputs to expect (price range, savings, payback, per kW, heating/cooling use, default price) and clarifies limitations (rough city figures, no battery, pre-tax credit). It also covers the input fallback logic. The only missing element is a detailed description of the return format, but since there is no output schema, the description adequately covers what the agent needs to know to invoke it 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?

Schema description coverage is 75%, so the schema already documents most parameters. The description adds semantic meaning by explaining how parameters interact: the fallback from monthly_bill to monthly_kwh to home_size/uses, and the inclusion of electric_cars as an add-on. This clarifies the relationship between parameters beyond their individual descriptions, adding value over the schema. It does not repeat schema details but explains the decision logic.

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 clearly states the tool's function: size a home solar system from various inputs (bill, kWh, home details) and output price range, savings, payback, and per-kW figures. It specifies the resource (home solar) and the action (sizing and estimating costs), making it distinct from sibling tools like check_solar_quote or project_cost. The verb 'size' and resource 'home solar system' are explicit, and the description covers the full scope of what the tool does.

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 description implies the use case—when you need to estimate solar system size and costs—but it does not explicitly state when to use this tool versus alternatives. It neither names sibling tools nor provides exclusionary conditions (e.g., 'use this when you have a bill, otherwise use X'). The context is clear from the content, but guidance on choosing among alternatives is absent, so it falls short of explicit usage guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedsolar_estimate1 field changed
      • changedInput schema / properties / uses / items / enum
        Previous value: -[
        -  "Central air conditioning",
        -  "Heat pump or electric heat",
        -  "Electric water heater",
        -  "Electric dryer",
        -  "Electric stove and oven",
        -  "Pool pump",
        -  "Hot tub"
        -]New value: +[
        +  "Central air conditioning",
        +  "Heat pump or electric heat",
        +  "Heat pump water heater",
        +  "Electric dryer",
        +  "Electric stove and oven",
        +  "Pool pump",
        +  "Hot tub"
        +]
  2. 2 tool updates
    • Addedcheck_solar_quote
    • Changedsolar_estimate1 field changed
      • addedInput schema / properties / monthly_bill
        Added value: +{
        +  "description": "Monthly electric bill in dollars",
        +  "maximum": 5000,
        +  "minimum": 1,
        +  "type": "number"
        +}
  3. 7 tool updates
    • First observedfind_contractors
    • First observedgenerator_size
    • First observedlist_coverage
    • First observedpermit_timeline
    • First observedproject_cost
    • First observedsearch_contractor_records
    • First observedsolar_estimate

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Real-time contractor license verification across 45 US states. Verifies license status, expiration, and disciplinary history directly against state licensing board portals.
    4
    25 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides aggregated municipal development costs for US jurisdictions, including impact fees and utility connection charges, enabling AI agents to assess building feasibility quickly.
    14
    5 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides free EagleView-style satellite roof measurements and modular Xactimate-style estimating from Google Solar API data, enabling contractors to generate reports and estimates from any address.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides free energy intelligence APIs for AI agents: solar production estimates, US clean-energy incentives by ZIP, home Energy Node Scores, contractor search, and consented installer routing.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources