remodeleriq
Server Details
Check if a contractor's remodeling bid is fair: analyze a quote, get cost + labor estimates.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- gustavoatar/remodeleriq-mcp
- GitHub Stars
- 0
- Server Listing
- RemodelerIQ
Available Tools
10 toolsanalyze_bidARead-onlyIdempotentInspect
Deprecated: prefer remodeleriq_analyze_bid. Analyze a home-remodeling contractor's bid/estimate for fairness and risk. Returns a 0-100 confidence score, red flags, a plain-English summary, and negotiation talk tracks. Note: analyses may contribute de-identified data to aggregate remodeling-risk research.
| Name | Required | Description | Default |
|---|---|---|---|
| bid_text | Yes | The full text of the contractor's bid/estimate (line items, terms, scope). | |
| bid_total | No | The total dollar amount of the bid, if known. | |
| state_code | No | Two-letter US state code (e.g. 'TX', 'GA') for localized labor/legal context. Defaults to GA. | |
| finish_tier | No | Quality tier of finishes specified in the bid. | |
| scope_depth | No | Depth of work: cosmetic (paint/fixtures only), pull_and_replace (replace but not reconfigure), full_gut (down to studs), addition (new square footage). | |
| square_footage | No | Project area in square feet, if known (e.g. 200 for a bathroom, 400 for a kitchen). |
Output Schema
| Name | Required | Description |
|---|---|---|
| _meta | No | |
| summary | Yes | |
| verdict | Yes | |
| red_flags | Yes | |
| missing_items | Yes | |
| score_breakdown | No | |
| confidence_score | Yes | 0–100 bid confidence score |
| negotiation_talk_track | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the read-only/idempotent annotations by noting that analyses 'may contribute de-identified data to aggregate remodeling-risk research,' disclosing a data-collection side effect not covered by annotations. It also specifies the return payload (confidence score, red flags, summary, talk tracks), adding behavioral context. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the deprecation warning, and every sentence contributes important information: deprecation, purpose, outputs, and data usage. It is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a full output schema and detailed annotations, the description covers all needed context: what the tool does, what it returns, its deprecation status, and a data-privacy note. No critical gaps remain for an agent 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage of all 6 parameters, so the baseline is 3. The description adds no parameter-specific meaning beyond what the schema already documents, so it neither improves nor degrades the parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Analyze a home-remodeling contractor's bid/estimate for fairness and risk.' It also differentiates from siblings by declaring itself deprecated and pointing to remodeleriq_analyze_bid, making the tool's role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises against using this tool by saying 'Deprecated: prefer remodeleriq_analyze_bid.' This provides a clear when-not and names the preferred alternative, fully satisfying the usage guideline criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_bidsARead-onlyIdempotentInspect
Deprecated: prefer remodeleriq_compare_bids. Compare 2–5 contractor bids side-by-side with per-trade cost comparison, scope-gap matrix, and winner recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| bids | Yes | 2–5 contractor bids to compare side-by-side. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bids | Yes | |
| _meta | No | |
| winner | No | |
| all_flags | No | All critical and high-severity flags across every bid. |
| bid_count | Yes | |
| scope_gaps | Yes | Trades present in some bids but absent from others, with estimated gap value. |
| outlier_flags | No | Trades where one bid is ≥2× or ≤0.5× the median. |
| cost_comparison | Yes | Per-trade cost table sorted by price variance (largest gap first). |
| apples_to_apples | Yes | Stated total + scope adjustment = adjusted comparable total per bid. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description does not need to restate safety. It adds transparency by describing the analytical outputs (per-trade comparison, scope-gap matrix, winner recommendation), giving a clear picture of what the tool returns. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently front-loads the deprecation warning and then describes the tool's core functionality. It contains no filler or redundant information, and every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is well-covered by annotations, a detailed schema, and an output schema. The description adds essential context about deprecation and the comparison features. While it doesn't describe error handling or the exact format of the 'winner recommendation,' these are inferable from the output schema and the tool's purpose, so the description is adequately complete for a deprecated tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the schema providing rich descriptions for the 'bids' array and its item properties (label, bid_text, bid_total, etc.). The description adds no parameter-specific detail beyond reiterating the 2–5 range already present in the schema, so it neither enhances nor detracts from the schema's sufficiency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool compares 2–5 contractor bids side-by-side with specific outputs (per-trade cost comparison, scope-gap matrix, winner recommendation). It also identifies the deprecated status and names the preferred sibling, making its purpose and differentiation clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description opens with 'Deprecated: prefer remodeleriq_compare_bids,' giving an explicit alternative and clearly indicating when not to use this tool. It also notes the bound of 2–5 bids, which guides appropriate input size.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cost_estimateARead-onlyIdempotentInspect
Deprecated: prefer remodeleriq_get_cost_estimate. Get a 2026 market cost range for a home-remodeling project in a US state/city, backed by Zonda Cost vs. Value benchmarks with regional adjustment.
| Name | Required | Description | Default |
|---|---|---|---|
| city_key | No | Optional city slug (e.g. 'atlanta-ga') for city-level precision. | |
| state_code | Yes | Two-letter US state code (e.g. 'CA', 'TX'). | |
| project_type | Yes | Project type, e.g. 'kitchen-remodel', 'bathroom-remodel', 'roofing', 'siding', 'deck', 'addition', 'basement'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| _meta | No | |
| project | Yes | |
| location | Yes | |
| range_low | Yes | |
| range_high | Yes | |
| data_source | No | |
| typical_cost | Yes | |
| regional_multiplier | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the deprecation status and the data-source/regional-adjustment context, which goes beyond the annotations. No contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that immediately delivers the deprecation warning and core functionality. Every phrase earns its place, with no unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description need not detail return values. It covers the tool's purpose, the deprecation status, and the replacement alternative, which is sufficient for a deprecated tool. Minor detail about regional adjustment is included but not exhaustive; still, overall completeness is high.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (city_key, state_code, project_type) are individually described. The tool description only lightly references 'state/city' and 'project type' without adding deeper semantics beyond what the schema already provides. Therefore, a neutral score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Get a 2026 market cost range for a home-remodeling project in a US state/city' and specifies the data source ('Zonda Cost vs. Value benchmarks with regional adjustment'). It also explicitly names the preferred sibling tool, distinguishing it from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description opens with 'Deprecated: prefer remodeleriq_get_cost_estimate', which explicitly instructs the agent to use an alternative. This serves as both a when-not-to-use directive and a clear alternative recommendation, making the usage guidance highly explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_labor_ratesARead-onlyIdempotentInspect
Deprecated: prefer remodeleriq_get_labor_rates. Get 2026 burdened construction trade labor rates ($/hour) for a US state, derived from BLS wage data.
| Name | Required | Description | Default |
|---|---|---|---|
| trade | No | Optional specific trade to filter to (e.g. 'plumber', 'electrician', 'carpenter'). | |
| state_code | Yes | Two-letter US state code (e.g. 'TX', 'NY'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| _meta | No | |
| rates | Yes | |
| state | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent behavior. The description adds the deprecation status, the 2026 year, 'burdened' nature of rates, and BLS derivation, which are useful behavioral context not present in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence that front-loads the critical deprecation notice and then packs the core function with specific details. Every clause earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with an output schema and annotations, the description covers the purpose, deprecation, data source, and units. It doesn't explain 'burdened' in depth, but overall it is sufficiently complete for invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, fully documenting both state_code and trade. The description adds that rates are per hour and for construction trades, but does not provide additional syntax details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 2026 burdened construction trade labor rates in dollars per hour for a US state, sourced from BLS. It also explicitly names the replacement tool, distinguishing it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It opens with 'Deprecated: prefer remodeleriq_get_labor_rates,' which explicitly tells the agent to prefer an alternative. It also sets context for scope (US state, construction trade labor rates).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_risk_statsARead-onlyIdempotentInspect
Deprecated: prefer remodeleriq_get_risk_stats. Get aggregate red-flag statistics from the RemodelerIQ bid corpus.
| Name | Required | Description | Default |
|---|---|---|---|
| state_code | No | Two-letter US state code to filter stats (e.g. 'GA', 'TX'). Omit for national data. | |
| project_type | No | Project type to filter (e.g. 'kitchen-remodel', 'bathroom-remodel', 'roofing'). Omit for all project types. | |
| bid_size_bucket | No | Bid total range to filter. Omit for all sizes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| _meta | No | |
| cell_n | No | Bids matching your filters. |
| filter | No | |
| status | Yes | |
| corpus_n | Yes | Total bids in the RemodelerIQ corpus. |
| top_flags | No | |
| suppressed | No | True when cell_n < 30 — data withheld to protect granularity. |
| avg_bid_total | No | Average bid total for bids where a total was provided. |
| confidence_score | No |
TDQS
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 well covered. The description adds minimal extra behavioral context—it identifies the data source ('RemodelerIQ bid corpus') and the nature of the output ('aggregate red-flag statistics'), but these largely restate the title. No description-annotation contradiction exists, and the description does not add significant behavioral details beyond what annotations and schema already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, front-loaded with the deprecation warning, and every word earns its place. No fluff or repetition. This is exemplary for a deprecated tool where brevity aids quick decision-making.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool is deprecated, the description successfully directs agents away from using it. It provides purpose and a clear alternative. The presence of a full output schema and complete parameter documentation means the description doesn't need to explain return values or filters. While it lacks details about what 'red-flag statistics' precisely include, this is adequately handled by the output schema and the preferred sibling tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with clear descriptions (state_code, project_type, bid_size_bucket), and schema coverage is 100%. The description itself does not add parameter-specific information, but the schema handles the heavy lifting. Baseline of 3 is appropriate because the description offers no extra semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get aggregate red-flag statistics from the RemodelerIQ bid corpus.' The verb 'Get' specifies the action, and the resource ('aggregate red-flag statistics') is specific. It distinguishes from siblings by explicitly marking this as deprecated and pointing to remodeleriq_get_risk_stats as the preferred alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Deprecated: prefer remodeleriq_get_risk_stats', which is a clear directive on when not to use this tool and which alternative to use instead. This is a strong when-to-use vs. when-not-to-use guideline, fully satisfying the dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remodeleriq_analyze_bidARead-onlyIdempotentInspect
Analyze a home-remodeling contractor's bid/estimate for fairness and risk. Returns a 0-100 confidence score, score_breakdown by dimension, red flags with stable flag IDs (deposit traps, vague scope, missing items, payment terms), a plain-English summary, and negotiation talk tracks. Score rubric: contract clarity 40%, scope completeness 30%, price realism 30%. Use when a homeowner asks 'is this contractor quote fair?' or shares a remodeling estimate. Note: analyses may contribute de-identified data to aggregate remodeling-risk research.
| Name | Required | Description | Default |
|---|---|---|---|
| bid_text | Yes | The full text of the contractor's bid/estimate (line items, terms, scope). | |
| bid_total | No | The total dollar amount of the bid, if known. | |
| state_code | No | Two-letter US state code (e.g. 'TX', 'GA') for localized labor/legal context. Defaults to GA. | |
| finish_tier | No | Quality tier of finishes specified in the bid. | |
| scope_depth | No | Depth of work: cosmetic (paint/fixtures only), pull_and_replace (replace but not reconfigure), full_gut (down to studs), addition (new square footage). | |
| square_footage | No | Project area in square feet, if known (e.g. 200 for a bathroom, 400 for a kitchen). |
Output Schema
| Name | Required | Description |
|---|---|---|
| _meta | No | |
| summary | Yes | |
| verdict | Yes | |
| red_flags | Yes | |
| missing_items | Yes | |
| score_breakdown | No | |
| confidence_score | Yes | 0–100 bid confidence score |
| negotiation_talk_track | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by detailing the output structure (confidence score, breakdown, red flags with stable IDs), the scoring rubric (40/30/30 weights), and the data usage note about contributing de-identified data to research. This adds meaningful behavioral context that annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense yet compact, with each sentence serving a purpose: purpose, output details, scoring rubric, usage trigger, and a privacy note. It is well-structured and front-loaded, avoiding unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description addresses all key aspects: what it does, what it returns, how the score is calculated, when to use it, and a data usage caveat. The presence of an output schema and full parameter documentation reduces the burden, and the description covers the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the parameters with descriptions, so the baseline is 3. The description does not add extra parameter-level detail beyond what the schema provides, but it also does not need to, as the schema is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Analyze') and resource ('bid/estimate'), and defines the scope ('fairness and risk'). It does not explicitly differentiate from the sibling tool 'analyze_bid', which may cause ambiguity, but the name and description still make the function clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Use when a homeowner asks...' or shares an estimate. It does not mention when not to use it or name alternative tools, but the guidance is clear enough for typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remodeleriq_compare_bidsARead-onlyIdempotentInspect
Compare 2–5 contractor bids for the same project side-by-side. Returns: per-bid confidence scores; a per-trade cost comparison table sorted by price variance; a scope-gap matrix (what Bid A includes that Bid B omits); apples-to-apples adjusted totals (normalizing for scope gaps); outlier detection (trades priced ≥2× or ≤0.5× the median); consolidated red flags across all bids; and a winner recommendation. Use when a homeowner has multiple quotes and wants to know which is best and why.
| Name | Required | Description | Default |
|---|---|---|---|
| bids | Yes | 2–5 contractor bids to compare side-by-side. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bids | Yes | |
| _meta | No | |
| winner | No | |
| all_flags | No | All critical and high-severity flags across every bid. |
| bid_count | Yes | |
| scope_gaps | Yes | Trades present in some bids but absent from others, with estimated gap value. |
| outlier_flags | No | Trades where one bid is ≥2× or ≤0.5× the median. |
| cost_comparison | Yes | Per-trade cost table sorted by price variance (largest gap first). |
| apples_to_apples | Yes | Stated total + scope adjustment = adjusted comparable total per bid. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral specifics: outlier detection thresholds (≥2× or ≤0.5× median), scope-gap normalization, and consolidated red flags, giving an agent a concrete picture of the analysis performed without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with semicolon-separated outputs followed by a one-sentence usage guide. Every clause adds information about what the tool returns or when to use it, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with an output schema, the description covers the action, input constraints, detailed outputs, and the intended use case. It leaves little ambiguity about when to invoke it or what will happen, making it contextually complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers the bids parameter with 100% coverage, including minItems/maxItems and property descriptions. The description adds the key constraint that bids must be for the same project—not present in the schema description—and references scope-depth normalization, enriching the meaning of the scope_depth field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Compare 2–5 contractor bids for the same project side-by-side', providing a specific verb and resource. It then enumerates analytical outputs (confidence scores, scope-gap matrix, outlier detection, winner recommendation) that clearly distinguish it from simpler sibling tools like compare_bids.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'Use when a homeowner has multiple quotes and wants to know which is best and why', giving clear when-to-use context. However, it does not mention alternative tools or when not to use, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remodeleriq_get_cost_estimateARead-onlyIdempotentInspect
Get a 2026 market cost range for a home-remodeling project in a US state/city, backed by Zonda Cost vs. Value benchmarks with regional adjustment. Use when a homeowner asks 'how much does a [kitchen/bathroom/roof/etc.] remodel cost in [place]?'
| Name | Required | Description | Default |
|---|---|---|---|
| city_key | No | Optional city slug (e.g. 'atlanta-ga') for city-level precision. | |
| state_code | Yes | Two-letter US state code (e.g. 'CA', 'TX'). | |
| project_type | Yes | Project type, e.g. 'kitchen-remodel', 'bathroom-remodel', 'roofing', 'siding', 'deck', 'addition', 'basement'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| _meta | No | |
| project | Yes | |
| location | Yes | |
| range_low | Yes | |
| range_high | Yes | |
| data_source | No | |
| typical_cost | Yes | |
| regional_multiplier | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds beyond annotations by specifying the 2026 data year and the Zonda benchmark source with regional adjustment, which are useful behavioral context. It doesn't contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes the usage trigger. Every sentence adds value with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present and annotations strong, the description is sufficient for an agent to understand what the tool does and when to use it. It doesn't need to explain return format due to output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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's example of 'kitchen/bathroom/roof/etc.' and 'place' loosely maps to project_type and state/city, but it doesn't add meaningful detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and identifies the resource as 'a 2026 market cost range for a home-remodeling project in a US state/city'. It distinguishes from siblings by mentioning Zonda Cost vs. Value benchmarks and regional adjustment, making the tool's purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit 'Use when' trigger: 'when a homeowner asks how much does a remodel cost in place.' It gives clear context but does not mention exclusions or alternative tools, so it doesn't reach the 5 threshold.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remodeleriq_get_labor_ratesARead-onlyIdempotentInspect
Get 2026 burdened construction trade labor rates ($/hour) for a US state, derived from BLS wage data. Returns rates by trade (carpenter, plumber, electrician, painter, etc.). Use when a homeowner asks what trade labor should cost or whether a bid's labor line is fair.
| Name | Required | Description | Default |
|---|---|---|---|
| trade | No | Optional specific trade to filter to (e.g. 'plumber', 'electrician', 'carpenter'). | |
| state_code | Yes | Two-letter US state code (e.g. 'TX', 'NY'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| _meta | No | |
| rates | Yes | |
| state | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds useful context by specifying that rates are 'burdened', 'derived from BLS wage data', and are for 2026, which communicates data vintage and basis 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences provide all necessary information: the first states the action, scope, source, and units; the second gives a real-world trigger. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup with one required parameter and an output schema, the description covers what, source, output granularity, units, and intended usage. The presence of an output schema means detailed return formatting is unnecessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents state_code and trade with 100% description coverage. The description reinforces these with 'for a US state' and trade examples, but does not add syntax, constraints, or default-behavior details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Get 2026 burdened construction trade labor rates ($/hour) for a US state, derived from BLS wage data.' It also lists example trades and a use case, which distinguishes it from cost-estimate and bid-analysis sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use when a homeowner asks what trade labor should cost or whether a bid's labor line is fair.' However, it does not name sibling tools or exclusion criteria, so it stops short of a full when/when-not comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remodeleriq_get_risk_statsARead-onlyIdempotentInspect
Get aggregate red-flag statistics from the RemodelerIQ bid corpus — real anonymized data from bids analyzed by the platform. Returns the most common risk flags and their fire rates, average confidence scores, and bid-total distributions, filtered optionally by US state, project type, or bid size. Requires corpus ≥ 500 submissions; cells below 30 submissions are suppressed. Use when a homeowner asks 'how common is a 40% deposit demand?' or 'what do most kitchen-remodel bids get flagged for?'. This is proprietary empirical data available nowhere else.
| Name | Required | Description | Default |
|---|---|---|---|
| state_code | No | Two-letter US state code to filter stats (e.g. 'GA', 'TX'). Omit for national data. | |
| project_type | No | Project type to filter (e.g. 'kitchen-remodel', 'bathroom-remodel', 'roofing'). Omit for all project types. | |
| bid_size_bucket | No | Bid total range to filter. Omit for all sizes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| _meta | No | |
| cell_n | No | Bids matching your filters. |
| filter | No | |
| status | Yes | |
| corpus_n | Yes | Total bids in the RemodelerIQ corpus. |
| top_flags | No | |
| suppressed | No | True when cell_n < 30 — data withheld to protect granularity. |
| avg_bid_total | No | Average bid total for bids where a total was provided. |
| confidence_score | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, but the description adds valuable behavioral context: data is 'real anonymized data', requires corpus ≥ 500 submissions, and suppresses cells below 30 submissions. It also notes the data is proprietary, which helps the agent understand availability and reliability. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with four sentences, front-loaded with purpose, then outputs, then constraints, then usage examples. The final sentence ('This is proprietary empirical data available nowhere else.') adds motivational context but is slightly tangential to tool invocation, making the description a bit less concise than ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, outputs, filtering options, constraints, and usage scenarios. Given the presence of an output schema and strong annotations, it provides a complete picture for an agent to decide when to use the tool and what to expect. No missing critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three optional parameters (state_code, project_type, bid_size_bucket) with 100% coverage. The description mentions these filters but does not add syntax or format details beyond the schema. Since schema coverage is complete, a baseline of 3 is appropriate; the description adds only minimal extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get aggregate red-flag statistics from the RemodelerIQ bid corpus' and specifies the outputs (common risk flags, fire rates, confidence scores, bid-total distributions). It distinguishes from sibling tools like analyze_bid or compare_bids by focusing on aggregate statistics across the corpus, not individual bids.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage context is provided: 'Use when a homeowner asks "how common is a 40% deposit demand?" or "what do most kitchen-remodel bids get flagged for?"' This clearly tells the agent when to invoke this tool over alternatives. It also explains constraints like the 500-submission corpus requirement and cell suppression below 30 submissions, aiding in appropriate use.
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. Dates show when Glama detected each change.
2 tool updates
- Added
get_risk_stats - Added
remodeleriq_get_risk_stats
2 tool updates
- Added
compare_bids - Added
remodeleriq_compare_bids
6 tool updates
- Changed
analyze_bid1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "_meta": { + "type": "object" + }, + "confidence_score": { + "description": "0–100 bid confidence score", + "type": "number" + }, + "missing_items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "negotiation_talk_track": { + "items": { + "type": "string" + }, + "type": "array" + }, + "red_flags": { + "items": { + "properties": { + "detail": { + "type": "string" + }, + "fix": { + "type": "string" + }, + "flag_id": { + "description": "Stable taxonomy ID (e.g. PAY_DEPOSIT_EXCESSIVE)", + "type": "string" + }, + "issue": { + "type": "string" + }, + "level": { + "enum": [ + "critical", + "high" + ], + "type": "string" + } + }, + "required": [ + "level", + "issue", + "detail", + "fix", + "flag_id" + ], + "type": "object" + }, + "type": "array" + }, + "score_breakdown": { + "properties": { + "contract_clarity": { + "type": "number" + }, + "contract_weight": { + "type": "number" + }, + "final": { + "type": "number" + }, + "price_realism": { + "type": "number" + }, + "price_weight": { + "type": "number" + }, + "scope_completeness": { + "type": "number" + }, + "scope_weight": { + "type": "number" + } + }, + "type": "object" + }, + "summary": { + "type": "string" + }, + "verdict": { + "type": "string" + } + }, + "required": [ + "confidence_score", + "verdict", + "summary", + "red_flags", + "missing_items", + "negotiation_talk_track" + ], + "type": "object" +}
- Changed
get_cost_estimate1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "_meta": { + "type": "object" + }, + "data_source": { + "type": "string" + }, + "location": { + "type": "string" + }, + "note": { + "type": "string" + }, + "project": { + "type": "string" + }, + "range_high": { + "type": "number" + }, + "range_low": { + "type": "number" + }, + "regional_multiplier": { + "type": "number" + }, + "typical_cost": { + "type": "number" + } + }, + "required": [ + "project", + "location", + "typical_cost", + "range_low", + "range_high" + ], + "type": "object" +}
- Changed
get_labor_rates1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "_meta": { + "type": "object" + }, + "note": { + "type": "string" + }, + "rates": { + "items": { + "properties": { + "bls_mean_wage_per_hour": { + "type": "number" + }, + "fair_billed_rate_per_hour": { + "type": "number" + }, + "trade": { + "type": "string" + }, + "trade_key": { + "type": "string" + } + }, + "required": [ + "trade", + "trade_key", + "bls_mean_wage_per_hour", + "fair_billed_rate_per_hour" + ], + "type": "object" + }, + "type": "array" + }, + "state": { + "type": "string" + } + }, + "required": [ + "state", + "rates" + ], + "type": "object" +}
- Added
remodeleriq_analyze_bid - Added
remodeleriq_get_cost_estimate - Added
remodeleriq_get_labor_rates
1 tool update
- Changed
analyze_bid3 fields changed- added
Input schema / properties / finish_tierAdded value: +{ + "description": "Quality tier of finishes specified in the bid.", + "enum": [ + "builder_grade", + "mid", + "semi_custom", + "custom", + "luxury" + ], + "type": "string" +} - added
Input schema / properties / scope_depthAdded value: +{ + "description": "Depth of work: cosmetic (paint/fixtures only), pull_and_replace (replace but not reconfigure), full_gut (down to studs), addition (new square footage).", + "enum": [ + "cosmetic", + "pull_and_replace", + "full_gut", + "addition" + ], + "type": "string" +} - added
Input schema / properties / square_footageAdded value: +{ + "description": "Project area in square feet, if known (e.g. 200 for a bathroom, 400 for a kitchen).", + "type": "number" +}
3 tool updates
- First observed
analyze_bid - First observed
get_cost_estimate - First observed
get_labor_rates
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Check contractor quotes for red flags and pricing risks. Free scan, paid reports, RFP tools.
AI-powered job cost estimator for skilled trades with material and labor breakdowns
Independent pre-transaction audit for construction estimates. Free, and every verdict recomputes.
Find vetted Chicagoland renovation contractors and get fact-checked Chicago renovation answers.
Related MCP Servers
- AlicenseAqualityAmaintenanceAudits Japanese construction and renovation estimates for overcharge. Fair price ranges by work type, red flag checks for sales tactics, and signed recomputable verdicts. Backed by the open JCCDB dataset (65,729 items, CC BY 4.0).141MIT
- FlicenseNot gradedqualityDmaintenanceProvides construction cost estimation tools using data from a public Google Sheet for items like concrete, framing, and electrical. It allows users to search items, filter by category, and calculate total project costs including labor and material expenses.-
- AlicenseNot gradedqualityBmaintenanceEnables agents to turn customer conversations into provably correct remodeling quotes by extracting catalog-bounded line items with evidence and calculating prices deterministically.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server providing 12 tools for Seattle-area home remodeling: real-time cost estimation across 8 project types, contractor business info, project portfolio, blog content, and quote submission. Connects via Streamable HTTP — no auth required.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
The deprecated tools are near-identical duplicates of the new prefixed tools, creating significant overlap. An agent could easily call analyze_bid instead of remodeleriq_analyze_bid, leading to confusion despite the deprecation notes.
Two naming patterns coexist: the older unprefixed verbs (analyze_bid, get_cost_estimate) and the newer prefixed verbs (remodeleriq_analyze_bid). This inconsistency is minor on its own but combined with the duplicates it creates a jarring mix.
The raw count of 6 is reasonable, but 3 tools are deprecated duplicates, so the effective unique toolset is only 3. This feels padded and slightly wasteful, though not egregious.
The three core functions—bid analysis, cost estimates, and labor rates—cover the primary homeowner needs for remodeling transparency. No obvious lifecycle gaps exist since this is a read/analyze API rather than a CRUD system.