RebidPro contractor quotes
Server Details
Real quotes from local US contractors for property jobs, ranked in ~48h, plus fair-price checks.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: list IDs, check price fairness, request contractor quotes, and retrieve job status/quotes. The descriptions explicitly separate check_fair_price from request_quotes and make the dependency flow clear.
All tool names use snake_case and begin with a clear action verb. The pattern is predictable and readable across the set.
Four tools are well-scoped for a contractor quote workflow: discovery, price validation, quote request, and status retrieval. Each tool earns its place without unnecessary surface area.
The core lifecycle is covered: finding job types, checking fair price, requesting quotes, and tracking a job. Minor gaps like canceling a job or listing prior jobs are not present, but agents can work around them.
Available Tools
4 toolscheck_fair_priceCheck if a contractor price is fairARead-onlyInspect
Use this when the user asks whether a contractor price or quote is fair, or what a job typically costs in their area (US). Compares against real quotes we collected for the same job type in the same 3-digit ZIP region. Returns the median, sample size and, if quoted_usd is given, a verdict (low, fair, high). Free. The full low/typical/high distribution is on the x402 endpoint GET https://rebidpro.com/agent/v1/price-check ($0.25).
| Name | Required | Description | Default |
|---|---|---|---|
| zip | Yes | ZIP code of the property (3 or 5 digits) | |
| trade | Yes | Trade id from list_job_types | |
| job_type | Yes | Job type id from list_job_types, e.g. water_heater_replace | |
| quoted_usd | No | The price the user was quoted, in US dollars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, the description discloses the underlying data source ('real quotes we collected'), the geographic granularity (3-digit ZIP region, US-only), the fields returned (median, sample size, optional verdict), and that this call is free while the fuller distribution costs $0.25 elsewhere. That is material context an agent cannot get from annotations or schema.
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?
Four tight sentences, front-loaded with the trigger condition, then data basis, then return values, then cost/fallback. Every sentence carries a distinct piece of information with no restatement of the name or title.
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?
There is no output schema, and the description compensates fully by stating the returned fields and the conditional verdict. Data sourcing, region granularity, cost and a paid escalation path are all covered, so an agent has everything needed to call it and interpret the result.
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 coverage is already 100%, so the baseline is 3; the description adds real meaning on top by clarifying that ZIP is resolved to a 3-digit region and that supplying quoted_usd is what unlocks the low/fair/high verdict. Remaining gap is minor: it does not restate that trade/job_type ids come from list_job_types, though the schema does.
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 names a specific verb-plus-resource (compares a contractor quote against collected real quotes for the same job type and 3-digit ZIP region) and enumerates what is returned. It is clearly distinct from the sibling tools list_job_types, get_quote_job and request_quotes, which handle lookup and quote solicitation rather than price benchmarking.
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 trigger condition is stated plainly: 'Use this when the user asks whether a contractor price or quote is fair, or what a job typically costs in their area (US).' It also names an alternative path for deeper data (the paid x402 endpoint). It stops short of saying when NOT to use it versus get_quote_job or request_quotes, so it falls just under full when/when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quote_jobGet quote job statusARead-onlyInspect
Use this when the user asks how their contractor quote request is going. Returns status, contractors contacted and replied, and the ranked quotes so far for a job_token from request_quotes. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| job_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavior: the exact contents of the response (status, contacted/replied counts, ranked quotes) and the fact that calls are free, which matters for agent retry/polling decisions. It stops short of saying whether status is live or cached, whether ranked quotes can be paginated, or whether an in-progress job may return an empty quote list.
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?
Three short sentences, front-loaded with the usage trigger, followed by return contents and a cost note. Every sentence carries information an agent would otherwise have to infer, and there is no redundant restatement of the title or annotations.
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 single-parameter, read-only polling tool this is close to complete: annotations cover safety, and with no output schema the description correctly takes on the job of enumerating return fields. The remaining gap is operational — nothing about polling cadence, result limits on 'ranked quotes so far', or behavior on an unknown token — which an agent calling this repeatedly would want to know.
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 0%, so the schema documents only that job_token is a required string; the description must carry the meaning. It does the most important part by tracing the parameter's provenance to request_quotes, telling the agent where a valid token comes from. It does not describe the token's format or what happens with an invalid or expired token, so it adds real but incomplete semantic value.
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?
States a specific action (retrieve status of a quote job) and enumerates the concrete payload: status, contractors contacted, contractors replied, and ranked quotes. It also anchors the resource to a sibling (a job_token from request_quotes), so an agent can tell it apart from request_quotes, check_fair_price, and list_job_types without opening any schema.
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?
Gives an explicit trigger condition: use when the user asks how their contractor quote request is going. That is a clear when-to-use signal, but it does not state when NOT to use it (e.g., before request_quotes has been called, or as an alternative to check_fair_price for price questions). The implicit prerequisite — that a job_token must already exist — is only hinted at via 'from request_quotes'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_job_typesList job typesARead-onlyInspect
Use this first when the user mentions a repair, replacement or recurring service at a US property. Returns the trade and job_type ids that request_quotes and check_fair_price need, plus prices. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered and the description is not required to restate it. The description still adds real context beyond them: that the call is free (no cost or rate-limit risk), that results include prices, and that the ids are prerequisites for downstream tools. It does not say whether the list is exhaustive or how large it is, which a caller planning to enumerate it would want.
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, no filler, and the trigger condition is front-loaded before the return-value detail. Every clause carries distinct information: trigger, scope, output content, downstream dependency, and cost.
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 zero-parameter, read-only lookup with no output schema, the definition covers what an agent needs: when to call it, what comes back (ids and prices), why those ids matter, and that it costs nothing. The only residual gap — list size or exhaustiveness — is minor against a tool this simple.
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 tool takes zero parameters and schema coverage is 100%, so there is nothing for the description to disambiguate on the input side; the baseline for a parameterless tool applies. The description does usefully characterize the payload (trade and job_type ids, prices) even though it is not required to, given no output schema exists.
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 pairs a specific verb and resource ("List job types") with its scope and return content: trade and job_type ids plus prices. It also positions itself relative to named siblings, stating that request_quotes and check_fair_price need the ids it returns, so an agent can tell what this tool is for without opening any schema.
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?
There is explicit trigger guidance — "Use this first when the user mentions a repair, replacement or recurring service at a US property" — which tells the agent both the ordering and the conversation conditions that select this tool over its siblings. What is missing is an explicit when-not case, e.g., skipping the call when the user already supplies a job_type id or the property is outside the US.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_quotesRequest contractor quotesAInspect
Use this when the user wants quotes or bids from local contractors for a real job at a US property, or wants to re-bid an annual service contract. We email licensed, well-reviewed local contractors, follow up, and return a ranked comparison, usually within 48 hours. Price: $39 per job in USDC over x402. This tool checks the job and returns the exact paid HTTP request for your x402 wallet to send. Contract re-bids (contract_rebid job types) need incumbent_annual_usd. Not for price lookups: use check_fair_price.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | Yes | 5-digit ZIP code of the property | |
| city | Yes | ||
| state | Yes | 2-letter state code | |
| title | Yes | Short title, e.g. 'Replace leaking 40-gal water heater' | |
| trade | Yes | Trade id from list_job_types | |
| job_type | Yes | Job type id from list_job_types, e.g. water_heater_replace | |
| needed_by | No | e.g. 'this week', '2026-12-01' | |
| description | Yes | Scope in plain words: what's wrong, size/model, access notes, unit/building | |
| contact_name | No | ||
| contact_email | No | Optional: an email to notify when the comparison is ready. Agents can poll get_quote_job instead. | |
| incumbent_vendor | No | ||
| incumbent_annual_usd | No | Current annual price (required for contract re-bids) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it is not read-only and is open-world, but the description supplies the non-obvious mechanics the annotations cannot: contractors are emailed and followed up, results arrive as a ranked comparison in ~48 hours, the cost is $39 USDC via x402, and critically the tool itself only validates the job and returns the paid HTTP request for the wallet to send. That last point fundamentally changes how an agent must sequence the call.
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?
Front-loaded with the use condition, then service behavior, price, and the mechanical payment note in a tight sequence. It runs six sentences, slightly long, but each carries distinct operational value with no 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?
For a 12-parameter, 7-required, open-world paid tool with no output schema, the description covers cost, turnaround, delivery channel, and the payment handoff, which are the highest-risk unknowns. It stops short of describing failure/refund behavior or what happens if the job fails validation.
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 coverage is 75%, so most fields are already documented, and the description's main conditional hint (incumbent_annual_usd for contract_rebid) is already stated in the schema field description. It adds no format or validation guidance for trade/job_type beyond pointing at list_job_types, which the schema also does.
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?
States a specific verb and resource ('quotes or bids from local contractors'), scopes it to 'a real job at a US property' or an annual contract re-bid, and explicitly distinguishes itself from use as a price lookup by naming check_fair_price. An agent can pick between this and its siblings without opening a schema.
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?
Gives an explicit use trigger ('when the user wants quotes or bids'), a second legitimate case (contract_rebid), a stated exclusion ('Not for price lookups: use check_fair_price'), and a prerequisite for the re-bid path (incumbent_annual_usd). This is exactly the when/when-not/alternative structure that earns a top score.
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.
4 tool updates
- First observed
check_fair_price - First observed
get_quote_job - First observed
list_job_types - First observed
request_quotes
Related MCP Connectors
Contractor quotes for US homeowners: start a request, see cost ranges with their sources.
Get quotes from local shops for a home repair or project anywhere in the US. Free for homeowners.
Get bids from local US contractors: scope a job, then BidCraft contacts contractors for you.
Measure property from satellite imagery, price 24 trades, and install contractor quote widgets.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceCheck if a contractor's remodeling bid is fair — analyze a quote (fairness score + red flags), get 2026 cost estimates by city, and look up BLS trade labor rates.-
- AlicenseBqualityBmaintenanceEnables multifamily renovation cost estimation, scope of work generation, contractor bid evaluation, ROI gating, and risk flagging for real estate intelligence agents.11Apache 2.0
- AlicenseNot gradedqualityBmaintenanceHome Services MCP by HireNimbus lets AI agents find, compare, and book verified local pros for handyman, renovation, HVAC, plumbing, electrical, and landscaping jobs in supported US metro markets.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables voice-driven hiring of licensed contractors, verification of their credentials against the Florida license registry, consent-logged visit tracking, and rule-based invoice reconciliation that separates proven work from disputed charges. It prepares a checkout for only the proven line items so the platform handles payment while the remainder waits for the homeowner.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.