Kolmo Construction
Server Details
Real-time cost estimator for Seattle home remodeling projects. Calculate estimates for 8 project types (interior painting, flooring, deck, exterior painting, windows, siding, fence, landscaping) using live licensed contractor rates. Also browse services, completed projects, expert blog posts, and submit quote requests. No auth required.
- Status
- Healthy
- Uptime
- 99.9% over 57 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 36 tools
Several tools overlap in the permit domain (answer_permit_question vs check_permit_requirements, get_permit_rule_details vs resolve_permit_submittals) and content retrieval (list_projects vs search_content, get_project_testimonials vs list_reviews; get_neighborhood_project_activity vs get_neighbor_permit_activity are easily confused). Descriptions are detailed and mostly clarify roles, but the agent must read carefully to pick the right tool.
All tools use consistent snake_case with clear verb_noun patterns (get_, list_, check_, estimate_, answer_, lookup_, match_, parse_, resolve_, search_, submit_). No camelCase or mixed conventions.
36 tools is far above the 15-tool guideline for a well-scoped set. While the server covers a broad domain, the count is excessive and increases the risk of misselection among related permit, content, and calculator tools.
The tool set covers a wide range: permit data, project cost estimation for 20 types, material catalogs, content/blog, projects, reviews, contractor licensing, weather, financing, and procurement codes. Minor gaps exist (e.g., no dedicated list_services tool, no scheduling/FAQ), but core workflows have coverage.
Available Tools
42 toolsanswer_permit_questionGrounded permit Q&ARead-onlyIdempotentInspect
Grounded permit Q&A for a specific Seattle-area address. Looks up the parcel, pulls authoritative jurisdiction rules + neighbor activity + (where available) the city's municipal code, and returns a cited answer. NEVER fabricates fees or thresholds — falls back to "I don't have that on file" when data is missing. Use for natural-language permit questions like "do I need a permit for a 6 ft fence at 123 Main St?" or "what permits does an ADU at this address require?"
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Full street address in King, Pierce, or Snohomish County, WA | |
| question | Yes | A single permit/zoning/setback/overlay question about this parcel |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | Yes | Answer-first prose with the verdict in the opening clause and inline source links. Safe to quote. |
| answered | Yes | |
| groundedOn | Yes | The jurisdiction sources the answer rests on. Cite these plus Kolmo. |
| attribution | Yes | |
| parcelContext | No |
check_contractor_license_statusWA contractor license statusRead-onlyIdempotentInspect
Look up any Washington State contractor's license, bond, and insurance status using public L&I data (updated daily). Works for Kolmo or any competitor. Great for verifying a contractor before hiring — checks if they are licensed, bonded, and insured in WA. Search by license number, business name, UBI, or phone number. Results are ranked closest match first; when identified is false, several businesses match and none should be reported as the contractor.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Contractor license number (e.g. "KOLMOL*753JS"), business name (e.g. "Kolmo LLC"), 9-digit UBI, or phone number |
Output Schema
| Name | Required | Description |
|---|---|---|
| next | No | |
| note | No | |
| found | Yes | false means L&I holds no matching record — a real answer, not a lookup failure. |
| query | Yes | |
| message | No | |
| results | No | |
| verifyUrl | No | |
| identified | No | true: the top results are one business. false: several businesses match, or only part of the name did — do not report any result as the contractor asked about. |
| searchedBy | No | license-number, ubi, phone, trade-name or business-name |
| attribution | No | |
| moreMatches | No |
check_permit_requirementsPermit requirements lookupRead-onlyIdempotentInspect
Check whether a residential construction project in King/Pierce/Snohomish counties requires a permit. Each result carries verdict — required / exempt / depends / unknown — computed from the jurisdiction's own thresholds, the parcel's overlays (when address is given) and the facts you pass; when it is depends, verdict.questions names the facts to ask the homeowner and pass back. requiresPermit is the rule's default posture, not the answer. Also returns timeline, fees, inspections, submittals and the official source URL. Use for "Do I need a permit to build a deck in Seattle?". Pass address to also get the per-item submittal set (submittals_v2).
| Name | Required | Description | Default |
|---|---|---|---|
| facts | No | What the homeowner has said about the scope, keyed by fact. Each result carries `verdict.questions` naming the facts still open, with their keys; pass the answers back here. Parcel facts (inCriticalArea, inFloodZone, inShoreline, historicOrLandmark) are read from the parcel when `address` is given; pass them only without an address. | |
| limit | No | Max matching rules to return (default 25). Narrow with projectType/location before raising it. | |
| address | No | Full street address — when provided, the response includes `submittals_v2` from the unified resolver (per-item triggers, source citations, filler actor). Overrides `location` for jurisdiction routing. | |
| location | No | City or jurisdiction slug, e.g. "Seattle", "Bellevue", "Tacoma", "king-county-unincorporated" | |
| projectType | No | Project type — canonical: kitchen, bathroom, basement, deck, fence, siding, windows, flooring, adu, roofing, hvac, electrical, plumbing, addition | |
| guardRunLengthFt | No | Total guard/railing run in the scope of work, feet. A guard is separately permittable from the surface it stands on; a deck exemption does not carry it. | |
| deckOverStoryBelow | No | True if any part of the deck is over a basement or a story below. A deck under 30 in is still NOT exempt in Kirkland if it sits over a story. | |
| deckOnAccessibleRoute | No | True if the deck is part of an accessible route to a building entrance — an independent permit trigger, separate from height. | |
| deckHeightAboveGradeIn | No | Deck walking surface above grade, inches — measured to the grade below at any point within 36 in of the outer edge. |
Output Schema
| Name | Required | Description |
|---|---|---|
| next | No | |
| total | No | |
| parcel | No | |
| message | No | |
| results | No | |
| routing | No | |
| coverage | No | Present on an unfiltered call: the jurisdictions and project types the catalog covers. |
| overlays | No | |
| returned | No | |
| important | No | |
| disclaimer | No | |
| trustLevel | No | "authoritative" when every returned rule is the city's own rule; "mixed" when some are the Washington state floor or not verified for the city (each rule carries its own `source` and `verdict`); or a LEGACY_LLM_SEED warning. Relay the warning or the mixed note if present. |
| attribution | No | |
| recommendation | No | |
| overlayDisclaimer | No | |
| authoritativeRulesCount | No |
check_service_area_coverageService-area coverageRead-onlyIdempotentInspect
Check whether Kolmo takes work in a given city, neighborhood, ZIP or address. Kolmo works across Washington: Puget Sound (Bellingham to Olympia) is the core area and the rest of the state is case by case. coverage is primary (a featured city or Seattle neighborhood), nearby (in the core area), case_by_case (Washington, outside Puget Sound), unconfirmed (not a place this check recognizes: treat it as in area) or out_of_area (outside Washington, the ONLY value that means Kolmo does not take the work). Follow guidance. Also returns the count of completed projects in or near that location.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | City, neighborhood, ZIP or address to check, e.g. "Ballard", "Normandy Park", "98105", "Tacoma" |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | No | |
| verdict | No | |
| coverage | Yes | |
| takesWork | Yes | False only when the place is outside Washington. |
| contactUrl | Yes | |
| attribution | Yes | |
| matchedCity | No | |
| serviceCities | Yes | Featured cities with their own landing pages. NOT the service area boundary: a place missing from this list is not out of area. See serviceRegion. |
| serviceRegion | Yes | |
| nearbyProjectCount | Yes | |
| matchedNeighborhood | No |
estimate_permit_feePermit fee estimateRead-onlyIdempotentInspect
Estimate the permit fee for a residential project based on jurisdiction, project type, and project valuation. Returns numeric breakdown when the authoritative rule has fee inputs, or qualitative feeNotes (with source URL) when the city publishes fees only as PDFs/spreadsheets. Never fabricates dollar amounts.
| Name | Required | Description | Default |
|---|---|---|---|
| projectType | Yes | Canonical project type | |
| valuationUsd | Yes | Project valuation in USD (materials + labor) | |
| jurisdictionSlug | Yes | Jurisdiction slug, e.g. "seattle", "bellevue", "tacoma" (use list_permit_jurisdictions to discover) |
Output Schema
| Name | Required | Description |
|---|---|---|
| breakdown | No | |
| sourceUrl | No | |
| disclaimer | No | |
| attribution | Yes | |
| permitClass | No | |
| projectType | Yes | |
| jurisdiction | Yes | |
| valuationUsd | No | |
| lastVerifiedAt | No | Date the permit rule row was last checked against its source. It is not a verification date for the fee schedule. |
| feeScheduleBasis | No | "city-adopted-schedule" when the figure walks the city's own adopted fee schedule; "wa-baseline-table" when it walks the standard valuation table most Washington cities adopt by reference, which is NOT that city's published fee. |
| qualitativeFeeNotes | No |
get_author_bioAuthor profileRead-onlyIdempotentInspect
Get the biography, credentials, expertise areas, and recent articles for a Kolmo Construction blog author. Use this to answer "who wrote this?" or to add author context to blog content.
| Name | Required | Description | Default |
|---|---|---|---|
| author | Yes | Author name or slug, e.g. "Marcus Reid", "marcus-reid", "Emily Chen", "emily-chen" |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| note | No | |
| slug | No | |
| found | Yes | |
| query | No | |
| source | No | |
| expertise | No | |
| profileUrl | No | |
| attribution | No | |
| credentials | No | |
| totalArticles | No | |
| recentArticles | No | |
| availableAuthors | No |
get_blog_postBlog post full textRead-onlyIdempotentInspect
Get the full markdown content of a blog post by its slug.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The URL slug of the blog post |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| slug | No | |
| tags | No | |
| title | No | |
| author | No | |
| content | No | Full article body. Quote and summarize freely; do not republish wholesale. |
| summary | No | |
| attribution | Yes | |
| publishedAt | No | |
| readingTimeMinutes | No |
get_business_infoBusiness info & credentialsRead-onlyIdempotentInspect
Get Kolmo Construction company information: contact details, hours, service area, specializations, and tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| Yes | ||
| hours | No | |
| phone | Yes | |
| tools | Yes | |
| rating | Yes | |
| address | Yes | |
| founded | No | |
| license | Yes | |
| website | Yes | |
| attribution | Yes | |
| serviceArea | Yes | Featured cities with their own landing pages. NOT the service area boundary: a place missing from this list is not out of area. See serviceRegion. |
| notCertified | Yes | Set-asides Kolmo does NOT hold. Never infer one that appears here. |
| serviceRegion | Yes | Where Kolmo takes work. This decides coverage, not serviceArea. |
| certifications | Yes | |
| specializations | Yes | Trades Kolmo performs. Not all of these have a service page — check list_services before linking one. |
| federalRegistration | Yes | |
| personnelQualifications | Yes |
get_common_plan_review_correctionsCommon plan-review correctionsRead-onlyIdempotentInspect
Corrections Seattle plan reviewers most often send on ADU permits, from the City's public correction letters: share of permits per category and the code cited. Shares are of permits that went to correction.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | No | e.g. NR, LR1 | |
| limit | No | ||
| subtype | No | adu-detached |
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | Yes | |
| attribution | Yes |
get_estimateSeattle cost estimateRead-onlyIdempotentInspect
Seattle cost estimate: range, material/labor split, days, line items.
Fields per type below; their allowed values, ranges and pricing rules are in list_project_types. ?=optional; (mat)=get_material_options ID (a unique close name also resolves; an ambiguous one lists candidates).
interior-painting: rooms([{id,name,length,width,height,paintCeiling,paintTrim,doorCount,windowCount,surfaceCondition,trimComplexity,wallTexture,roomEmpty}]); paintQuality(mat); paintFinish; includesPrimer; majorColorChange?(+colorChange{currentColor,targetColor}) exterior-painting: wallArea,trimArea; doorCount; paintQuality(mat); surfacePrepLevel; includesPrimer; stories?; colorChange?(+colorChangeData{currentColor,targetColor}) flooring: rooms([{id,name,length,width}]); flooringMaterial(mat); includesUnderlayment,includesBaseboard,includesRemoval,includesSubfloorPrep; underlaymentType?,baseboardType?(mat); baseboardLinearFeet?; removalType?; transitionCount? deck: deckType; dimensions({length,width≤200,height≤30 ft}); deckingMaterial(mat); framingMaterial(mat); includesRailing,includesStairs; railingMaterial?,finishType?(mat); railingLinearFeet?; stairSteps?; landingRequired?; deckShape?; skirtingType?; existingDeckWorkItems? windows: windows([{id,windowType,width,height,quantity}]); qualityLevel; includesTrimWork,includesRemoval,energyEfficient; trimMaterial?(mat) siding: wallArea; sidingMaterial(mat); homeHeight; includesInsulation,includesRemoval,soffit; insulationType?(mat); existingSidingType?; trimLinearFeet; soffitLinearFeet? fence: linearFeet; fenceMaterial(mat); height; gateCount; gateWidth?; style?; terrain; includesRemoval,concreteFootings landscaping: yardArea; includesIrrigation,includesSod,includesMulch,includesSitePrep; irrigationType?; irrigationZones?; sodSquareFeet?; mulchSquareFeet?; plants?([{id,plantType,quantity,size}]); hardscapeFeatures?([{id,featureType,squareFeet,material}]) kitchen: kitchenSize; scope; cabinets; countertop; appliances; flooring; backsplash?,plumbingRelocation?,electricalUpgrade?,island?,lighting?; wallRemoval?; gasLine?,rangeHood? bathroom: bathroomType; bathroomSize; scope; showerTub; vanity; tileWork; showerWalls?; heatedFloors?,newLighting?,ventilation?,plumbingRelocation?,glassDoor?,showerSeat?,handShower?; grabBars? basement: basementSize; scope; ceilingHeight; moistureCondition; egress; bathroom; kitchenette; bedroomCount?; flooring; insulation; hvac; electricalSubpanel?,homeAgePre1978? adu: type; sizeSqft; finishTier; dadu only: foundation?,sitework?,utilityRunFeet?,preApprovedPlan?; treeRemovalCount?; homeAgePre1978? ada: projectScope; modifications({grabBars,walkInShower,widerDoorways,ramp,nonSlipFlooring,leverHandles,raisedToilet,rollUnderSink,accessibleCounters,stairLift}, ≥1 true); currentCondition; homeStories?; doorwayCount?; rampLengthFeet?; flooringSquareFeet? electrical: items[{id,quantity}] (ids: get_material_options) plumbing: items[{id,quantity}] (ids: get_material_options) garage-doors: items[{id,quantity}] (ids: get_material_options) doors: items[{id,quantity}] (ids: get_material_options) concrete: items[{id,quantity}] (ids: get_material_options) insulation: items[{id,quantity}] (ids: get_material_options) gutters: items[{id,quantity}] (ids: get_material_options)
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project input fields — named per projectType in the tool description; allowed values in list_project_types. | |
| projectType | Yes | The type of project |
Output Schema
| Name | Required | Description |
|---|---|---|
| excludes | Yes | Scope NOT priced here. Relay alongside any figure. |
| laborCost | Yes | |
| lineItems | No | |
| totalCost | Yes | Point figure. Relay estimateRange instead — a single number reads as a quote. |
| permitCost | No | Present on deck, kitchen, bathroom, basement, adu and ada. Already inside totalCost. |
| attribution | Yes | |
| projectType | Yes | |
| materialCost | Yes | |
| pricingBasis | No | |
| calculatorUrl | Yes | |
| estimateRange | No | Planning range for Seattle-area work. This is what to relay, with its qualifier attached. |
| contingencyCost | No | Present on basement and adu. When set, a contingency is ALREADY in totalCost — do not add another. |
| getAccurateQuote | Yes | |
| timeEstimateDays | No | |
| contingencyGuidance | Yes |
get_financing_optionsHome-improvement financingRead-onlyIdempotentInspect
Get home improvement financing options for a Seattle remodeling project. Returns loan types, estimated monthly payments, typical terms, and eligibility notes. Helps homeowners understand how to pay for a remodel — HELOC, home improvement loans, cash-out refinance, and contractor payment plans.
| Name | Required | Description | Default |
|---|---|---|---|
| creditProfile | No | Approximate credit profile: excellent (750+), good (680-749), fair (620-679). Default: good | |
| projectBudget | Yes | Estimated project cost in USD |
Output Schema
| Name | Required | Description |
|---|---|---|
| options | No | |
| getQuote | Yes | |
| disclaimer | Yes | |
| attribution | Yes | |
| creditProfile | No | |
| projectBudget | No |
get_material_catalogMaterial catalogRead-onlyIdempotentInspect
Browse the full material catalog with pricing — flooring types, paint grades, decking materials, siding, windows, fencing, and more. Use category to filter. Returns material IDs compatible with get_estimate.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25) | |
| offset | No | Pagination offset (default 0) | |
| search | No | Filter by keyword in material name or description | |
| category | No | Filter by category: painting, flooring, decking, siding, windows, fencing, landscaping |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| limit | Yes | |
| total | Yes | |
| offset | Yes | |
| results | No | |
| attribution | Yes |
get_material_optionsMaterial options by project typeRead-onlyIdempotentInspect
Get available material choices for a project type — flooring types, paint grades, decking materials, kitchen/bath/basement/ADU scope tiers, ADA modifications, etc. Use the returned IDs in the project fields of get_estimate.
| Name | Required | Description | Default |
|---|---|---|---|
| projectType | Yes | The project type to list materials for |
Output Schema
| Name | Required | Description |
|---|---|---|
| options | No | Shape varies by project type — an array of {id,name,costPerUnit,unit} for the material-driven types, a keyed catalog for the scope-driven ones (kitchen, bathroom, basement, adu, ada). |
| attribution | Yes | |
| projectType | Yes |
get_my_quoteRead a Kolmo quoteRead-onlyIdempotentInspect
Read the quote Kolmo sent the person: scope, line items, options, total, payment schedule, expiry and whether it can still be accepted. Call before respond_to_quote.
| Name | Required | Description | Default |
|---|---|---|---|
| quoteLink | Yes | The person's kolmo.io/quotes/<id> link, as Kolmo sent it. Never guess one. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| total | Yes | Selected options, tax included, before any card fee. |
| status | Yes | |
| canAccept | Yes | |
| quoteNumber | Yes | |
| optionGroups | Yes |
get_neighborhood_project_activityKolmo work in a neighborhoodRead-onlyIdempotentInspect
See what remodeling projects Kolmo Construction has completed in a specific Seattle neighborhood or city. Returns project counts by category, example projects, and typical project descriptions. Great for hyperlocal social proof — e.g. "Has Kolmo worked in Ballard?" or "What has Kolmo done in Capitol Hill?"
| Name | Required | Description | Default |
|---|---|---|---|
| neighborhood | Yes | Seattle neighborhood or city, e.g. "Ballard", "Capitol Hill", "Bellevue", "Queen Anne" |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | |
| byCategory | No | |
| contactUrl | No | |
| attribution | No | |
| neighborhood | No | |
| portfolioUrl | No | |
| projectsFound | Yes | |
| recentExamples | No | |
| overallPortfolio | No |
get_neighbor_permit_activityNeighborhood permit activityRead-onlyIdempotentInspect
Aggregate permit activity within ~1500 ft of a Seattle-area parcel over the last 24 months. Returns total count, breakdown by category, and recent example permits (anonymized — no addresses). Sourced from city open-data portals (Socrata). Currently supports Seattle; other jurisdictions return jurisdictionSupported=false. Use to gauge neighborhood activity before quoting an unusual project, or to set homeowner expectations on what neighbors have built.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Full street address in King, Pierce, or Snohomish County, WA |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | |
| activity | No | |
| disclaimer | Yes | |
| attribution | Yes | |
| jurisdiction | No | |
| supportedJurisdictions | No |
get_payment_linkDeposit and invoice payment linksRead-onlyIdempotentInspect
Invoices for an accepted Kolmo quote, with amount, status and the Stripe page where the person pays. Never collect card or bank details.
| Name | Required | Description | Default |
|---|---|---|---|
| quoteLink | Yes | The person's kolmo.io/quotes/<id> link, as Kolmo sent it. Never guess one. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | |
| invoices | Yes |
get_permit_data_freshnessPermit source freshnessRead-onlyIdempotentInspect
Source-freshness telemetry for the permit catalog. Returns per-jurisdiction last-verified dates, a per-jurisdiction source-health rollup (which cities have a reachable / gone / blocked official source right now), and the latest results from the weekly source-of-truth snapshot pipeline (HTTP status, change-detection vs prior fetch). Failures are classified: missing means the page is gone, blocked means the host refused our fetch and is NOT evidence the source is gone. Use to answer "how current is this fee/timeline?" or to surface confidence in a permit answer. The /permits/data-quality page exposes the same signals.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max snapshots to return (default 5, newest first) | |
| jurisdictionSlug | No | Optional jurisdiction filter (e.g., "seattle", "bellevue"). When omitted, returns rollup across all jurisdictions. |
Output Schema
| Name | Required | Description |
|---|---|---|
| totals | No | |
| coverage | No | |
| pipeline | Yes | |
| publicView | Yes | |
| attribution | Yes | |
| sourceHealth | No | |
| jurisdictions | No | |
| changeDetection | No | |
| recentSnapshots | No | |
| howToReadFailures | No |
get_permit_rule_detailsPermit rule detailRead-onlyIdempotentInspect
Enumerate permit rules with full detail — timeline, fee model, inspection sequence, submittals, required contractor specialties. Filter by jurisdiction slug or keyword. Use for "what does a Seattle ADU permit require?" or to list all rules for a jurisdiction. Pass address to also receive submittals_v2 (structured per-item SubmittalSet from the unified resolver) per rule.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10 — rules are ~1K tokens each) | |
| address | No | Full street address — when provided, each result row also includes `submittals_v2` from the unified resolver (per-item triggers, source citations, filler actor). | |
| keyword | No | Keyword in project type, trigger, thresholds, or notes (e.g. "deck", "adu", "egress") | |
| jurisdiction | No | Jurisdiction slug or display name (e.g. "seattle", "bellevue", "tacoma") | |
| onlyAuthoritative | No | Default true: return only 'authoritative' and 'wa-baseline' rules. Set false to also return every other tier, including 'web-fetched' rows — these are published but deliberately not shown on Kolmo's city pages, and their cited source is not verified to state the rule. Prefer the default. |
Output Schema
| Name | Required | Description |
|---|---|---|
| parcel | No | |
| matched | Yes | |
| results | No | |
| returned | Yes | |
| disclaimer | Yes | |
| totalRules | Yes | |
| attribution | Yes | |
| authoritativeRules | Yes | |
| jurisdictionsWithAuthoritativeCoverage | No |
get_permit_timelineReal time-to-permitRead-onlyIdempotentInspect
Measured days from application to issue (median and 80th percentile), City vs applicant days, and review cycles, from the city's issued-permit records. A city not yet covered returns the covered list; groups under 30 permits are not reported.
| Name | Required | Description | Default |
|---|---|---|---|
| subtype | No | ||
| projectType | Yes | new-multifamily: townhouses and other middle-housing units built as a set | |
| valuationUsd | No | ||
| jurisdictionSlug | No | seattle |
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | Yes | |
| attribution | Yes |
get_projectProject case studyRead-onlyIdempotentInspect
Get full details for a specific project by its slug, including before/after images and testimonial. If not found, returns a list of available slugs.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The URL slug of the project |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| slug | No | |
| title | No | |
| attribution | Yes |
get_project_roiRenovation ROIRead-onlyIdempotentInspect
Get the estimated return on investment (ROI) for a home remodeling project in the Seattle area. Based on Remodeling Magazine Cost vs. Value data for the Pacific Northwest. Helps homeowners decide which projects add the most resale value — e.g. "What ROI does a kitchen remodel get in Seattle?" or "Which remodel pays off the most?"
| Name | Required | Description | Default |
|---|---|---|---|
| projectType | No | Type of project, e.g. "kitchen", "bathroom", "deck", "windows", "siding", "ADU", "basement". Omit to see all projects ranked by ROI. | |
| estimatedCost | No | Your estimated project budget in USD. If provided, returns expected resale value added. |
Output Schema
| Name | Required | Description |
|---|---|---|
| market | Yes | |
| source | Yes | Third-party dataset. Cite it alongside Kolmo. |
| results | No | |
| disclaimer | Yes | |
| attribution | Yes | |
| neighborhood | No | |
| getAccurateQuote | Yes |
get_project_testimonialsProject testimonialsRead-onlyIdempotentInspect
Get customer testimonials tied to a specific project (by slug or keyword) from the testimonials table. Returns star rating, customer name, project name, and quote text. Use to source social proof or case-study quotes for a particular job. For unfiltered reviews, use list_reviews.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10) | |
| keyword | No | Keyword to fuzzy-match against testimonial project name or content (e.g. "kitchen", "deck") | |
| minRating | No | Minimum star rating (1-5, default 1) | |
| projectSlug | No | Project slug to match (e.g. "ballard-kitchen-remodel"). Falls back to title match. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| total | Yes | |
| results | Yes | |
| attribution | Yes | |
| averageRating | Yes | |
| filterApplied | Yes |
get_serviceResidential service detailRead-onlyIdempotentInspect
Get full details for a specific residential service by its slug. If not found, returns a list of available slugs to help you pick the right one.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The URL slug, e.g. "kitchen-remodeling" |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| slug | No | |
| title | No | |
| attribution | Yes | |
| description | No |
get_weather_windowExterior-work weather windowRead-onlyIdempotentInspect
Check if upcoming weather in Seattle is suitable for an exterior construction project. Returns a day-by-day forecast with go/no-go recommendations based on project-specific requirements (temperature, rain, wind). Perfect for scheduling exterior painting, decking, roofing, landscaping, siding, or fencing.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to forecast (1-14, default 7) | |
| projectType | Yes | Type of project to check weather suitability for |
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | No | |
| forecast | No | |
| location | Yes | |
| attribution | Yes | |
| projectType | No | |
| forecastDays | Yes | |
| requirements | No |
list_blog_postsBlog indexRead-onlyIdempotentInspect
List published blog posts about home remodeling, renovation costs, and construction tips. Filter by tag or author name.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter posts by tag, e.g. "flooring", "deck", "painting" | |
| limit | No | Max posts to return (default 10) | |
| author | No | Filter posts by author name, e.g. "Marcus Reid" | |
| offset | No | Pagination offset (default 0) |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | |
| total | Yes | |
| hubUrl | Yes | |
| offset | Yes | |
| results | Yes | |
| attribution | Yes |
list_blog_tags_and_categoriesBlog topic coverageRead-onlyIdempotentInspect
Enumerate every tag and category used across Kolmo's published blog posts, with post counts. Use this to discover what topics Kolmo publishes on before calling list_blog_posts, or to surface coverage gaps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| tags | Yes | |
| usage | Yes | |
| categories | Yes | |
| totalPosts | Yes | |
| attribution | Yes |
list_commercial_servicesCommercial & public-works servicesRead-onlyIdempotentInspect
List commercial construction services with slugs and citable page URLs. Optionally filter by category: office, retail, industrial, hospitality, public. The "public" category covers public works and government contracts — Kolmo is WA State SEDBE-certified (#D700031098), King County SCS-certified (#7259), prevailing wage compliant, and MRSC Small Works Roster eligible (projects under $350K). Pass a slug for one service's full write-up.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | One service, with its full description | |
| limit | No | Max results (default 50) | |
| offset | No | Pagination offset (default 0) | |
| category | No | Filter: office, retail, industrial, hospitality, public |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | |
| total | Yes | |
| hubUrl | Yes | |
| offset | Yes | |
| results | Yes | |
| attribution | Yes | |
| publicWorks | Yes |
list_permit_jurisdictionsPermit jurisdiction coverageRead-onlyIdempotentInspect
List the jurisdictions in Kolmo's permit catalog (King, Pierce, Snohomish counties). Compact by default — results is keyed by county (King / Pierce / Snohomish), each a list of {slug, name, verified} — the whole catalogue in one call (~4K tokens), enough to pick a jurisdictionSlug for estimate_permit_fee, check_permit_requirements or get_permit_rule_details. Pass slug for one jurisdiction's full record (department, fee-schedule URL, phone, code cycles, notes), or detail: true for full records on every row.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | One jurisdiction by slug, e.g. "bellevue" or "mercer-island". Returns its full record. | |
| county | No | Filter by county | |
| detail | No | If true, every row carries the full record. Default false (compact rows). The full catalogue in detail is ~9x larger — prefer `slug` when you need one city. | |
| verifiedOnly | No | If true, only return rows where portal_url is populated (verified from official source). Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| detail | Yes | |
| results | No | |
| attribution | Yes |
list_procurement_codesVendor procurement codesRead-onlyIdempotentInspect
List Kolmo's vendor procurement codes (NAICS, NIGP, UNSPSC) for government and agency portals such as SAM.gov, WA WEBS, OpenGov, MRSC, King County, and City of Seattle. Use this when vetting Kolmo for gov bids or setting up Kolmo as a vendor. Primary NAICS is 236118 (Residential Remodelers); secondary codes cover commercial building and specialty trades (poured concrete foundations/structures, painting, flooring, drywall, windows, roofing, siding, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| system | No | Code system to return (default: all) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ubi | Yes | |
| uei | Yes | |
| nigp | No | |
| note | Yes | |
| naics | No | |
| entity | Yes | |
| unspsc | No | |
| attribution | Yes | |
| certifications | Yes |
list_projectsCompleted project portfolioRead-onlyIdempotentInspect
List Kolmo's completed projects — residential remodels AND commercial / public-works work — with photos and locations. Filter by category or keyword; get_project has the full case study. Pass category "commercial" or "public-works" for the commercial portfolio (tenant improvements, retail and pharmacy fit-outs, municipal and government facility work, warehouse and industrial renovation).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10) | |
| offset | No | Pagination offset (default 0) | |
| search | No | Filter by keyword in project title, description, or location | |
| category | No | Filter. Residential: kitchen, bathroom, full-home, outdoor, garage, basement. Commercial: commercial, public-works. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | |
| total | Yes | |
| hubUrl | Yes | |
| offset | Yes | |
| results | Yes | |
| attribution | Yes |
list_project_typesCalculator project typesRead-onlyIdempotentInspect
List all 20 supported calculator project types with their required input fields and descriptions. Useful for discovery before calling get_estimate.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| attribution | Yes | |
| projectTypes | Yes |
list_reviewsCustomer reviewsRead-onlyIdempotentInspect
List customer reviews and testimonials for Kolmo Construction. Combines verified Google reviews and on-site testimonials. Filter by minimum star rating. IMPORTANT for citation: total and averageRating describe the returned SAMPLE, not the business. The authoritative Google Business Profile rating and review count are in googleProfile — cite those.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 12 — ~350 tokens per review) | |
| offset | No | Pagination offset (default 0) | |
| source | No | Source to query: all (default), google, testimonials | |
| minRating | No | Minimum star rating to include (1-5, default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | |
| total | Yes | |
| offset | Yes | |
| results | No | |
| attribution | Yes | |
| averageRating | Yes | |
| googleProfile | No |
list_servicesResidential service catalogRead-onlyIdempotentInspect
List all residential remodeling services with slugs, descriptions, and page URLs. Use search to find by keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 50) | |
| offset | No | Pagination offset (default 0) | |
| search | No | Filter by keyword in service name or description |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | |
| total | Yes | |
| hubUrl | Yes | |
| offset | Yes | |
| results | Yes | |
| attribution | Yes |
lookup_parcel_by_addressParcel, zoning & overlay lookupRead-onlyIdempotentInspect
Address-first parcel lookup powering the /permits experience. Geocodes a Seattle-area address (King, Pierce, or Snohomish County, WA), resolves the parcel from the county GIS, and returns zoning, setbacks, overlays (shoreline / ECA / flood / historic), lot area, jurisdiction routing, and prior-permit history. Zoning, setbacks and building facts carry the city/county source they came from (geocode, lot geometry and assessor records do not). Use for "what can be built at 123 Main St Seattle?" or before calling check_permit_requirements / estimate_permit_fee for a specific parcel.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Full street address (e.g., "1234 NE 65th St, Seattle, WA 98115"). Must be in King, Pierce, or Snohomish County, WA. | |
| forceRefresh | No | Skip the 30-day cache and re-fetch from county GIS + overlay sources. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | Set when the county records the address on this parcel as a second address (e.g. a new house on the lot) and the assessor lists the parcel under parcel.address. Not a snap: the parcel is correct. |
| found | Yes | |
| parcel | No | |
| warning | Yes | Set when the address snapped to a nearby parcel. Confirm with the user before relying on the result. |
| nextSteps | Yes | |
| disclaimer | Yes | |
| attribution | Yes | |
| addressResolution | No |
match_contractor_to_permitContractor-to-permit specialty matchRead-onlyIdempotentInspect
Cross-reference a WA contractor's L&I license specialty against a permit's required specialties. Returns whether the contractor is qualified to pull/work the permit, with explicit gap callouts (e.g. "missing electrical specialty 02"). Combines real-time L&I data with Kolmo's authoritative permit catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| projectType | Yes | Canonical project type (kitchen, bathroom, basement, deck, fence, siding, windows, flooring, adu, roofing, hvac, electrical, plumbing, addition) | |
| contractorQuery | Yes | Contractor license number, business name, UBI or phone number | |
| jurisdictionSlug | Yes | Permit jurisdiction slug (e.g. "seattle", "tacoma") |
Output Schema
| Name | Required | Description |
|---|---|---|
| match | Yes | null: no single contractor could be identified from contractorQuery, so no comparison was made — not a finding either way. |
| checks | No | |
| permit | No | |
| reason | No | |
| missing | No | |
| sourceUrl | No | |
| verifyUrl | No | |
| candidates | No | |
| contractor | No | |
| attribution | No |
parse_project_descriptionNatural-language project parserRead-onlyIdempotentInspect
Parse a homeowner's natural-language project description into structured permit-relevant fields: projectType (kitchen|bathroom|deck|adu|fence|...), areaSqft, heightClass, attached/detached, position, and materials. Returns confidence + a single clarifyingQuestion when the parse is ambiguous. Use this before calling check_permit_requirements / estimate_permit_fee when you only have free text from the homeowner. Backed by Gemini 2.5 Pro with a constrained JSON schema.
| Name | Required | Description | Default |
|---|---|---|---|
| cityName | No | City name (e.g., "Seattle", "Bellevue") | |
| zoningCode | No | Zoning code from lookup_parcel_by_address (e.g., "NR2", "LR1") | |
| description | Yes | Free-text project description (e.g., "I want to add a 200 sqft deck off my master bedroom on the second floor") | |
| jurisdictionSlug | No | Jurisdiction slug from lookup_parcel_by_address (helps disambiguate region-specific terminology) |
Output Schema
| Name | Required | Description |
|---|---|---|
| parsed | No | |
| nextSteps | No | |
| attribution | Yes | |
| validProjectTypes | Yes |
request_walkthroughRequest an on-site walkthroughInspect
Request an on-site walkthrough at 1-5 times the person proposes: 24 h to 60 days out, starting Mon-Fri 8 AM-4 PM or Sat 9 AM-12 PM Pacific. Kolmo confirms one within 1 business day; until then it is "requested", not "booked". Without quoteLink, pass the person's own name, email, phone, address and scope. dryRun: true previews.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| No | |||
| notes | No | Access, parking, pets | |
| phone | No | ||
| scope | No | ||
| dryRun | No | ||
| address | No | Property street address and city | |
| quoteLink | No | The person's kolmo.io/quotes/<id> link, as Kolmo sent it. Never guess one. | |
| proposedTimes | Yes | ISO 8601 with offset |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| message | No | |
| reference | No | Give this to the person. |
| proposedTimes | No |
resolve_permit_submittalsPermit submittal checklistRead-onlyIdempotentInspect
Resolve the structured submittal-item set for a specific parcel + permit scope, via the unified permit-engine pipeline. Use this when you need the per-item checklist (with triggers, source citations, filler actor, gap-resolution path) — not just the rule-level summary that check_permit_requirements returns. Each set states its fidelity, which varies by city and scope: "full" (every item cites the code section, tip or City page it rests on), "min-viable", or "wa-baseline-stub". Unverified jurisdictions return no-spec.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | Yes | Permit scope — the (project-type x work-class) identifier the provider catalogs by | |
| address | Yes | Full street address — geocoded to a parcel and matched to a jurisdiction provider | |
| envelopeChange | No | Project alters the building envelope (windows, doors, siding, roof). Default false. Drives WSEC triggers. | |
| structuralChange | No | Project involves a structural change (header, framing, lateral). Default false. Drives several triggers. | |
| totalFloorAreaSqft | No | Total floor area in sqft. Used by SEPA threshold (>=12000) and other size-based triggers. | |
| projectValuationUsd | No | Project valuation in USD |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| scope | Yes | |
| totals | No | |
| address | No | |
| parcelId | No | |
| applicable | No | |
| disclaimer | No | |
| permitType | No | |
| attribution | Yes | |
| skippedCount | Yes | |
| jurisdictionId | Yes | |
| jurisdictionFidelity | No |
respond_to_quoteAccept, decline or request changes to a quoteDestructiveInspect
Answer a Kolmo quote for the person. "accepted" binds them to the work at that total; "declined" is final; "changes_requested" keeps it open and needs notes. To accept: show the person scope, options and total from get_my_quote, get an explicit yes, pass that total as confirmedTotal.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| response | Yes | ||
| quoteLink | Yes | The person's kolmo.io/quotes/<id> link, as Kolmo sent it. Never guess one. | |
| confirmedTotal | No | Required to accept | |
| personConfirmed | No | True only after the person said yes. Required to accept or decline | |
| selectedOptions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | No | |
| status | Yes | |
| message | Yes |
search_contentUnified content searchRead-onlyIdempotentInspect
Search across all Kolmo content — services, projects, and blog posts — with a single keyword query. Returns ranked results grouped by type. Use this instead of calling list_services + list_projects + list_blog_posts separately.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per type (default 5) | |
| query | Yes | Search keyword or phrase, e.g. "deck Seattle", "kitchen cost", "permit" | |
| types | No | Content types to include (default: all three) |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | Present only on a zero-result search. |
| query | Yes | |
| terms | Yes | The query after tokenizing. Matching is per-term, not whole-string. |
| results | Yes | |
| totalFound | Yes | Alias of resultCount, kept for existing callers. |
| attribution | Yes | |
| resultCount | Yes |
submit_contact_requestSubmit a quote requestInspect
Submit a contact or quote request to Kolmo Construction on behalf of a user. Set dryRun: true to preview what would be sent without actually submitting.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Full name | |
| Yes | Email address | ||
| phone | No | Phone number (optional) | |
| dryRun | No | If true, validate and preview without submitting (default false) | |
| message | Yes | Project description or question | |
| service | No | Service needed, e.g. "kitchen remodel" |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| dryRun | No | True when this was a preview — nothing was submitted. |
| message | No | |
| preview | No | |
| success | No | |
| reference | No | Opaque lead reference. Give it to the user; it is how Kolmo locates the request. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
42 tool updates
- Changed
answer_permit_question4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
check_contractor_license_status4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
check_permit_requirements5 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / facts / descriptionPrevious value: -"What the homeowner has said about the scope, keyed by fact. Each result carries `verdict.questions` naming the facts still open; pass them back here. Keys: deckHeightAboveGradeIn, deckAreaSqft, deckAttached, deckOverStoryBelow, deckOnAccessibleRoute, deckServesRequiredExit, roofDeck, deckCovered, deckingBoardsOnly, fenceHeightFt, masonryWallHeightFt, fenceInFrontYard, cosmeticOnly, plumbingMovedOrAdded, newCircuits, gasOrMechanicalWork, structuralOrWallChange, tubOrShowerReplaced, surfacesOpened, windowNewOrEnlargedOpening, windowStructuralChange, windowEgressAffected, windowEnergyDowngrade, sidingStructuralChange, sidingInsulationOrWrbChange, sidingStuccoOrVeneer, roofSheathingReplaced, roofMaterialTypeChange, roofLayersAfter, roofUnitWeightPsf, roofMaterialWeightIncreasePsf, roofFramingChange, roofSkylightsOrMechanical, buildingUnreinforcedMasonry, subfloorOrJoistChange, radiantHeat, plumbingLeakRepairOnly, plumbingLikeForLikeSameLocation, plumbingFixtureInstalledOrReplaced, plumbingFixtureAddedOrMoved, waterHeaterReplaced, plumbingNewOrRelocatedPiping, plumbingConcealedPipeReplaced, electricalLikeInKindMinor, newCircuitsOrPanel, hardwiredFixtureOrAppliance, portableAppliance, hvacMinorPartReplacement, treeDbhIn, treeAlderOrCottonwood, treesRemovedThisYear. Parcel facts (inCriticalArea, inFloodZone, inShoreline, historicOrLandmark) are read from the parcel when `address` is given; pass them only without an address."New value: +"What the homeowner has said about the scope, keyed by fact. Each result carries `verdict.questions` naming the facts still open, with their keys; pass the answers back here. Parcel facts (inCriticalArea, inFloodZone, inShoreline, historicOrLandmark) are read from the parcel when `address` is given; pass them only without an address." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
check_service_area_coverage4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
estimate_permit_fee4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_author_bio4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_blog_post4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_business_info4 fields changed- removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true - removed
Output schema / properties / rating / additionalPropertiesRemoved value: -true
- Changed
get_common_plan_review_corrections4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_estimate5 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / project / descriptionPrevious value: -"Project input fields — see tool description for required fields per projectType."New value: +"Project input fields — named per projectType in the tool description; allowed values in list_project_types." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_financing_options4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_material_catalog4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_material_options4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_my_quote3 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true
- Changed
get_neighbor_permit_activity4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_neighborhood_project_activity4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_payment_link3 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true
- Changed
get_permit_data_freshness4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_permit_rule_details4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_permit_timeline4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_project4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_project_roi4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_project_testimonials6 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true - removed
Output schema / properties / filterApplied / additionalPropertiesRemoved value: -true - removed
Output schema / properties / results / items / additionalPropertiesRemoved value: -true
- Changed
get_service4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
get_weather_window4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
list_blog_posts5 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true - removed
Output schema / properties / results / items / additionalPropertiesRemoved value: -true
- Changed
list_blog_tags_and_categories6 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true - removed
Output schema / properties / categories / items / additionalPropertiesRemoved value: -true - removed
Output schema / properties / tags / items / additionalPropertiesRemoved value: -true
- Changed
list_commercial_services7 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / slugAdded value: +{ + "description": "One service, with its full description", + "type": "string" +} - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true - removed
Output schema / properties / publicWorks / additionalPropertiesRemoved value: -true - removed
Output schema / properties / results / items / additionalPropertiesRemoved value: -true
- Changed
list_permit_jurisdictions4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
list_procurement_codes4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
list_project_types4 fields changed- removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true - removed
Output schema / properties / projectTypes / additionalProperties / additionalPropertiesRemoved value: -true
- Changed
list_projects6 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / limit / descriptionPrevious value: -"Max results (default 20)"New value: +"Max results (default 10)" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true - removed
Output schema / properties / results / items / additionalPropertiesRemoved value: -true
- Changed
list_reviews4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
list_services5 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true - removed
Output schema / properties / results / items / additionalPropertiesRemoved value: -true
- Changed
lookup_parcel_by_address4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
match_contractor_to_permit4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
parse_project_description4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
request_walkthrough3 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true
- Changed
resolve_permit_submittals4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true
- Changed
respond_to_quote3 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true
- Changed
search_content5 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true - removed
Output schema / properties / attribution / additionalPropertiesRemoved value: -true - removed
Output schema / properties / results / additionalPropertiesRemoved value: -true
- Changed
submit_contact_request3 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -true
1 tool update
- Changed
get_permit_timeline2 fields changed- added
Input schema / properties / projectType / descriptionAdded value: +"new-multifamily: townhouses and other middle-housing units built as a set" - changed
Input schema / properties / projectType / enumPrevious value: -[ - "adu", - "addition", - "deck", - "basement", - "alteration", - "new-home" -]New value: +[ + "adu", + "addition", + "deck", + "basement", + "alteration", + "new-home", + "new-multifamily" +]
2 tool updates
- Added
get_common_plan_review_corrections - Added
get_permit_timeline
4 tool updates
- Added
get_my_quote - Added
get_payment_link - Added
request_walkthrough - Added
respond_to_quote
2 tool updates
- Changed
check_permit_requirements1 field changed- changed
Output schema / properties / trustLevel / descriptionPrevious value: -"\"authoritative\" or a LEGACY_LLM_SEED warning. Relay the warning if present."New value: +"\"authoritative\" when every returned rule is the city's own rule; \"mixed\" when some are the Washington state floor or not verified for the city (each rule carries its own `source` and `verdict`); or a LEGACY_LLM_SEED warning. Relay the warning or the mixed note if present."
- Changed
estimate_permit_fee2 fields changed- added
Output schema / properties / feeScheduleBasisAdded value: +{ + "description": "\"city-adopted-schedule\" when the figure walks the city's own adopted fee schedule; \"wa-baseline-table\" when it walks the standard valuation table most Washington cities adopt by reference, which is NOT that city's published fee.", + "type": "string" +} - changed
Output schema / properties / lastVerifiedAt / descriptionPrevious value: -"Verification date for the fee schedule. Relay it with the figure."New value: +"Date the permit rule row was last checked against its source. It is not a verification date for the fee schedule."
2 tool updates
- Changed
check_permit_requirements1 field changed- added
Output schema / properties / routingAdded value: +{}
- Changed
get_project_roi1 field changed- changed
Output schema / properties / attribution / requiredPrevious value: -[ - "sourceUrl", - "citeAs" -]New value: +[ + "citeAs" +]
1 tool update
- Changed
lookup_parcel_by_address2 fields changed- added
Output schema / properties / noteAdded value: +{ + "description": "Set when the county records the address on this parcel as a second address (e.g. a new house on the lot) and the assessor lists the parcel under parcel.address. Not a snap: the parcel is correct.", + "type": [ + "string", + "null" + ] +} - changed
Output schema / requiredPrevious value: -[ - "found", - "warning", - "nextSteps", - "disclaimer", - "attribution" -]New value: +[ + "found", + "warning", + "note", + "nextSteps", + "disclaimer", + "attribution" +]
2 tool updates
- Changed
check_contractor_license_status5 fields changed- changed
Input schema / properties / query / descriptionPrevious value: -"Contractor license number (e.g. \"KOLMOL*753JS\") or business name (e.g. \"Kolmo Construction\")"New value: +"Contractor license number (e.g. \"KOLMOL*753JS\"), business name (e.g. \"Kolmo LLC\"), 9-digit UBI, or phone number" - added
Output schema / properties / identifiedAdded value: +{ + "description": "true: the top results are one business. false: several businesses match, or only part of the name did — do not report any result as the contractor asked about.", + "type": "boolean" +} - added
Output schema / properties / moreMatchesAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / noteAdded value: +{ + "type": "string" +} - added
Output schema / properties / searchedByAdded value: +{ + "description": "license-number, ubi, phone, trade-name or business-name", + "type": "string" +}
- Changed
match_contractor_to_permit4 fields changed- changed
Input schema / properties / contractorQuery / descriptionPrevious value: -"Contractor license number or business name"New value: +"Contractor license number, business name, UBI or phone number" - added
Output schema / properties / candidatesAdded value: +{} - added
Output schema / properties / match / descriptionAdded value: +"null: no single contractor could be identified from contractorQuery, so no comparison was made — not a finding either way." - changed
Output schema / properties / match / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +]
2 tool updates
- Changed
check_service_area_coverage9 fields changed- changed
Input schema / properties / location / descriptionPrevious value: -"City, neighborhood, or ZIP to check, e.g. \"Ballard\", \"Bellevue\", \"98105\", \"Tacoma\""New value: +"City, neighborhood, ZIP or address to check, e.g. \"Ballard\", \"Normandy Park\", \"98105\", \"Tacoma\"" - added
Output schema / properties / coverage / enumAdded value: +[ + "primary", + "nearby", + "case_by_case", + "unconfirmed", + "out_of_area" +] - added
Output schema / properties / coverage / typeAdded value: +"string" - removed
Output schema / properties / primaryCountyRemoved value: -{} - removed
Output schema / properties / radiusKmRemoved value: -{ - "type": "number" -} - added
Output schema / properties / serviceCities / descriptionAdded value: +"Featured cities with their own landing pages. NOT the service area boundary: a place missing from this list is not out of area. See serviceRegion." - added
Output schema / properties / serviceRegionAdded value: +{ + "type": "string" +} - added
Output schema / properties / takesWorkAdded value: +{ + "description": "False only when the place is outside Washington.", + "type": "boolean" +} - changed
Output schema / requiredPrevious value: -[ - "radiusKm", - "serviceCities", - "nearbyProjectCount", - "contactUrl", - "attribution" -]New value: +[ + "coverage", + "takesWork", + "serviceRegion", + "serviceCities", + "nearbyProjectCount", + "contactUrl", + "attribution" +]
- Changed
get_business_info3 fields changed- added
Output schema / properties / serviceArea / descriptionAdded value: +"Featured cities with their own landing pages. NOT the service area boundary: a place missing from this list is not out of area. See serviceRegion." - added
Output schema / properties / serviceRegionAdded value: +{ + "description": "Where Kolmo takes work. This decides coverage, not serviceArea.", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "name", - "license", - "phone", - "email", - "website", - "address", - "rating", - "serviceArea", - "certifications", - "personnelQualifications", - "federalRegistration", - "notCertified", - "specializations", - "tools", - "attribution" -]New value: +[ + "name", + "license", + "phone", + "email", + "website", + "address", + "rating", + "serviceRegion", + "serviceArea", + "certifications", + "personnelQualifications", + "federalRegistration", + "notCertified", + "specializations", + "tools", + "attribution" +]
2 tool updates
- Changed
get_estimate1 field changed- changed
Input schema / properties / projectType / enumPrevious value: -[ - "interior-painting", - "exterior-painting", - "flooring", - "deck", - "windows", - "siding", - "fence", - "landscaping", - "kitchen", - "bathroom", - "basement", - "adu", - "ada", - "electrical", - "plumbing", - "garage-doors", - "concrete", - "insulation", - "gutters" -]New value: +[ + "interior-painting", + "exterior-painting", + "flooring", + "deck", + "windows", + "siding", + "fence", + "landscaping", + "kitchen", + "bathroom", + "basement", + "adu", + "ada", + "electrical", + "plumbing", + "garage-doors", + "doors", + "concrete", + "insulation", + "gutters" +]
- Changed
get_material_options1 field changed- changed
Input schema / properties / projectType / enumPrevious value: -[ - "interior-painting", - "exterior-painting", - "flooring", - "deck", - "windows", - "siding", - "fence", - "landscaping", - "kitchen", - "bathroom", - "basement", - "adu", - "ada", - "electrical", - "plumbing", - "garage-doors", - "concrete", - "insulation", - "gutters" -]New value: +[ + "interior-painting", + "exterior-painting", + "flooring", + "deck", + "windows", + "siding", + "fence", + "landscaping", + "kitchen", + "bathroom", + "basement", + "adu", + "ada", + "electrical", + "plumbing", + "garage-doors", + "doors", + "concrete", + "insulation", + "gutters" +]
2 tool updates
- Changed
get_estimate2 fields changed- changed
Input schema / properties / projectType / enumPrevious value: -[ - "interior-painting", - "exterior-painting", - "flooring", - "deck", - "windows", - "siding", - "fence", - "landscaping", - "kitchen", - "bathroom", - "basement", - "adu", - "ada" -]New value: +[ + "interior-painting", + "exterior-painting", + "flooring", + "deck", + "windows", + "siding", + "fence", + "landscaping", + "kitchen", + "bathroom", + "basement", + "adu", + "ada", + "electrical", + "plumbing", + "garage-doors", + "concrete", + "insulation", + "gutters" +] - changed
Output schema / properties / permitCost / descriptionPrevious value: -"Present on basement and adu, where permit cost is inside totalCost."New value: +"Present on deck, kitchen, bathroom, basement, adu and ada. Already inside totalCost."
- Changed
get_material_options1 field changed- changed
Input schema / properties / projectType / enumPrevious value: -[ - "interior-painting", - "exterior-painting", - "flooring", - "deck", - "windows", - "siding", - "fence", - "landscaping", - "kitchen", - "bathroom", - "basement", - "adu", - "ada" -]New value: +[ + "interior-painting", + "exterior-painting", + "flooring", + "deck", + "windows", + "siding", + "fence", + "landscaping", + "kitchen", + "bathroom", + "basement", + "adu", + "ada", + "electrical", + "plumbing", + "garage-doors", + "concrete", + "insulation", + "gutters" +]
1 tool update
- Changed
list_projects1 field changed- changed
Input schema / properties / category / descriptionPrevious value: -"Filter. Residential: kitchen, bathroom, full-home, outdoor, basement. Commercial: commercial, public-works."New value: +"Filter. Residential: kitchen, bathroom, full-home, outdoor, garage, basement. Commercial: commercial, public-works."
1 tool update
- Changed
check_permit_requirements1 field changed- added
Input schema / properties / factsAdded value: +{ + "additionalProperties": { + "type": [ + "number", + "boolean" + ] + }, + "description": "What the homeowner has said about the scope, keyed by fact. Each result carries `verdict.questions` naming the facts still open; pass them back here. Keys: deckHeightAboveGradeIn, deckAreaSqft, deckAttached, deckOverStoryBelow, deckOnAccessibleRoute, deckServesRequiredExit, roofDeck, deckCovered, deckingBoardsOnly, fenceHeightFt, masonryWallHeightFt, fenceInFrontYard, cosmeticOnly, plumbingMovedOrAdded, newCircuits, gasOrMechanicalWork, structuralOrWallChange, tubOrShowerReplaced, surfacesOpened, windowNewOrEnlargedOpening, windowStructuralChange, windowEgressAffected, windowEnergyDowngrade, sidingStructuralChange, sidingInsulationOrWrbChange, sidingStuccoOrVeneer, roofSheathingReplaced, roofMaterialTypeChange, roofLayersAfter, roofUnitWeightPsf, roofMaterialWeightIncreasePsf, roofFramingChange, roofSkylightsOrMechanical, buildingUnreinforcedMasonry, subfloorOrJoistChange, radiantHeat, plumbingLeakRepairOnly, plumbingLikeForLikeSameLocation, plumbingFixtureInstalledOrReplaced, plumbingFixtureAddedOrMoved, waterHeaterReplaced, plumbingNewOrRelocatedPiping, plumbingConcealedPipeReplaced, electricalLikeInKindMinor, newCircuitsOrPanel, hardwiredFixtureOrAppliance, portableAppliance, hvacMinorPartReplacement, treeDbhIn, treeAlderOrCottonwood, treesRemovedThisYear. Parcel facts (inCriticalArea, inFloodZone, inShoreline, historicOrLandmark) are read from the parcel when `address` is given; pass them only without an address.", + "type": "object" +}
2 tool updates
- Changed
get_estimate3 fields changed- changed
Input schema / properties / projectType / enumPrevious value: -[ - "interior-painting", - "deck", - "exterior-painting", - "flooring", - "windows", - "siding", - "fence", - "landscaping", - "kitchen", - "bathroom", - "ada" -]New value: +[ + "interior-painting", + "exterior-painting", + "flooring", + "deck", + "windows", + "siding", + "fence", + "landscaping", + "kitchen", + "bathroom", + "basement", + "adu", + "ada" +] - added
Output schema / properties / contingencyCostAdded value: +{ + "description": "Present on basement and adu. When set, a contingency is ALREADY in totalCost — do not add another.", + "type": "number" +} - added
Output schema / properties / permitCostAdded value: +{ + "description": "Present on basement and adu, where permit cost is inside totalCost.", + "type": "number" +}
- Changed
get_material_options2 fields changed- changed
Input schema / properties / projectType / enumPrevious value: -[ - "interior-painting", - "deck", - "exterior-painting", - "flooring", - "windows", - "siding", - "fence", - "landscaping", - "kitchen", - "bathroom", - "ada" -]New value: +[ + "interior-painting", + "exterior-painting", + "flooring", + "deck", + "windows", + "siding", + "fence", + "landscaping", + "kitchen", + "bathroom", + "basement", + "adu", + "ada" +] - changed
Output schema / properties / options / descriptionPrevious value: -"Shape varies by project type — an array of {id,name,costPerUnit,unit} for most, a keyed catalog for kitchen/bathroom/ada."New value: +"Shape varies by project type — an array of {id,name,costPerUnit,unit} for the material-driven types, a keyed catalog for the scope-driven ones (kitchen, bathroom, basement, adu, ada)."
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1611 npm1MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs117 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceRevnuvo Company Intelligence tells AI agents what changed at a company, with evidence. It observes company websites, technologies, and DNS over time and returns timestamped, confidence-aware changes, signals, and monitoring.9MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.