remodeleriq
Check if a contractor's remodeling bid is fair: analyze a quote, get cost + labor estimates.
Should I use this
Quality & Safety
Findings (1)
- LOWin compare_bids
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"remodeleriq": {
"url": "https://remodeleriq.com/mcp"
}
}
}Remote endpoints
https://remodeleriq.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (10)
🟢remodeleriq_analyze_bid(bid_text, bid_total, state_code, square_footage, finish_tier, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"bid_text": {
"type": "string",
"description": "The full text of the contractor's bid/estimate (line items, terms, scope)."
},
"bid_total": {
"type": "number",
"description": "The total dollar amount of the bid, if known."
},
"state_code": {
"type": "string",
"description": "Two-letter US state code (e.g. 'TX', 'GA') for localized labor/legal context. Defaults to GA."
},
"square_footage": {
"type": "number",
"description": "Project area in square feet, if known (e.g. 200 for a bathroom, 400 for a kitchen)."
},
"finish_tier": {
"type": "string",
"enum": [
"builder_grade",
"mid",
"semi_custom",
"custom",
"luxury"
],
"description": "Quality tier of finishes specified in the bid."
},
"scope_depth": {
"type": "string",
"enum": [
"cosmetic",
"pull_and_replace",
"full_gut",
"addition"
],
"description": "Depth of work: cosmetic (paint/fixtures only), pull_and_replace (replace but not reconfigure), full_gut (down to studs), addition (new square footage)."
}
},
"required": [
"bid_text"
]
}Output Schema
{
"type": "object",
"properties": {
"confidence_score": {
"type": "number",
"description": "0–100 bid confidence score"
},
"verdict": {
"type": "string"
},
"summary": {
"type": "string"
},
"red_flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": [
"critical",
"high"
]
},
"issue": {
"type": "string"
},
"detail": {
"type": "string"
},
"fix": {
"type": "string"
},
"flag_id": {
"type": "string",
"description": "Stable taxonomy ID (e.g. PAY_DEPOSIT_EXCESSIVE)"
}
},
"required": [
"level",
"issue",
"detail",
"fix",
"flag_id"
]
}
},
"missing_items": {
"type": "array",
"items": {
"type": "string"
}
},
"negotiation_talk_track": {
"type": "array",
"items": {
"type": "string"
}
},
"score_breakdown": {
"type": "object",
"properties": {
"contract_clarity": {
"type": "number"
},
"contract_weight": {
"type": "number"
},
"scope_completeness": {
"type": "number"
},
"scope_weight": {
"type": "number"
},
"price_realism": {
"type": "number"
},
"price_weight": {
"type": "number"
},
"final": {
"type": "number"
}
}
},
"_meta": {
"type": "object"
}
},
"required": [
"confidence_score",
"verdict",
"summary",
"red_flags",
"missing_items",
"negotiation_talk_track"
]
}🟢remodeleriq_get_cost_estimate(project_type, state_code, city_key)
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]?'
Input Schema
{
"type": "object",
"properties": {
"project_type": {
"type": "string",
"description": "Project type, e.g. 'kitchen-remodel', 'bathroom-remodel', 'roofing', 'siding', 'deck', 'addition', 'basement'."
},
"state_code": {
"type": "string",
"description": "Two-letter US state code (e.g. 'CA', 'TX')."
},
"city_key": {
"type": "string",
"description": "Optional city slug (e.g. 'atlanta-ga') for city-level precision."
}
},
"required": [
"project_type",
"state_code"
]
}Output Schema
{
"type": "object",
"properties": {
"project": {
"type": "string"
},
"location": {
"type": "string"
},
"typical_cost": {
"type": "number"
},
"range_low": {
"type": "number"
},
"range_high": {
"type": "number"
},
"regional_multiplier": {
"type": "number"
},
"data_source": {
"type": "string"
},
"note": {
"type": "string"
},
"_meta": {
"type": "object"
}
},
"required": [
"project",
"location",
"typical_cost",
"range_low",
"range_high"
]
}🟢remodeleriq_get_labor_rates(state_code, trade)
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.
Input Schema
{
"type": "object",
"properties": {
"state_code": {
"type": "string",
"description": "Two-letter US state code (e.g. 'TX', 'NY')."
},
"trade": {
"type": "string",
"description": "Optional specific trade to filter to (e.g. 'plumber', 'electrician', 'carpenter')."
}
},
"required": [
"state_code"
]
}Output Schema
{
"type": "object",
"properties": {
"state": {
"type": "string"
},
"note": {
"type": "string"
},
"rates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"trade": {
"type": "string"
},
"trade_key": {
"type": "string"
},
"bls_mean_wage_per_hour": {
"type": "number"
},
"fair_billed_rate_per_hour": {
"type": "number"
}
},
"required": [
"trade",
"trade_key",
"bls_mean_wage_per_hour",
"fair_billed_rate_per_hour"
]
}
},
"_meta": {
"type": "object"
}
},
"required": [
"state",
"rates"
]
}🟢analyze_bid(bid_text, bid_total, state_code, square_footage, finish_tier, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"bid_text": {
"type": "string",
"description": "The full text of the contractor's bid/estimate (line items, terms, scope)."
},
"bid_total": {
"type": "number",
"description": "The total dollar amount of the bid, if known."
},
"state_code": {
"type": "string",
"description": "Two-letter US state code (e.g. 'TX', 'GA') for localized labor/legal context. Defaults to GA."
},
"square_footage": {
"type": "number",
"description": "Project area in square feet, if known (e.g. 200 for a bathroom, 400 for a kitchen)."
},
"finish_tier": {
"type": "string",
"enum": [
"builder_grade",
"mid",
"semi_custom",
"custom",
"luxury"
],
"description": "Quality tier of finishes specified in the bid."
},
"scope_depth": {
"type": "string",
"enum": [
"cosmetic",
"pull_and_replace",
"full_gut",
"addition"
],
"description": "Depth of work: cosmetic (paint/fixtures only), pull_and_replace (replace but not reconfigure), full_gut (down to studs), addition (new square footage)."
}
},
"required": [
"bid_text"
]
}Output Schema
{
"type": "object",
"properties": {
"confidence_score": {
"type": "number",
"description": "0–100 bid confidence score"
},
"verdict": {
"type": "string"
},
"summary": {
"type": "string"
},
"red_flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": [
"critical",
"high"
]
},
"issue": {
"type": "string"
},
"detail": {
"type": "string"
},
"fix": {
"type": "string"
},
"flag_id": {
"type": "string",
"description": "Stable taxonomy ID (e.g. PAY_DEPOSIT_EXCESSIVE)"
}
},
"required": [
"level",
"issue",
"detail",
"fix",
"flag_id"
]
}
},
"missing_items": {
"type": "array",
"items": {
"type": "string"
}
},
"negotiation_talk_track": {
"type": "array",
"items": {
"type": "string"
}
},
"score_breakdown": {
"type": "object",
"properties": {
"contract_clarity": {
"type": "number"
},
"contract_weight": {
"type": "number"
},
"scope_completeness": {
"type": "number"
},
"scope_weight": {
"type": "number"
},
"price_realism": {
"type": "number"
},
"price_weight": {
"type": "number"
},
"final": {
"type": "number"
}
}
},
"_meta": {
"type": "object"
}
},
"required": [
"confidence_score",
"verdict",
"summary",
"red_flags",
"missing_items",
"negotiation_talk_track"
]
}🟢get_cost_estimate(project_type, state_code, city_key)
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.
Input Schema
{
"type": "object",
"properties": {
"project_type": {
"type": "string",
"description": "Project type, e.g. 'kitchen-remodel', 'bathroom-remodel', 'roofing', 'siding', 'deck', 'addition', 'basement'."
},
"state_code": {
"type": "string",
"description": "Two-letter US state code (e.g. 'CA', 'TX')."
},
"city_key": {
"type": "string",
"description": "Optional city slug (e.g. 'atlanta-ga') for city-level precision."
}
},
"required": [
"project_type",
"state_code"
]
}Output Schema
{
"type": "object",
"properties": {
"project": {
"type": "string"
},
"location": {
"type": "string"
},
"typical_cost": {
"type": "number"
},
"range_low": {
"type": "number"
},
"range_high": {
"type": "number"
},
"regional_multiplier": {
"type": "number"
},
"data_source": {
"type": "string"
},
"note": {
"type": "string"
},
"_meta": {
"type": "object"
}
},
"required": [
"project",
"location",
"typical_cost",
"range_low",
"range_high"
]
}🟢get_labor_rates(state_code, trade)
Deprecated: prefer remodeleriq_get_labor_rates. Get 2026 burdened construction trade labor rates ($/hour) for a US state, derived from BLS wage data.
Input Schema
{
"type": "object",
"properties": {
"state_code": {
"type": "string",
"description": "Two-letter US state code (e.g. 'TX', 'NY')."
},
"trade": {
"type": "string",
"description": "Optional specific trade to filter to (e.g. 'plumber', 'electrician', 'carpenter')."
}
},
"required": [
"state_code"
]
}Output Schema
{
"type": "object",
"properties": {
"state": {
"type": "string"
},
"note": {
"type": "string"
},
"rates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"trade": {
"type": "string"
},
"trade_key": {
"type": "string"
},
"bls_mean_wage_per_hour": {
"type": "number"
},
"fair_billed_rate_per_hour": {
"type": "number"
}
},
"required": [
"trade",
"trade_key",
"bls_mean_wage_per_hour",
"fair_billed_rate_per_hour"
]
}
},
"_meta": {
"type": "object"
}
},
"required": [
"state",
"rates"
]
}🟢remodeleriq_compare_bids(bids)
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.
Input Schema
{
"type": "object",
"properties": {
"bids": {
"type": "array",
"description": "2–5 contractor bids to compare side-by-side.",
"minItems": 2,
"maxItems": 5,
"items": {
"type": "object",
"properties": {
"bid_text": {
"type": "string",
"description": "Full text of the contractor bid/estimate."
},
"bid_total": {
"type": "number",
"description": "Total dollar amount of the bid, if known."
},
"label": {
"type": "string",
"description": "Display name for this bid (e.g. 'Acme Remodeling'). Defaults to 'Bid A', 'Bid B'…"
},
"state_code": {
"type": "string",
"description": "Two-letter US state code. Defaults to GA."
},
"square_footage": {
"type": "number"
},
"finish_tier": {
"type": "string",
"enum": [
"builder_grade",
"mid",
"semi_custom",
"custom",
"luxury"
]
},
"scope_depth": {
"type": "string",
"enum": [
"cosmetic",
"pull_and_replace",
"full_gut",
"addition"
]
}
},
"required": [
"bid_text"
]
}
}
},
"required": [
"bids"
]
}Output Schema
{
"type": "object",
"properties": {
"bid_count": {
"type": "number"
},
"bids": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"confidence_score": {
"type": "number"
},
"verdict": {
"type": "string"
},
"total": {
"type": "number"
},
"adjusted_total": {
"type": "number"
},
"critical_flags": {
"type": "number"
},
"high_flags": {
"type": "number"
},
"top_flags": {
"type": "array"
}
}
}
},
"winner": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"reason": {
"type": "string"
}
}
},
"cost_comparison": {
"type": "array",
"description": "Per-trade cost table sorted by price variance (largest gap first)."
},
"scope_gaps": {
"type": "array",
"description": "Trades present in some bids but absent from others, with estimated gap value."
},
"apples_to_apples": {
"type": "array",
"description": "Stated total + scope adjustment = adjusted comparable total per bid."
},
"outlier_flags": {
"type": "array",
"description": "Trades where one bid is ≥2× or ≤0.5× the median."
},
"all_flags": {
"type": "array",
"description": "All critical and high-severity flags across every bid."
},
"_meta": {
"type": "object"
}
},
"required": [
"bid_count",
"bids",
"cost_comparison",
"scope_gaps",
"apples_to_apples"
]
}🟢compare_bids(bids)
Deprecated: prefer remodeleriq_compare_bids. Compare 2–5 contractor bids side-by-side with per-trade cost comparison, scope-gap matrix, and winner recommendation.
Input Schema
{
"type": "object",
"properties": {
"bids": {
"type": "array",
"description": "2–5 contractor bids to compare side-by-side.",
"minItems": 2,
"maxItems": 5,
"items": {
"type": "object",
"properties": {
"bid_text": {
"type": "string",
"description": "Full text of the contractor bid/estimate."
},
"bid_total": {
"type": "number",
"description": "Total dollar amount of the bid, if known."
},
"label": {
"type": "string",
"description": "Display name for this bid (e.g. 'Acme Remodeling'). Defaults to 'Bid A', 'Bid B'…"
},
"state_code": {
"type": "string",
"description": "Two-letter US state code. Defaults to GA."
},
"square_footage": {
"type": "number"
},
"finish_tier": {
"type": "string",
"enum": [
"builder_grade",
"mid",
"semi_custom",
"custom",
"luxury"
]
},
"scope_depth": {
"type": "string",
"enum": [
"cosmetic",
"pull_and_replace",
"full_gut",
"addition"
]
}
},
"required": [
"bid_text"
]
}
}
},
"required": [
"bids"
]
}Output Schema
{
"type": "object",
"properties": {
"bid_count": {
"type": "number"
},
"bids": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"confidence_score": {
"type": "number"
},
"verdict": {
"type": "string"
},
"total": {
"type": "number"
},
"adjusted_total": {
"type": "number"
},
"critical_flags": {
"type": "number"
},
"high_flags": {
"type": "number"
},
"top_flags": {
"type": "array"
}
}
}
},
"winner": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"reason": {
"type": "string"
}
}
},
"cost_comparison": {
"type": "array",
"description": "Per-trade cost table sorted by price variance (largest gap first)."
},
"scope_gaps": {
"type": "array",
"description": "Trades present in some bids but absent from others, with estimated gap value."
},
"apples_to_apples": {
"type": "array",
"description": "Stated total + scope adjustment = adjusted comparable total per bid."
},
"outlier_flags": {
"type": "array",
"description": "Trades where one bid is ≥2× or ≤0.5× the median."
},
"all_flags": {
"type": "array",
"description": "All critical and high-severity flags across every bid."
},
"_meta": {
"type": "object"
}
},
"required": [
"bid_count",
"bids",
"cost_comparison",
"scope_gaps",
"apples_to_apples"
]
}🟢remodeleriq_get_risk_stats(state_code, project_type, bid_size_bucket)
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.
Input Schema
{
"type": "object",
"properties": {
"state_code": {
"type": "string",
"description": "Two-letter US state code to filter stats (e.g. 'GA', 'TX'). Omit for national data."
},
"project_type": {
"type": "string",
"description": "Project type to filter (e.g. 'kitchen-remodel', 'bathroom-remodel', 'roofing'). Omit for all project types."
},
"bid_size_bucket": {
"type": "string",
"enum": [
"<10k",
"10-25k",
"25-50k",
"50-100k",
"100k+"
],
"description": "Bid total range to filter. Omit for all sizes."
}
},
"required": []
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ok",
"corpus_too_small",
"suppressed"
]
},
"corpus_n": {
"type": "number",
"description": "Total bids in the RemodelerIQ corpus."
},
"cell_n": {
"type": "number",
"description": "Bids matching your filters."
},
"filter": {
"type": "object"
},
"suppressed": {
"type": "boolean",
"description": "True when cell_n < 30 — data withheld to protect granularity."
},
"top_flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"flag_id": {
"type": "string"
},
"rate": {
"type": "number",
"description": "Fraction of bids in cell where this flag fired (0–1)."
},
"n": {
"type": "number"
},
"severity": {
"type": "string"
},
"category": {
"type": "string"
},
"title": {
"type": "string"
}
}
}
},
"confidence_score": {
"type": "object",
"properties": {
"mean": {
"type": "number"
},
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"bands": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"n": {
"type": "number"
},
"pct": {
"type": "number"
}
}
}
}
}
},
"avg_bid_total": {
"type": "number",
"description": "Average bid total for bids where a total was provided."
},
"_meta": {
"type": "object"
}
},
"required": [
"status",
"corpus_n"
]
}🟢get_risk_stats(state_code, project_type, bid_size_bucket)
Deprecated: prefer remodeleriq_get_risk_stats. Get aggregate red-flag statistics from the RemodelerIQ bid corpus.
Input Schema
{
"type": "object",
"properties": {
"state_code": {
"type": "string",
"description": "Two-letter US state code to filter stats (e.g. 'GA', 'TX'). Omit for national data."
},
"project_type": {
"type": "string",
"description": "Project type to filter (e.g. 'kitchen-remodel', 'bathroom-remodel', 'roofing'). Omit for all project types."
},
"bid_size_bucket": {
"type": "string",
"enum": [
"<10k",
"10-25k",
"25-50k",
"50-100k",
"100k+"
],
"description": "Bid total range to filter. Omit for all sizes."
}
},
"required": []
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ok",
"corpus_too_small",
"suppressed"
]
},
"corpus_n": {
"type": "number",
"description": "Total bids in the RemodelerIQ corpus."
},
"cell_n": {
"type": "number",
"description": "Bids matching your filters."
},
"filter": {
"type": "object"
},
"suppressed": {
"type": "boolean",
"description": "True when cell_n < 30 — data withheld to protect granularity."
},
"top_flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"flag_id": {
"type": "string"
},
"rate": {
"type": "number",
"description": "Fraction of bids in cell where this flag fired (0–1)."
},
"n": {
"type": "number"
},
"severity": {
"type": "string"
},
"category": {
"type": "string"
},
"title": {
"type": "string"
}
}
}
},
"confidence_score": {
"type": "object",
"properties": {
"mean": {
"type": "number"
},
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"bands": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"n": {
"type": "number"
},
"pct": {
"type": "number"
}
}
}
}
}
},
"avg_bid_total": {
"type": "number",
"description": "Average bid total for bids where a total was provided."
},
"_meta": {
"type": "object"
}
},
"required": [
"status",
"corpus_n"
]
}Community
Evidence