MCPサーバー

kolmo-mcp-server

io.kolmo.www/kolmo-mcp-server

このMCPでできること

Provides Washington construction permit guidance, fee estimates, contractor license checks, property-related activity, remodeling estimates, financing, and project ROI information.

answer_permit_question
Grounded permit Q&A
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?"
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['address', 'question'], 'properties': {'address': {'type': 'string', 'maxLength': 250, 'minLength': 3, 'description': 'Full street address in King, Pierce, or Snohomish County, WA'}, 'question': {'type': 'string', 'maxLength': 1000, 'minLength': 3, 'description': 'A single permit/zoning/setback/overlay question about this parcel'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['answered', 'answer', 'groundedOn', 'attribution'], 'properties': {'answer': {'type': 'string', 'description': 'Answer-first prose with the verdict in the opening clause and inline source links. Safe to quote.'}, 'answered': {'type': 'boolean', 'const': True}, 'groundedOn': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The jurisdiction sources the answer rests on. Cite these plus Kolmo.'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'parcelContext': {}}, 'additionalProperties': True}
check_contractor_license_status
WA contractor license status
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Contractor license number (e.g. "KOLMOL*753JS"), business name (e.g. "Kolmo LLC"), 9-digit UBI, or phone number'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['found', 'query'], 'properties': {'next': {'type': 'array', 'items': {'type': 'string'}}, 'note': {'type': 'string'}, 'found': {'type': 'boolean', 'description': 'false means L&I holds no matching record â\x80\x94 a real answer, not a lookup failure.'}, 'query': {'type': 'string'}, 'message': {'type': 'string'}, 'results': {}, 'verifyUrl': {'type': 'string'}, 'identified': {'type': 'boolean', 'description': 'true: the top results are one business. false: several businesses match, or only part of the name did â\x80\x94 do not report any result as the contractor asked about.'}, 'searchedBy': {'type': 'string', 'description': 'license-number, ubi, phone, trade-name or business-name'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'moreMatches': {'type': 'boolean'}}, 'additionalProperties': True}
check_permit_requirements
Permit requirements lookup
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, fee notes, inspection sequence, required submittals, and official source URL — preferring jurisdiction-verified rules. Use for "Do I need a permit to build a deck in Seattle?" or "What permits are required for a kitchen remodel in Bellevue?". Pass `address` to also receive the structured per-item SubmittalSet (`submittals_v2`) from the unified permit engine — Seattle is full SDCI fidelity, other 9 verified cities are wa-baseline-stub.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'facts': {'type': 'object', '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.', 'additionalProperties': {'type': ['number', 'boolean']}}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Max matching rules to return (default 25). Narrow with projectType/location before raising it.'}, 'address': {'type': 'string', 'description': 'Full street address â\x80\x94 when provided, the response includes `submittals_v2` from the unified resolver (per-item triggers, source citations, filler actor). Overrides `location` for jurisdiction routing.'}, 'location': {'type': 'string', 'description': 'City or jurisdiction slug, e.g. "Seattle", "Bellevue", "Tacoma", "king-county-unincorporated"'}, 'projectType': {'type': 'string', 'description': 'Project type â\x80\x94 canonical: kitchen, bathroom, basement, deck, fence, siding, windows, flooring, adu, roofing, hvac, electrical, plumbing, addition'}, 'guardRunLengthFt': {'type': 'number', 'description': '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': {'type': 'boolean', 'description': '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': {'type': 'boolean', 'description': 'True if the deck is part of an accessible route to a building entrance â\x80\x94 an independent permit trigger, separate from height.'}, 'deckHeightAboveGradeIn': {'type': 'number', 'description': 'Deck walking surface above grade, inches â\x80\x94 measured to the grade below at any point within 36 in of the outer edge.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'next': {'type': 'array', 'items': {'type': 'string'}}, 'total': {'type': 'number'}, 'parcel': {}, 'message': {'type': 'string'}, 'results': {}, 'routing': {}, 'coverage': {'description': 'Present on an unfiltered call: the jurisdictions and project types the catalog covers.'}, 'overlays': {}, 'returned': {'type': 'number'}, 'important': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'trustLevel': {'type': 'string', 'description': '"authoritative" or a LEGACY_LLM_SEED warning. Relay the warning if present.'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'recommendation': {'type': 'string'}, 'overlayDisclaimer': {'type': 'string'}, 'authoritativeRulesCount': {'type': 'number'}}, 'description': 'Either a rule set, or a documented coverage gap carrying `important` + `next`. A gap is never evidence that no permit is required.', 'additionalProperties': True}
check_service_area_coverage
Service-area coverage
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['location'], 'properties': {'location': {'type': 'string', 'description': 'City, neighborhood, ZIP or address to check, e.g. "Ballard", "Normandy Park", "98105", "Tacoma"'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['coverage', 'takesWork', 'serviceRegion', 'serviceCities', 'nearbyProjectCount', 'contactUrl', 'attribution'], 'properties': {'query': {}, 'verdict': {}, 'coverage': {'enum': ['primary', 'nearby', 'case_by_case', 'unconfirmed', 'out_of_area'], 'type': 'string'}, 'takesWork': {'type': 'boolean', 'description': 'False only when the place is outside Washington.'}, 'contactUrl': {'type': 'string'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'matchedCity': {}, 'serviceCities': {'type': 'array', 'items': {'type': 'string'}, 'description': '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': {'type': 'string'}, 'nearbyProjectCount': {'type': 'number'}, 'matchedNeighborhood': {}}, 'additionalProperties': True}
estimate_permit_fee
Permit fee estimate
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jurisdictionSlug', 'projectType', 'valuationUsd'], 'properties': {'projectType': {'enum': ['kitchen', 'bathroom', 'basement', 'deck', 'fence', 'siding', 'windows', 'flooring', 'adu', 'roofing', 'hvac', 'electrical', 'plumbing', 'addition'], 'type': 'string', 'description': 'Canonical project type'}, 'valuationUsd': {'type': 'number', 'minimum': 0, 'description': 'Project valuation in USD (materials + labor)'}, 'jurisdictionSlug': {'type': 'string', 'description': 'Jurisdiction slug, e.g. "seattle", "bellevue", "tacoma" (use list_permit_jurisdictions to discover)'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jurisdiction', 'projectType', 'attribution'], 'properties': {'breakdown': {}, 'sourceUrl': {}, 'disclaimer': {}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'permitClass': {}, 'projectType': {'type': 'string'}, 'jurisdiction': {'type': 'string'}, 'valuationUsd': {}, 'lastVerifiedAt': {'description': 'Verification date for the fee schedule. Relay it with the figure.'}, 'qualitativeFeeNotes': {}}, 'additionalProperties': True}
get_author_bio
Author profile
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['author'], 'properties': {'author': {'type': 'string', 'description': 'Author name or slug, e.g. "Marcus Reid", "marcus-reid", "Emily Chen", "emily-chen"'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['found'], 'properties': {'name': {}, 'note': {'type': 'string'}, 'slug': {}, 'found': {'type': 'boolean'}, 'query': {'type': 'string'}, 'source': {'type': 'string'}, 'expertise': {}, 'profileUrl': {'type': 'string'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'credentials': {}, 'totalArticles': {'type': 'number'}, 'recentArticles': {}, 'availableAuthors': {}}, 'additionalProperties': True}
get_blog_post
Blog post full text
Get the full markdown content of a blog post by its slug.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'The URL slug of the blog post'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'attribution'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': ['string', 'null']}, 'tags': {}, 'title': {'type': ['string', 'null']}, 'author': {'type': ['string', 'null']}, 'content': {'type': ['string', 'null'], 'description': 'Full article body. Quote and summarize freely; do not republish wholesale.'}, 'summary': {'type': ['string', 'null']}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'publishedAt': {}, 'readingTimeMinutes': {}}, 'additionalProperties': True}
get_business_info
Business info & credentials
Get Kolmo Construction company information: contact details, hours, service area, specializations, and tools.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'properties': {}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'license', 'phone', 'email', 'website', 'address', 'rating', 'serviceRegion', 'serviceArea', 'certifications', 'personnelQualifications', 'federalRegistration', 'notCertified', 'specializations', 'tools', 'attribution'], 'properties': {'name': {'type': 'string'}, 'email': {'type': 'string'}, 'hours': {}, 'phone': {'type': 'string'}, 'tools': {'type': 'object', 'additionalProperties': {}}, 'rating': {'type': 'object', 'required': ['source'], 'properties': {'value': {}, 'source': {'type': 'string'}, 'reviewCount': {}}, 'additionalProperties': True}, 'address': {'type': 'string'}, 'founded': {}, 'license': {'type': 'string'}, 'website': {'type': 'string'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'serviceArea': {'type': 'array', 'items': {'type': 'string'}, 'description': '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': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Set-asides Kolmo does NOT hold. Never infer one that appears here.'}, 'serviceRegion': {'type': 'string', 'description': 'Where Kolmo takes work. This decides coverage, not serviceArea.'}, 'certifications': {'type': 'object', 'additionalProperties': {}}, 'specializations': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Trades Kolmo performs. Not all of these have a service page â\x80\x94 check list_services before linking one.'}, 'federalRegistration': {'type': 'object', 'additionalProperties': {}}, 'personnelQualifications': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': True}
get_estimate
Seattle cost estimate
Seattle cost estimate: range, material/labor split, days, line items. ?=optional; (mat)=get_material_options ID (a unique close name also resolves; an ambiguous one lists candidates). interior-painting: rooms([{id,name,length,width(ft),height(6-30),paintCeiling,paintTrim,doorCount,windowCount,surfaceCondition(new-drywall|good-condition|poor-condition),trimComplexity(baseboards-only|simple-trim|complex-trim),wallTexture(smooth|light-texture|heavy-texture),roomEmpty}]); paintQuality(mat); paintFinish(flat|eggshell|satin|semi-gloss|gloss); includesPrimer; majorColorChange?(+colorChange{currentColor,targetColor}) exterior-painting: wallArea,trimArea(sqft); doorCount; paintQuality(mat); surfacePrepLevel(minimal|moderate|extensive); includesPrimer; stories?(1-3); colorChange?(+colorChangeData{currentColor,targetColor}) flooring: rooms([{id,name,length,width(ft)}]); flooringMaterial(mat); includesUnderlayment,includesBaseboard,includesRemoval,includesSubfloorPrep; underlaymentType?,baseboardType?(mat); baseboardLinearFeet?(default perimeter); removalType?(carpet|tile|hardwood); transitionCount? deck: deckType(new|existing); dimensions({length,width≤200,height≤30 ft}); deckingMaterial(mat: composite-decking…); framingMaterial(mat); includesRailing,includesStairs; railingMaterial?,finishType?(mat); railingLinearFeet?; stairSteps?(1-30); landingRequired?; deckShape?(rectangle|l-shape|angled-corners|multi-level); skirtingType?(none|lattice|matching-board); existingDeckWorkItems?(existing: ≥1 of stainOrSeal,inspection,replaceFlooring(+_area),replacePosts(+_count),addOrReplaceRailing(+_linearFeet),repairFraming(+_area)) windows: windows([{id,windowType(double-hung|single-hung|casement|slider|awning|picture|bay|bow or row id),width,height(12-120 in),quantity}]); qualityLevel(standard|premium|luxury → vinyl|fiberglass|wood-clad); includesTrimWork,includesRemoval,energyEfficient; trimMaterial?(mat) siding: wallArea(sqft); sidingMaterial(mat); homeHeight(single-story|two-story|three-story); includesInsulation,includesRemoval,soffit; insulationType?(mat); existingSidingType?; trimLinearFeet; soffitLinearFeet?(with soffit) fence: linearFeet; fenceMaterial(mat); height(3-8 ft); gateCount; gateWidth?(ft); style?; terrain(flat|sloped|mixed); includesRemoval,concreteFootings landscaping: yardArea(sqft); includesIrrigation,includesSod,includesMulch,includesSitePrep; irrigationType?; irrigationZones?(with irrigation); sodSquareFeet?(with sod); mulchSquareFeet?(default yardArea); plants?([{id,plantType,quantity,size(small|medium|large)}]); hardscapeFeatures?([{id,featureType,squareFeet,material}]) kitchen: kitchenSize(40-600 sqft); scope(cosmetic|standard|full-gut); cabinets(keep|paint|reface|prefab|semi-custom|custom; new cabinets are never a cosmetic job: priced at standard scope at least); countertop(keep|laminate|butcher-block|quartz|granite|marble); appliances(keep|budget|mid-range|premium); flooring(keep|lvp|tile|hardwood); backsplash?,plumbingRelocation?,electricalUpgrade?,island?,lighting?; wallRemoval?(none|non-bearing|load-bearing; a load-bearing wall includes the beam); gasLine?,rangeHood?(vented outside) bathroom: bathroomType(half-bath|full-bath|primary-bath|accessible; a half bath that gets a shower or tub, or a shower door, seat or hand shower, is priced as a full bath); bathroomSize(20-300 sqft); scope(cosmetic|standard|full-gut; in cosmetic scope a new tub or shower or moved plumbing adds a plumbing permit line, and heated floors or new lighting an electrical permit line); showerTub(keep|tub-to-shower|walk-in-shower|tub-replacement|freestanding-tub); vanity(keep|budget|mid-range|premium); tileWork(none|floor-only|floor-and-shower|full-tile; heated floors are priced with floor tile at least; a half bath has no shower walls); showerWalls?(tile|panels; with tub-to-shower or walk-in-shower, panels replace shower wall tile); heatedFloors?,newLighting?,ventilation?,plumbingRelocation?,glassDoor?,showerSeat?,handShower?; grabBars?(0-6) basement: basementSize(150-3000 sqft); scope(open-rec-room|standard-finish|full-suite); ceilingHeight(under-7ft|7-to-8ft|over-8ft); moistureCondition(dry|minor-dampness|active-water); egress(has-egress|needs-egress|not-required); bathroom(none|half-bath|full-bath); kitchenette(none|wet-bar|full-kitchenette); bedroomCount?; flooring(lvp|carpet|polished-concrete|tile); insulation(existing|walls-only|walls-and-ceiling); hvac(extend-existing|mini-split|none-needed); electricalSubpanel?,homeAgePre1978? adu: type(dadu|aadu|basement-conversion|garage-conversion); sizeSqft(200-1200, dadu ≤1000); finishTier(builder|standard|premium); dadu only: foundation?(slab|crawl|stem-wall),sitework?(minimal|standard|heavy),utilityRunFeet?,preApprovedPlan?; treeRemovalCount?; homeAgePre1978?(not dadu) ada: projectScope(single-room|whole-home|bathroom-specific); modifications({grabBars,walkInShower,widerDoorways,ramp,nonSlipFlooring,leverHandles,raisedToilet,rollUnderSink,accessibleCounters,stairLift}, ≥1 true); currentCondition(minor|moderate|major); homeStories?(1-3); 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)
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['projectType', 'project'], 'properties': {'project': {'type': 'object', 'description': 'Project input fields â\x80\x94 see tool description for required fields per projectType.', 'additionalProperties': {}}, 'projectType': {'enum': ['interior-painting', 'exterior-painting', 'flooring', 'deck', 'windows', 'siding', 'fence', 'landscaping', 'kitchen', 'bathroom', 'basement', 'adu', 'ada', 'electrical', 'plumbing', 'garage-doors', 'doors', 'concrete', 'insulation', 'gutters'], 'type': 'string', 'description': 'The type of project'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['projectType', 'totalCost', 'materialCost', 'laborCost', 'contingencyGuidance', 'excludes', 'calculatorUrl', 'getAccurateQuote', 'attribution'], 'properties': {'excludes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Scope NOT priced here. Relay alongside any figure.'}, 'laborCost': {'type': 'number'}, 'lineItems': {}, 'totalCost': {'type': 'number', 'description': 'Point figure. Relay estimateRange instead â\x80\x94 a single number reads as a quote.'}, 'permitCost': {'type': 'number', 'description': 'Present on deck, kitchen, bathroom, basement, adu and ada. Already inside totalCost.'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'projectType': {'type': 'string'}, 'materialCost': {'type': 'number'}, 'pricingBasis': {}, 'calculatorUrl': {'type': 'string'}, 'estimateRange': {'description': 'Planning range for Seattle-area work. This is what to relay, with its qualifier attached.'}, 'contingencyCost': {'type': 'number', 'description': 'Present on basement and adu. When set, a contingency is ALREADY in totalCost â\x80\x94 do not add another.'}, 'getAccurateQuote': {'type': 'string'}, 'timeEstimateDays': {}, 'contingencyGuidance': {'type': 'string'}}, 'additionalProperties': True}
get_financing_options
Home-improvement financing
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['projectBudget'], 'properties': {'creditProfile': {'enum': ['excellent', 'good', 'fair'], 'type': 'string', 'description': 'Approximate credit profile: excellent (750+), good (680-749), fair (620-679). Default: good'}, 'projectBudget': {'type': 'number', 'minimum': 1000, 'description': 'Estimated project cost in USD'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['disclaimer', 'getQuote', 'attribution'], 'properties': {'options': {}, 'getQuote': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'creditProfile': {}, 'projectBudget': {}}, 'additionalProperties': True}
get_material_catalog
Material catalog
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Max results (default 25)'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Pagination offset (default 0)'}, 'search': {'type': 'string', 'description': 'Filter by keyword in material name or description'}, 'category': {'type': 'string', 'description': 'Filter by category: painting, flooring, decking, siding, windows, fencing, landscaping'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['total', 'offset', 'limit', 'note', 'attribution'], 'properties': {'note': {'type': 'string'}, 'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'results': {}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}}, 'additionalProperties': True}
get_material_options
Material options by project type
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['projectType'], 'properties': {'projectType': {'enum': ['interior-painting', 'exterior-painting', 'flooring', 'deck', 'windows', 'siding', 'fence', 'landscaping', 'kitchen', 'bathroom', 'basement', 'adu', 'ada', 'electrical', 'plumbing', 'garage-doors', 'doors', 'concrete', 'insulation', 'gutters'], 'type': 'string', 'description': 'The project type to list materials for'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['projectType', 'attribution'], 'properties': {'options': {'description': 'Shape varies by project type â\x80\x94 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': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'projectType': {'type': 'string'}}, 'additionalProperties': True}
get_neighborhood_project_activity
Kolmo work in a neighborhood
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?"
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['neighborhood'], 'properties': {'neighborhood': {'type': 'string', 'description': 'Seattle neighborhood or city, e.g. "Ballard", "Capitol Hill", "Bellevue", "Queen Anne"'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['projectsFound', 'message'], 'properties': {'message': {'type': 'string'}, 'byCategory': {}, 'contactUrl': {'type': 'string'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'neighborhood': {}, 'portfolioUrl': {'type': 'string'}, 'projectsFound': {'type': 'number'}, 'recentExamples': {}, 'overallPortfolio': {}}, 'additionalProperties': True}
get_neighbor_permit_activity
Neighborhood permit activity
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['address'], 'properties': {'address': {'type': 'string', 'maxLength': 250, 'minLength': 3, 'description': 'Full street address in King, Pierce, or Snohomish County, WA'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['found', 'disclaimer', 'attribution'], 'properties': {'found': {'type': 'boolean', 'const': True}, 'activity': {}, 'disclaimer': {'type': 'string'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'jurisdiction': {}, 'supportedJurisdictions': {}}, 'additionalProperties': True}
get_permit_data_freshness
Permit source freshness
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Max snapshots to return (default 5, newest first)'}, 'jurisdictionSlug': {'type': 'string', 'description': 'Optional jurisdiction filter (e.g., "seattle", "bellevue"). When omitted, returns rollup across all jurisdictions.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['pipeline', 'publicView', 'attribution'], 'properties': {'totals': {}, 'coverage': {}, 'pipeline': {'type': 'string'}, 'publicView': {'type': 'string'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'sourceHealth': {}, 'jurisdictions': {}, 'changeDetection': {}, 'recentSnapshots': {}, 'howToReadFailures': {}}, 'additionalProperties': True}
get_permit_rule_details
Permit rule detail
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Max results (default 10 â\x80\x94 rules are ~1K tokens each)'}, 'address': {'type': 'string', 'description': 'Full street address â\x80\x94 when provided, each result row also includes `submittals_v2` from the unified resolver (per-item triggers, source citations, filler actor).'}, 'keyword': {'type': 'string', 'description': 'Keyword in project type, trigger, thresholds, or notes (e.g. "deck", "adu", "egress")'}, 'jurisdiction': {'type': 'string', 'description': 'Jurisdiction slug or display name (e.g. "seattle", "bellevue", "tacoma")'}, 'onlyAuthoritative': {'type': 'boolean', 'description': "Default true: return only 'authoritative' and 'wa-baseline' rules. Set false to also return every other tier, including 'web-fetched' rows â\x80\x94 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."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['totalRules', 'authoritativeRules', 'matched', 'returned', 'disclaimer', 'attribution'], 'properties': {'parcel': {}, 'matched': {'type': 'number'}, 'results': {}, 'returned': {'type': 'number'}, 'disclaimer': {'type': 'string'}, 'totalRules': {'type': 'number'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'authoritativeRules': {'type': 'number'}, 'jurisdictionsWithAuthoritativeCoverage': {}}, 'additionalProperties': True}
get_project
Project case study
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'The URL slug of the project'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'attribution'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': ['string', 'null']}, 'title': {'type': ['string', 'null']}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}}, 'additionalProperties': True}
get_project_roi
Renovation ROI
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?"
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'projectType': {'type': 'string', 'description': 'Type of project, e.g. "kitchen", "bathroom", "deck", "windows", "siding", "ADU", "basement". Omit to see all projects ranked by ROI.'}, 'estimatedCost': {'type': 'number', 'description': 'Your estimated project budget in USD. If provided, returns expected resale value added.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['market', 'source', 'disclaimer', 'getAccurateQuote', 'attribution'], 'properties': {'market': {'type': 'string'}, 'source': {'type': 'string', 'description': 'Third-party dataset. Cite it alongside Kolmo.'}, 'results': {}, 'disclaimer': {'type': 'string'}, 'attribution': {'type': 'object', 'required': ['citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'neighborhood': {}, 'getAccurateQuote': {'type': 'string'}}, 'additionalProperties': True}
get_project_testimonials
Project testimonials
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Max results (default 10)'}, 'keyword': {'type': 'string', 'description': 'Keyword to fuzzy-match against testimonial project name or content (e.g. "kitchen", "deck")'}, 'minRating': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Minimum star rating (1-5, default 1)'}, 'projectSlug': {'type': 'string', 'description': 'Project slug to match (e.g. "ballard-kitchen-remodel"). Falls back to title match.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['total', 'averageRating', 'filterApplied', 'results', 'note', 'attribution'], 'properties': {'note': {'type': 'string'}, 'total': {'type': 'number'}, 'results': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {}, 'name': {'type': ['string', 'null']}, 'rating': {}, 'content': {'type': ['string', 'null']}, 'project': {'type': ['string', 'null']}}, 'additionalProperties': True}}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'averageRating': {'type': ['number', 'null']}, 'filterApplied': {'type': 'object', 'required': ['minRating'], 'properties': {'keyword': {'type': 'string'}, 'minRating': {'type': 'number'}, 'projectSlug': {'type': 'string'}}, 'additionalProperties': True}}, 'additionalProperties': True}
get_service
Residential service detail
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'The URL slug, e.g. "kitchen-remodeling"'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'attribution'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': ['string', 'null']}, 'title': {'type': ['string', 'null']}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'description': {'type': ['string', 'null']}}, 'additionalProperties': True}
get_weather_window
Exterior-work weather window
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['projectType'], 'properties': {'days': {'type': 'integer', 'maximum': 14, 'minimum': 1, 'description': 'Number of days to forecast (1-14, default 7)'}, 'projectType': {'enum': ['exterior-painting', 'deck', 'roofing', 'landscaping', 'siding', 'fence', 'windows', 'interior'], 'type': 'string', 'description': 'Type of project to check weather suitability for'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['location', 'forecastDays', 'attribution'], 'properties': {'summary': {}, 'forecast': {}, 'location': {'type': 'string'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'projectType': {}, 'forecastDays': {'type': 'number'}, 'requirements': {}}, 'additionalProperties': True}
list_blog_posts
Blog index
List published blog posts about home remodeling, renovation costs, and construction tips. Filter by tag or author name.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'tag': {'type': 'string', 'description': 'Filter posts by tag, e.g. "flooring", "deck", "painting"'}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Max posts to return (default 10)'}, 'author': {'type': 'string', 'description': 'Filter posts by author name, e.g. "Marcus Reid"'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Pagination offset (default 0)'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['total', 'offset', 'limit', 'results', 'hubUrl', 'attribution'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'hubUrl': {'type': 'string'}, 'offset': {'type': 'number'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': ['string', 'null']}, 'tags': {}, 'title': {'type': ['string', 'null']}, 'author': {'type': ['string', 'null']}, 'summary': {'type': ['string', 'null']}, 'publishedAt': {}, 'readingTimeMinutes': {}}, 'additionalProperties': True}}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}}, 'additionalProperties': True}
list_blog_tags_and_categories
Blog topic coverage
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['totalPosts', 'tags', 'categories', 'usage', 'attribution'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'count'], 'properties': {'name': {'type': 'string'}, 'count': {'type': 'number'}}, 'additionalProperties': True}}, 'usage': {'type': 'string'}, 'categories': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'count'], 'properties': {'name': {'type': 'string'}, 'count': {'type': 'number'}}, 'additionalProperties': True}}, 'totalPosts': {'type': 'number'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}}, 'additionalProperties': True}
list_commercial_services
Commercial & public-works services
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).
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Max results (default 50)'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Pagination offset (default 0)'}, 'category': {'type': 'string', 'description': 'Filter: office, retail, industrial, hospitality, public'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['total', 'offset', 'limit', 'results', 'hubUrl', 'publicWorks', 'attribution'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'hubUrl': {'type': 'string'}, 'offset': {'type': 'number'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': ['string', 'null']}, 'slug': {'type': ['string', 'null']}, 'category': {'type': ['string', 'null']}, 'features': {}, 'description': {'type': ['string', 'null']}, 'fullDescription': {'type': ['string', 'null']}}, 'additionalProperties': True}}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'publicWorks': {'type': 'object', 'required': ['note', 'certifications', 'mrscSmallWorksRoster', 'verifyUrl'], 'properties': {'note': {'type': 'string'}, 'verifyUrl': {'type': 'string'}, 'certifications': {'type': 'array', 'items': {'type': 'string'}}, 'mrscSmallWorksRoster': {'type': 'string'}}, 'additionalProperties': True}}, 'additionalProperties': True}
list_permit_jurisdictions
Permit jurisdiction coverage
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'slug': {'type': 'string', 'description': 'One jurisdiction by slug, e.g. "bellevue" or "mercer-island". Returns its full record.'}, 'county': {'enum': ['King', 'Pierce', 'Snohomish'], 'type': 'string', 'description': 'Filter by county'}, 'detail': {'type': 'boolean', 'description': 'If true, every row carries the full record. Default false (compact rows). The full catalogue in detail is ~9x larger â\x80\x94 prefer `slug` when you need one city.'}, 'verifiedOnly': {'type': 'boolean', 'description': 'If true, only return rows where portal_url is populated (verified from official source). Default false.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['total', 'detail', 'attribution'], 'properties': {'total': {'type': 'number'}, 'detail': {'type': 'boolean'}, 'results': {}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}}, 'additionalProperties': True}
list_procurement_codes
Vendor procurement codes
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.).
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'system': {'enum': ['all', 'naics', 'nigp', 'unspsc'], 'type': 'string', 'description': 'Code system to return (default: all)'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['entity', 'uei', 'ubi', 'note', 'certifications', 'attribution'], 'properties': {'ubi': {'type': ['string', 'null']}, 'uei': {'type': ['string', 'null']}, 'nigp': {}, 'note': {'type': 'string'}, 'naics': {}, 'entity': {'type': 'string'}, 'unspsc': {}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'certifications': {'type': 'object', 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': True}
list_projects
Completed project portfolio
List Kolmo's completed projects — residential remodels AND commercial / public-works work — with photos and locations. Filter by category or keyword. Pass category "commercial" or "public-works" for the commercial portfolio (tenant improvements, retail and pharmacy fit-outs, municipal and government facility work, ADA remediation, warehouse and industrial renovation).
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Max results (default 20)'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Pagination offset (default 0)'}, 'search': {'type': 'string', 'description': 'Filter by keyword in project title, description, or location'}, 'category': {'type': 'string', 'description': 'Filter. Residential: kitchen, bathroom, full-home, outdoor, garage, basement. Commercial: commercial, public-works.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['total', 'offset', 'limit', 'results', 'hubUrl', 'attribution'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'hubUrl': {'type': 'string'}, 'offset': {'type': 'number'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': ['string', 'null']}, 'title': {'type': ['string', 'null']}, 'category': {'type': ['string', 'null']}, 'location': {'type': ['string', 'null']}, 'imageAfter': {'type': ['string', 'null']}, 'completedAt': {}, 'description': {'type': ['string', 'null']}, 'imageBefore': {'type': ['string', 'null']}}, 'additionalProperties': True}}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}}, 'additionalProperties': True}
list_project_types
Calculator project types
List all 20 supported calculator project types with their required input fields and descriptions. Useful for discovery before calling get_estimate.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['projectTypes', 'attribution'], 'properties': {'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'projectTypes': {'type': 'object', 'additionalProperties': {'type': 'object', 'required': ['description', 'requiredFields'], 'properties': {'description': {'type': 'string'}, 'requiredFields': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}}}, 'additionalProperties': True}
list_reviews
Customer reviews
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Max results (default 12 â\x80\x94 ~350 tokens per review)'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Pagination offset (default 0)'}, 'source': {'enum': ['all', 'google', 'testimonials'], 'type': 'string', 'description': 'Source to query: all (default), google, testimonials'}, 'minRating': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Minimum star rating to include (1-5, default 1)'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['total', 'offset', 'limit', 'averageRating', 'attribution'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'results': {}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'averageRating': {'type': ['number', 'null']}, 'googleProfile': {}}, 'additionalProperties': True}
list_services
Residential service catalog
List all residential remodeling services with slugs, descriptions, and page URLs. Use `search` to find by keyword.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Max results (default 50)'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Pagination offset (default 0)'}, 'search': {'type': 'string', 'description': 'Filter by keyword in service name or description'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['total', 'offset', 'limit', 'results', 'hubUrl', 'attribution'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'hubUrl': {'type': 'string'}, 'offset': {'type': 'number'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': ['string', 'null']}, 'slug': {'type': ['string', 'null']}, 'category': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}}, 'additionalProperties': True}}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}}, 'additionalProperties': True}
lookup_parcel_by_address
Parcel, zoning & overlay lookup
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['address'], 'properties': {'address': {'type': 'string', 'maxLength': 250, 'minLength': 3, 'description': 'Full street address (e.g., "1234 NE 65th St, Seattle, WA 98115"). Must be in King, Pierce, or Snohomish County, WA.'}, 'forceRefresh': {'type': 'boolean', 'description': 'Skip the 30-day cache and re-fetch from county GIS + overlay sources. Default false.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['found', 'warning', 'note', 'nextSteps', 'disclaimer', 'attribution'], 'properties': {'note': {'type': ['string', 'null'], '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.'}, 'found': {'type': 'boolean', 'const': True}, 'parcel': {}, 'warning': {'type': ['string', 'null'], 'description': 'Set when the address snapped to a nearby parcel. Confirm with the user before relying on the result.'}, 'nextSteps': {'type': 'array', 'items': {'type': 'string'}}, 'disclaimer': {'type': 'string'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'addressResolution': {}}, 'additionalProperties': True}
match_contractor_to_permit
Contractor-to-permit specialty match
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contractorQuery', 'jurisdictionSlug', 'projectType'], 'properties': {'projectType': {'type': 'string', 'description': 'Canonical project type (kitchen, bathroom, basement, deck, fence, siding, windows, flooring, adu, roofing, hvac, electrical, plumbing, addition)'}, 'contractorQuery': {'type': 'string', 'description': 'Contractor license number, business name, UBI or phone number'}, 'jurisdictionSlug': {'type': 'string', 'description': 'Permit jurisdiction slug (e.g. "seattle", "tacoma")'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['match'], 'properties': {'match': {'type': ['boolean', 'null'], 'description': 'null: no single contractor could be identified from contractorQuery, so no comparison was made â\x80\x94 not a finding either way.'}, 'checks': {}, 'permit': {}, 'reason': {'type': ['string', 'null']}, 'missing': {}, 'sourceUrl': {}, 'verifyUrl': {'type': 'string'}, 'candidates': {}, 'contractor': {}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}}, 'additionalProperties': True}
parse_project_description
Natural-language project parser
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.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['description'], 'properties': {'cityName': {'type': 'string', 'description': 'City name (e.g., "Seattle", "Bellevue")'}, 'zoningCode': {'type': 'string', 'description': 'Zoning code from lookup_parcel_by_address (e.g., "NR2", "LR1")'}, 'description': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'Free-text project description (e.g., "I want to add a 200 sqft deck off my master bedroom on the second floor")'}, 'jurisdictionSlug': {'type': 'string', 'description': 'Jurisdiction slug from lookup_parcel_by_address (helps disambiguate region-specific terminology)'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['validProjectTypes', 'attribution'], 'properties': {'parsed': {}, 'nextSteps': {}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'validProjectTypes': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}
resolve_permit_submittals
Permit submittal checklist
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. Output fidelity per jurisdiction: Seattle is "full" (each item cites the SDCI Tip, code section or City page it rests on; some items describe what the source requires rather than quoting it); the other 9 verified cities are "wa-baseline-stub" until their detail backfill lands. Unverified jurisdictions return no-spec.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['address', 'scope'], 'properties': {'scope': {'enum': ['addition-alteration', 'adu-aadu', 'adu-dadu', 'adu-dadu-standard-plan', 'deck', 'demo-housing', 'garage', 'shed', 'reroof', 'fence', 'retaining-wall', 'kitchen-remodel', 'bathroom-remodel', 'window-replacement', 'siding', 'mechanical', 'sf-new-construction', 'tu-new-construction'], 'type': 'string', 'description': 'Permit scope â\x80\x94 the (project-type x work-class) identifier the provider catalogs by'}, 'address': {'type': 'string', 'maxLength': 250, 'minLength': 3, 'description': 'Full street address â\x80\x94 geocoded to a parcel and matched to a jurisdiction provider'}, 'envelopeChange': {'type': 'boolean', 'description': 'Project alters the building envelope (windows, doors, siding, roof). Default false. Drives WSEC triggers.'}, 'structuralChange': {'type': 'boolean', 'description': 'Project involves a structural change (header, framing, lateral). Default false. Drives several triggers.'}, 'totalFloorAreaSqft': {'type': 'number', 'description': 'Total floor area in sqft. Used by SEPA threshold (>=12000) and other size-based triggers.'}, 'projectValuationUsd': {'type': 'number', 'description': 'Project valuation in USD'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'jurisdictionId', 'scope', 'skippedCount', 'attribution'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'scope': {'type': 'string'}, 'totals': {}, 'address': {}, 'parcelId': {}, 'applicable': {}, 'disclaimer': {}, 'permitType': {}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'skippedCount': {'type': 'number'}, 'jurisdictionId': {'type': 'string'}, 'jurisdictionFidelity': {}}, 'additionalProperties': True}
search_content
Unified content search
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.
読み取り専用 冪等
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 20, 'minimum': 1, 'description': 'Max results per type (default 5)'}, 'query': {'type': 'string', 'minLength': 1, 'description': 'Search keyword or phrase, e.g. "deck Seattle", "kitchen cost", "permit"'}, 'types': {'type': 'array', 'items': {'enum': ['services', 'projects', 'blog'], 'type': 'string'}, 'description': 'Content types to include (default: all three)'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query', 'terms', 'resultCount', 'totalFound', 'results', 'attribution'], 'properties': {'hint': {'type': 'string'}, 'next': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present only on a zero-result search.'}, 'query': {'type': 'string'}, 'terms': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The query after tokenizing. Matching is per-term, not whole-string.'}, 'results': {'type': 'object', 'properties': {'blog': {}, 'projects': {}, 'services': {}}, 'additionalProperties': True}, 'totalFound': {'type': 'number', 'description': 'Alias of resultCount, kept for existing callers.'}, 'attribution': {'type': 'object', 'required': ['sourceUrl', 'citeAs'], 'properties': {'citeAs': {'type': 'string', 'description': 'Ready-made citation line. Use verbatim.'}, 'sourceUrl': {'type': 'string', 'description': 'The specific page these facts render on. Link this, not the site root.'}, 'primarySource': {'type': 'string', 'description': 'Present when Kolmo verified but does not author the fact â\x80\x94 cite both.'}}, 'additionalProperties': True}, 'resultCount': {'type': 'number'}}, 'additionalProperties': True}
submit_contact_request
Submit a quote request
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.
外部アクセスあり
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'email', 'message'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'Full name'}, 'email': {'type': 'string', 'format': 'email', 'description': 'Email address'}, 'phone': {'type': 'string', 'description': 'Phone number (optional)'}, 'dryRun': {'type': 'boolean', 'description': 'If true, validate and preview without submitting (default false)'}, 'message': {'type': 'string', 'minLength': 10, 'description': 'Project description or question'}, 'service': {'type': 'string', 'description': 'Service needed, e.g. "kitchen remodel"'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'note': {'type': 'string'}, 'dryRun': {'type': 'boolean', 'description': 'True when this was a preview â\x80\x94 nothing was submitted.'}, 'message': {'type': 'string'}, 'preview': {}, 'success': {'type': 'boolean'}, 'reference': {'type': 'string', 'description': 'Opaque lead reference. Give it to the user; it is how Kolmo locates the request.'}}, 'additionalProperties': True}
変更
get_project_roi
2026年9月27日2:50
変更
check_permit_requirements
2026年9月27日2:50
変更
get_estimate
2026年9月27日2:50
変更
lookup_parcel_by_address
2026年9月25日2:59
変更
resolve_permit_submittals
2026年9月25日2:59
変更
check_contractor_license_status
2026年9月23日2:50
変更
match_contractor_to_permit
2026年9月23日2:50
追加
get_financing_options
2026年9月17日12:53
追加
search_content
2026年9月17日12:53
追加
get_author_bio
2026年9月17日12:53
追加
check_contractor_license_status
2026年9月17日12:53
追加
get_project_roi
2026年9月17日12:53
追加
check_service_area_coverage
2026年9月17日12:53
追加
get_neighborhood_project_activity
2026年9月17日12:53
追加
get_weather_window
2026年9月17日12:53
追加
get_material_catalog
2026年9月17日12:53
追加
get_permit_data_freshness
2026年9月17日12:53
追加
get_neighbor_permit_activity
2026年9月17日12:53
追加
answer_permit_question
2026年9月17日12:53
追加
parse_project_description
2026年9月17日12:53
追加
lookup_parcel_by_address
2026年9月17日12:53
追加
list_permit_jurisdictions
2026年9月17日12:53
追加
resolve_permit_submittals
2026年9月17日12:53
追加
estimate_permit_fee
2026年9月17日12:53
追加
match_contractor_to_permit
2026年9月17日12:53
追加
get_permit_rule_details
2026年9月17日12:53
追加
check_permit_requirements
2026年9月17日12:53
追加
list_reviews
2026年9月17日12:53
追加
get_estimate
2026年9月17日12:53
追加
get_material_options
2026年9月17日12:53