accueil / serveurs / Recherche & Web / io.kolmo.www/kolmo-mcp-server
io.kolmo.www/kolmo-mcp-server
serveur MCP (Model Context Protocol) · kolmo-construction 1.6.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.kolmo.www/kolmo-mcp-server est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.kolmo.www/kolmo-mcp-server » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 42 outils
- answer_permit_question≈ 498 tokens
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?"
Paramètres, retour & exemple (2)
Paramètresaddress· string · requis
Full street address in King, Pierce, or Snohomish County, WAquestion· string · requis
A single permit/zoning/setback/overlay question about this parcel
Exemple d'appel{"name": "answer_permit_question", "arguments": {"address": "texte", "question": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"answer": "texte", "answered": true, "groundedOn": [], "attribution": {}, "parcelContext": "texte"}} - check_contractor_license_status≈ 532 tokens
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.
Paramètres, retour & exemple (1)
Paramètresquery· string · requis
Contractor license number (e.g. "KOLMOL*753JS"), business name (e.g. "Kolmo LLC"), 9-digit UBI, or phone number
Exemple d'appel{"name": "check_contractor_license_status", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"next": [], "note": "texte", "found": true, "query": "texte", "message": "texte", "results": "texte", "verifyUrl": "texte", "identified": true, "searchedBy": "texte", "attribution": {}, "moreMatches": true}} - check_permit_requirements≈ 1107 tokens
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`).
Paramètres, retour & exemple (9)
Paramètresfacts· object · optionnel
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· integer · optionnel
Max matching rules to return (default 25). Narrow with projectType/location before raising it.address· string · optionnel
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· string · optionnel
City or jurisdiction slug, e.g. "Seattle", "Bellevue", "Tacoma", "king-county-unincorporated"projectType· string · optionnel
Project type — canonical: kitchen, bathroom, basement, deck, fence, siding, windows, flooring, adu, roofing, hvac, electrical, plumbing, additionguardRunLengthFt· number · optionnel
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· boolean · optionnel
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· boolean · optionnel
True if the deck is part of an accessible route to a building entrance — an independent permit trigger, separate from height.deckHeightAboveGradeIn· number · optionnel
Deck walking surface above grade, inches — measured to the grade below at any point within 36 in of the outer edge.
Exemple d'appel{"name": "check_permit_requirements", "arguments": {"facts": {}, "limit": 1, "address": "texte", "location": "texte", "projectType": "texte", "guardRunLengthFt": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"next": [], "total": 1, "parcel": "texte", "message": "texte", "results": "texte", "routing": "texte", "coverage": "texte", "overlays": "texte", "returned": 1, "important": "texte", "disclaimer": "texte", "trustLevel": "texte"}} - check_service_area_coverage≈ 572 tokens
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.
Paramètres, retour & exemple (1)
Paramètreslocation· string · requis
City, neighborhood, ZIP or address to check, e.g. "Ballard", "Normandy Park", "98105", "Tacoma"
Exemple d'appel{"name": "check_service_area_coverage", "arguments": {"location": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"query": "texte", "verdict": "texte", "coverage": "primary", "takesWork": true, "contactUrl": "texte", "attribution": {}, "matchedCity": "texte", "serviceCities": [], "serviceRegion": "texte", "nearbyProjectCount": 1, "matchedNeighborhood": "texte"}} - estimate_permit_fee≈ 731 tokens
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.
Paramètres, retour & exemple (5)
Paramètreszone· string · optionnel
The lot's zoning code, e.g. "R-20". Needed where the fee table has a column per zone (hunts-point: R-20/R-20A or R-40).areaSqft· number · optionnel
Square feet of the work. Needed where the jurisdiction charges per square foot instead of on valuation (king-county-unincorporated: deck, addition, basement conversion, ADU), or off a table by floor area (hunts-point: kitchen, bathroom, basement, addition, ADU).projectType· string · requis · kitchen | bathroom | basement | deck | fence | siding | windows | flooring
Canonical project typevaluationUsd· number · requis
Project valuation in USD (materials + labor)jurisdictionSlug· string · requis
Jurisdiction slug, e.g. "seattle", "bellevue", "tacoma" (use list_permit_jurisdictions to discover)
Exemple d'appel{"name": "estimate_permit_fee", "arguments": {"projectType": "kitchen", "valuationUsd": 1, "jurisdictionSlug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"breakdown": "texte", "sourceUrl": "texte", "disclaimer": "texte", "attribution": {}, "permitClass": "texte", "projectType": "texte", "jurisdiction": "texte", "valuationUsd": "texte", "lastVerifiedAt": "texte", "feeScheduleBasis": "texte", "qualitativeFeeNotes": "texte"}} - get_author_bio≈ 352 tokens
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.
Paramètres, retour & exemple (1)
Paramètresauthor· string · requis
Author name or slug, e.g. "Marcus Reid", "marcus-reid", "Emily Chen", "emily-chen"
Exemple d'appel{"name": "get_author_bio", "arguments": {"author": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"name": "texte", "note": "texte", "slug": "texte", "found": true, "query": "texte", "source": "texte", "expertise": "texte", "profileUrl": "texte", "attribution": {}, "credentials": "texte", "totalArticles": 1, "recentArticles": "texte"}} - get_blog_post≈ 328 tokens
Get the full markdown content of a blog post by its slug.
Paramètres, retour & exemple (1)
Paramètresslug· string · requis
The URL slug of the blog post
Exemple d'appel{"name": "get_blog_post", "arguments": {"slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "slug": "texte", "tags": "texte", "title": "texte", "author": "texte", "content": "texte", "summary": "texte", "attribution": {}, "publishedAt": "texte", "readingTimeMinutes": "texte"}} - get_business_info≈ 592 tokens
Get Kolmo Construction company information: contact details, hours, service area, specializations, and tools.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_business_info", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"name": "texte", "email": "texte", "hours": "texte", "phone": "texte", "tools": {}, "rating": {}, "address": "texte", "founded": "texte", "license": "texte", "website": "texte", "attribution": {}, "serviceArea": []}} - get_common_plan_review_corrections≈ 322 tokens
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.
Paramètres, retour & exemple (3)
Paramètreszone· string · optionnel
e.g. NR, LR1limit· integer · optionnelsubtype· string · optionnel · adu-detached | adu-attached
Exemple d'appel{"name": "get_common_plan_review_corrections", "arguments": {"zone": "texte", "limit": 1, "subtype": "adu-detached"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"summary": "texte", "attribution": {}}} - get_estimate≈ 1424 tokens
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); 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)
Paramètres, retour & exemple (2)
Paramètresproject· object · requis
Project input fields — named per projectType in the tool description; allowed values in list_project_types.projectType· string · requis · interior-painting | exterior-painting | flooring | deck | windows | siding | fence | landscaping
The type of project
Exemple d'appel{"name": "get_estimate", "arguments": {"project": {}, "projectType": "interior-painting"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"excludes": [], "laborCost": 1, "lineItems": "texte", "totalCost": 1, "permitCost": 1, "attribution": {}, "projectType": "texte", "materialCost": 1, "pricingBasis": "texte", "calculatorUrl": "texte", "estimateRange": "texte", "contingencyCost": 1}} - get_financing_options≈ 388 tokens
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.
Paramètres, retour & exemple (2)
ParamètrescreditProfile· string · optionnel · excellent | good | fair
Approximate credit profile: excellent (750+), good (680-749), fair (620-679). Default: goodprojectBudget· number · requis
Estimated project cost in USD
Exemple d'appel{"name": "get_financing_options", "arguments": {"projectBudget": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"options": "texte", "getQuote": "texte", "disclaimer": "texte", "attribution": {}, "creditProfile": "texte", "projectBudget": "texte"}} - get_material_catalog≈ 396 tokens
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.
Paramètres, retour & exemple (4)
Paramètreslimit· integer · optionnel
Max results (default 25)offset· integer · optionnel
Pagination offset (default 0)search· string · optionnel
Filter by keyword in material name or descriptioncategory· string · optionnel
Filter by category: painting, flooring, decking, siding, windows, fencing, landscaping
Exemple d'appel{"name": "get_material_catalog", "arguments": {"limit": 1, "offset": 1, "search": "texte", "category": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "limit": 1, "total": 1, "offset": 1, "results": "texte", "attribution": {}}} - get_material_options≈ 414 tokens
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.
Paramètres, retour & exemple (1)
ParamètresprojectType· string · requis · interior-painting | exterior-painting | flooring | deck | windows | siding | fence | landscaping
The project type to list materials for
Exemple d'appel{"name": "get_material_options", "arguments": {"projectType": "interior-painting"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"options": "texte", "attribution": {}, "projectType": "texte"}} - get_my_quote≈ 255 tokens
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.
Paramètres, retour & exemple (1)
ParamètresquoteLink· string · requis
The person's kolmo.io/quotes/<id> link, as Kolmo sent it. Never guess one.
Exemple d'appel{"name": "get_my_quote", "arguments": {"quoteLink": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "total": 1, "status": "texte", "canAccept": true, "quoteNumber": "texte", "optionGroups": []}} - get_neighbor_permit_activity≈ 398 tokens
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.
Paramètres, retour & exemple (1)
Paramètresaddress· string · requis
Full street address in King, Pierce, or Snohomish County, WA
Exemple d'appel{"name": "get_neighbor_permit_activity", "arguments": {"address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"found": true, "activity": "texte", "disclaimer": "texte", "attribution": {}, "jurisdiction": "texte", "supportedJurisdictions": "texte"}} - get_neighborhood_project_activity≈ 382 tokens
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?"
Paramètres, retour & exemple (1)
Paramètresneighborhood· string · requis
Seattle neighborhood or city, e.g. "Ballard", "Capitol Hill", "Bellevue", "Queen Anne"
Exemple d'appel{"name": "get_neighborhood_project_activity", "arguments": {"neighborhood": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"message": "texte", "byCategory": "texte", "contactUrl": "texte", "attribution": {}, "neighborhood": "texte", "portfolioUrl": "texte", "projectsFound": 1, "recentExamples": "texte", "overallPortfolio": "texte"}} - get_payment_link≈ 190 tokens
Invoices for an accepted Kolmo quote, with amount, status and the Stripe page where the person pays. Never collect card or bank details.
Paramètres, retour & exemple (1)
ParamètresquoteLink· string · requis
The person's kolmo.io/quotes/<id> link, as Kolmo sent it. Never guess one.
Exemple d'appel{"name": "get_payment_link", "arguments": {"quoteLink": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"message": "texte", "invoices": []}} - get_permit_data_freshness≈ 490 tokens
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.
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionnel
Max snapshots to return (default 5, newest first)jurisdictionSlug· string · optionnel
Optional jurisdiction filter (e.g., "seattle", "bellevue"). When omitted, returns rollup across all jurisdictions.
Exemple d'appel{"name": "get_permit_data_freshness", "arguments": {"limit": 1, "jurisdictionSlug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"totals": "texte", "coverage": "texte", "pipeline": "texte", "publicView": "texte", "attribution": {}, "sourceHealth": "texte", "jurisdictions": "texte", "changeDetection": "texte", "recentSnapshots": "texte", "howToReadFailures": "texte"}} - get_permit_rule_details≈ 586 tokens
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.
Paramètres, retour & exemple (5)
Paramètreslimit· integer · optionnel
Max results (default 10 — rules are ~1K tokens each)address· string · optionnel
Full street address — when provided, each result row also includes `submittals_v2` from the unified resolver (per-item triggers, source citations, filler actor).keyword· string · optionnel
Keyword in project type, trigger, thresholds, or notes (e.g. "deck", "adu", "egress")jurisdiction· string · optionnel
Jurisdiction slug or display name (e.g. "seattle", "bellevue", "tacoma")onlyAuthoritative· boolean · optionnel
Default true: return only 'authoritative' and 'wa-baseline' rules, the two tiers Kolmo's city pages show. Kept for compatibility: no other tier is held, so false returns the same rules.
Exemple d'appel{"name": "get_permit_rule_details", "arguments": {"limit": 1, "address": "texte", "keyword": "texte", "jurisdiction": "texte", "onlyAuthoritative": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"parcel": "texte", "matched": 1, "results": "texte", "returned": 1, "disclaimer": "texte", "totalRules": 1, "attribution": {}, "authoritativeRules": 1, "jurisdictionsWithAuthoritativeCoverage": "texte"}} - get_permit_timeline≈ 390 tokens
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.
Paramètres, retour & exemple (4)
Paramètressubtype· string · optionnel · adu-detached | adu-attached | adu-detached-preapproved | adu-garage-conversionprojectType· string · requis · adu | addition | deck | basement | alteration | new-home | new-multifamily
new-multifamily: townhouses and other middle-housing units built as a setvaluationUsd· number · optionneljurisdictionSlug· string · optionnel
Exemple d'appel{"name": "get_permit_timeline", "arguments": {"projectType": "adu"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"summary": "texte", "attribution": {}}} - get_project≈ 282 tokens
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.
Paramètres, retour & exemple (1)
Paramètresslug· string · requis
The URL slug of the project
Exemple d'appel{"name": "get_project", "arguments": {"slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "slug": "texte", "title": "texte", "attribution": {}}} - get_project_roi≈ 431 tokens
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?"
Paramètres, retour & exemple (2)
ParamètresprojectType· string · optionnel
Type of project, e.g. "kitchen", "bathroom", "deck", "windows", "siding", "ADU", "basement". Omit to see all projects ranked by ROI.estimatedCost· number · optionnel
Your estimated project budget in USD. If provided, returns expected resale value added.
Exemple d'appel{"name": "get_project_roi", "arguments": {"projectType": "texte", "estimatedCost": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"market": "texte", "source": "texte", "results": "texte", "disclaimer": "texte", "attribution": {}, "neighborhood": "texte", "getAccurateQuote": "texte"}} - get_project_testimonials≈ 534 tokens
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.
Paramètres, retour & exemple (4)
Paramètreslimit· integer · optionnel
Max results (default 10)keyword· string · optionnel
Keyword to fuzzy-match against testimonial project name or content (e.g. "kitchen", "deck")minRating· integer · optionnel
Minimum star rating (1-5, default 1)projectSlug· string · optionnel
Project slug to match (e.g. "ballard-kitchen-remodel"). Falls back to title match.
Exemple d'appel{"name": "get_project_testimonials", "arguments": {"limit": 1, "keyword": "texte", "minRating": 1, "projectSlug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "total": 1, "results": [], "attribution": {}, "averageRating": 1, "filterApplied": {}}} - get_service≈ 298 tokens
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.
Paramètres, retour & exemple (1)
Paramètresslug· string · requis
The URL slug, e.g. "kitchen-remodeling"
Exemple d'appel{"name": "get_service", "arguments": {"slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "slug": "texte", "title": "texte", "attribution": {}, "description": "texte"}} - get_weather_window≈ 404 tokens
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.
Paramètres, retour & exemple (2)
Paramètresdays· integer · optionnel
Number of days to forecast (1-14, default 7)projectType· string · requis · exterior-painting | deck | roofing | landscaping | siding | fence | windows | interior
Type of project to check weather suitability for
Exemple d'appel{"name": "get_weather_window", "arguments": {"projectType": "exterior-painting"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"summary": "texte", "forecast": "texte", "location": "texte", "attribution": {}, "projectType": "texte", "forecastDays": 1, "requirements": "texte"}} - list_blog_posts≈ 450 tokens
List published blog posts about home remodeling, renovation costs, and construction tips. Filter by tag or author name.
Paramètres, retour & exemple (4)
Paramètrestag· string · optionnel
Filter posts by tag, e.g. "flooring", "deck", "painting"limit· integer · optionnel
Max posts to return (default 10)author· string · optionnel
Filter posts by author name, e.g. "Marcus Reid"offset· integer · optionnel
Pagination offset (default 0)
Exemple d'appel{"name": "list_blog_posts", "arguments": {"tag": "texte", "limit": 1, "author": "texte", "offset": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"limit": 1, "total": 1, "hubUrl": "texte", "offset": 1, "results": [], "attribution": {}}} - list_blog_tags_and_categories≈ 350 tokens
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.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_blog_tags_and_categories", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"tags": [], "usage": "texte", "categories": [], "totalPosts": 1, "attribution": {}}} - list_commercial_services≈ 615 tokens
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.
Paramètres, retour & exemple (4)
Paramètresslug· string · optionnel
One service, with its full descriptionlimit· integer · optionnel
Max results (default 50)offset· integer · optionnel
Pagination offset (default 0)category· string · optionnel
Filter: office, retail, industrial, hospitality, public
Exemple d'appel{"name": "list_commercial_services", "arguments": {"slug": "texte", "limit": 1, "offset": 1, "category": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"limit": 1, "total": 1, "hubUrl": "texte", "offset": 1, "results": [], "attribution": {}, "publicWorks": {}}} - list_permit_jurisdictions≈ 504 tokens
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.
Paramètres, retour & exemple (4)
Paramètresslug· string · optionnel
One jurisdiction by slug, e.g. "bellevue" or "mercer-island". Returns its full record.county· string · optionnel · King | Pierce | Snohomish
Filter by countydetail· boolean · optionnel
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· boolean · optionnel
If true, only return rows where portal_url is populated (verified from official source). Default false.
Exemple d'appel{"name": "list_permit_jurisdictions", "arguments": {"slug": "texte", "county": "King", "detail": true, "verifiedOnly": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"total": 1, "detail": true, "results": "texte", "attribution": {}}} - list_procurement_codes≈ 420 tokens
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.).
Paramètres, retour & exemple (1)
Paramètressystem· string · optionnel · all | naics | nigp | unspsc
Code system to return (default: all)
Exemple d'appel{"name": "list_procurement_codes", "arguments": {"system": "all"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"ubi": "texte", "uei": "texte", "nigp": "texte", "note": "texte", "naics": "texte", "entity": "texte", "unspsc": "texte", "attribution": {}, "certifications": {}}} - list_project_types≈ 291 tokens
List all 20 supported calculator project types with their required input fields and descriptions. Useful for discovery before calling get_estimate.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_project_types", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"attribution": {}, "projectTypes": {}}} - list_projects≈ 563 tokens
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).
Paramètres, retour & exemple (4)
Paramètreslimit· integer · optionnel
Max results (default 10)offset· integer · optionnel
Pagination offset (default 0)search· string · optionnel
Filter by keyword in project title, description, or locationcategory· string · optionnel
Filter. Residential: kitchen, bathroom, full-home, outdoor, garage, basement. Commercial: commercial, public-works.
Exemple d'appel{"name": "list_projects", "arguments": {"limit": 1, "offset": 1, "search": "texte", "category": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"limit": 1, "total": 1, "hubUrl": "texte", "offset": 1, "results": [], "attribution": {}}} - list_reviews≈ 459 tokens
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.
Paramètres, retour & exemple (4)
Paramètreslimit· integer · optionnel
Max results (default 12 — ~350 tokens per review)offset· integer · optionnel
Pagination offset (default 0)source· string · optionnel · all | google | testimonials
Source to query: all (default), google, testimonialsminRating· integer · optionnel
Minimum star rating to include (1-5, default 1)
Exemple d'appel{"name": "list_reviews", "arguments": {"limit": 1, "offset": 1, "source": "all", "minRating": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"limit": 1, "total": 1, "offset": 1, "results": "texte", "attribution": {}, "averageRating": 1, "googleProfile": "texte"}} - list_services≈ 411 tokens
List all residential remodeling services with slugs, descriptions, and page URLs. Use `search` to find by keyword.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnel
Max results (default 50)offset· integer · optionnel
Pagination offset (default 0)search· string · optionnel
Filter by keyword in service name or description
Exemple d'appel{"name": "list_services", "arguments": {"limit": 1, "offset": 1, "search": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"limit": 1, "total": 1, "hubUrl": "texte", "offset": 1, "results": [], "attribution": {}}} - lookup_parcel_by_address≈ 642 tokens
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). An overlay with offLotFt was mapped that many feet beside the lot, not on it; screen: true marks a county map read inside a city, a reason to ask, not the city's designation. Use for "what can be built at 123 Main St Seattle?" or before calling check_permit_requirements / estimate_permit_fee for a specific parcel.
Paramètres, retour & exemple (2)
Paramètresaddress· string · requis
Full street address (e.g., "1234 NE 65th St, Seattle, WA 98115"). Must be in King, Pierce, or Snohomish County, WA.forceRefresh· boolean · optionnel
Skip the 30-day cache and re-fetch from county GIS + overlay sources. Default false.
Exemple d'appel{"name": "lookup_parcel_by_address", "arguments": {"address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "found": true, "parcel": "texte", "warning": "texte", "nextSteps": [], "disclaimer": "texte", "attribution": {}, "addressResolution": "texte"}} - match_contractor_to_permit≈ 488 tokens
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.
Paramètres, retour & exemple (3)
ParamètresprojectType· string · requis
Canonical project type (kitchen, bathroom, basement, deck, fence, siding, windows, flooring, adu, roofing, hvac, electrical, plumbing, addition)contractorQuery· string · requis
Contractor license number, business name, UBI or phone numberjurisdictionSlug· string · requis
Permit jurisdiction slug (e.g. "seattle", "tacoma")
Exemple d'appel{"name": "match_contractor_to_permit", "arguments": {"projectType": "texte", "contractorQuery": "texte", "jurisdictionSlug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"match": true, "checks": "texte", "permit": "texte", "reason": "texte", "missing": "texte", "sourceUrl": "texte", "verifyUrl": "texte", "candidates": "texte", "contractor": "texte", "attribution": {}}} - parse_project_description≈ 495 tokens
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 an LLM with a constrained JSON schema.
Paramètres, retour & exemple (4)
ParamètrescityName· string · optionnel
City name (e.g., "Seattle", "Bellevue")zoningCode· string · optionnel
Zoning code from lookup_parcel_by_address (e.g., "NR2", "LR1")description· string · requis
Free-text project description (e.g., "I want to add a 200 sqft deck off my master bedroom on the second floor")jurisdictionSlug· string · optionnel
Jurisdiction slug from lookup_parcel_by_address (helps disambiguate region-specific terminology)
Exemple d'appel{"name": "parse_project_description", "arguments": {"description": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"parsed": "texte", "nextSteps": "texte", "attribution": {}, "validProjectTypes": []}} - request_walkthrough≈ 400 tokens
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.
Paramètres, retour & exemple (9)
Paramètresname· string · optionnelemail· string · optionnelnotes· string · optionnel
Access, parking, petsphone· string · optionnelscope· string · optionneldryRun· boolean · optionneladdress· string · optionnel
Property street address and cityquoteLink· string · optionnel
The person's kolmo.io/quotes/<id> link, as Kolmo sent it. Never guess one.proposedTimes· array · requis
ISO 8601 with offset
Exemple d'appel{"name": "request_walkthrough", "arguments": {"proposedTimes": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"status": "texte", "message": "texte", "reference": "texte", "proposedTimes": []}} - resolve_permit_submittals≈ 707 tokens
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.
Paramètres, retour & exemple (6)
Paramètresscope· string · requis · addition-alteration | adu-aadu | adu-dadu | adu-dadu-standard-plan | deck | demo-housing | garage | shed
Permit scope — the (project-type x work-class) identifier the provider catalogs byaddress· string · requis
Full street address — geocoded to a parcel and matched to a jurisdiction providerenvelopeChange· boolean · optionnel
Project alters the building envelope (windows, doors, siding, roof). Default false. Drives WSEC triggers.structuralChange· boolean · optionnel
Project involves a structural change (header, framing, lateral). Default false. Drives several triggers.totalFloorAreaSqft· number · optionnel
Total floor area in sqft. Used by SEPA threshold (>=12000) and other size-based triggers.projectValuationUsd· number · optionnel
Project valuation in USD
Exemple d'appel{"name": "resolve_permit_submittals", "arguments": {"scope": "addition-alteration", "address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"ok": true, "scope": "texte", "totals": "texte", "address": "texte", "parcelId": "texte", "applicable": "texte", "disclaimer": "texte", "permitType": "texte", "attribution": {}, "skippedCount": 1, "jurisdictionId": "texte", "jurisdictionFidelity": "texte"}} - respond_to_quote≈ 394 tokens
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.
Paramètres, retour & exemple (6)
Paramètresnotes· string · optionnelresponse· string · requis · accepted | declined | changes_requestedquoteLink· string · requis
The person's kolmo.io/quotes/<id> link, as Kolmo sent it. Never guess one.confirmedTotal· number · optionnel
Required to acceptpersonConfirmed· boolean · optionnel
True only after the person said yes. Required to accept or declineselectedOptions· object · optionnel
Exemple d'appel{"name": "respond_to_quote", "arguments": {"response": "accepted", "quoteLink": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"total": 1, "status": "texte", "message": "texte"}} - search_content≈ 510 tokens
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.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnel
Max results per type (default 5)query· string · requis
Search keyword or phrase, e.g. "deck Seattle", "kitchen cost", "permit"types· array · optionnel
Content types to include (default: all three)
Exemple d'appel{"name": "search_content", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": [], "query": "texte", "terms": [], "results": {}, "totalFound": 1, "attribution": {}, "resultCount": 1}} - submit_contact_request≈ 349 tokens
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.
Paramètres, retour & exemple (6)
Paramètresname· string · requis
Full nameemail· string · requis
Email addressphone· string · optionnel
Phone number (optional)dryRun· boolean · optionnel
If true, validate and preview without submitting (default false)message· string · requis
Project description or questionservice· string · optionnel
Service needed, e.g. "kitchen remodel"
Exemple d'appel{"name": "submit_contact_request", "arguments": {"name": "texte", "email": "texte", "message": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "dryRun": true, "message": "texte", "preview": "texte", "success": true, "reference": "texte"}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».