Skip to content

io.kolmo.www/kolmo-mcp-server

by www.kolmo.io · remote · no sign-in to list tools · v1.6.0 · published by io.kolmo.www

WA permit rules (city + state baseline, cited), parcel zoning, L&I checks, Seattle estimates & ROI

Deletes · 1Changes · 8

42 tools: 1 can delete or cancel things, 8 change things and 33 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http kolmo https://www.kolmo.io/mcp

Findings

Matches of fixed checks, with the text they matched.

3 info

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

42 tools

Deletes or cancels 1Claude Code: deny
  • respond_to_quoteAnswer a Kolmo quote for the person.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Changes things 8Claude Code: ask
  • answer_permit_questionGrounded permit Q&A for a specific Seattle-area address.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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?"

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • check_permit_requirementsCheck whether a residential construction project in King/Pierce/Snohomish counties requires a permit.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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`).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • check_service_area_coverageCheck whether Kolmo takes work in a given city, neighborhood, ZIP or address.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • estimate_permit_feeEstimate the permit fee for a residential project based on jurisdiction, project type, and project valuation.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • match_contractor_to_permitCross-reference a WA contractor's L&I license specialty against a permit's required specialties.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • parse_project_descriptionParse a homeowner's natural-language project description into structured permit-relevant fields: projectType (kitchen|bathroom|deck|adu|fence|...), areaSqft, heightClass, attached/…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • request_walkthroughRequest 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.No findings

    Why it is in this group

    • The name "request_walkthrough" says "request": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • submit_contact_requestSubmit a contact or quote request to Kolmo Construction on behalf of a user.No findings

    Why it is in this group

    • The name "submit_contact_request" says "submit": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 33Claude Code: allow
  • check_contractor_license_statusLook up any Washington State contractor's license, bond, and insurance status using public L&I data (updated daily).No findings

    Why it is in this group

    • The name "check_contractor_license_status" says "status": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_author_bioGet the biography, credentials, expertise areas, and recent articles for a Kolmo Construction blog author.1 finding

    Why it is in this group

    • The name "get_author_bio" says "get": a word for reading.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "Get the biography, credentials, expertise areas, and recent articles f..."

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_blog_postGet the full markdown content of a blog post by its slug.No findings

    Why it is in this group

    • The name "get_blog_post" says "get": a word for reading.
    Description, as the server wrote it
    Get the full markdown content of a blog post by its slug.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_business_infoGet Kolmo Construction company information: contact details, hours, service area, specializations, and tools.1 finding

    Why it is in this group

    • The name "get_business_info" says "get": a word for reading.

    Findings

    Description, as the server wrote it
    Get Kolmo Construction company information: contact details, hours, service area, specializations, and tools.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_common_plan_review_correctionsCorrections 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.No findings

    Why it is in this group

    • The name "get_common_plan_review_corrections" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_estimateSeattle cost estimate: range, material/labor split, days, line items.1 finding

    Why it is in this group

    • The name "get_estimate" says "get": a word for reading.

    Findings

    • Info

      The description is 3,252 characters long, over the 2,000 this check looks for.

      Matched text

      description ends: "...: get_material_options) gutters: items[{id,quantity}] (ids: get_material_options)"

      What this check looks for
    Description, as the server wrote it
    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)

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_financing_optionsGet home improvement financing options for a Seattle remodeling project.No findings

    Why it is in this group

    • The name "get_financing_options" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_material_catalogBrowse the full material catalog with pricing — flooring types, paint grades, decking materials, siding, windows, fencing, and more.No findings

    Why it is in this group

    • The name "get_material_catalog" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_material_optionsGet available material choices for a project type — flooring types, paint grades, decking materials, kitchen/bath/basement/ADU scope tiers, ADA modifications, etc.No findings

    Why it is in this group

    • The name "get_material_options" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_my_quoteRead the quote Kolmo sent the person: scope, line items, options, total, payment schedule, expiry and whether it can still be accepted.No findings

    Why it is in this group

    • The name "get_my_quote" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_neighbor_permit_activityAggregate permit activity within ~1500 ft of a Seattle-area parcel over the last 24 months.No findings

    Why it is in this group

    • The name "get_neighbor_permit_activity" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_neighborhood_project_activitySee what remodeling projects Kolmo Construction has completed in a specific Seattle neighborhood or city.No findings

    Why it is in this group

    • The name "get_neighborhood_project_activity" says "get": a word for reading.
    Description, as the server wrote it
    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?"

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_permit_data_freshnessSource-freshness telemetry for the permit catalog.No findings

    Why it is in this group

    • The name "get_permit_data_freshness" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_permit_rule_detailsEnumerate permit rules with full detail — timeline, fee model, inspection sequence, submittals, required contractor specialties.No findings

    Why it is in this group

    • The name "get_permit_rule_details" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_permit_timelineMeasured days from application to issue (median and 80th percentile), City vs applicant days, and review cycles, from the city's issued-permit records.No findings

    Why it is in this group

    • The name "get_permit_timeline" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_projectGet full details for a specific project by its slug, including before/after images and testimonial.No findings

    Why it is in this group

    • The name "get_project" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_project_roiGet the estimated return on investment (ROI) for a home remodeling project in the Seattle area.No findings

    Why it is in this group

    • The name "get_project_roi" says "get": a word for reading.
    Description, as the server wrote it
    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?"

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_project_testimonialsGet customer testimonials tied to a specific project (by slug or keyword) from the testimonials table.No findings

    Why it is in this group

    • The name "get_project_testimonials" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_serviceGet full details for a specific residential service by its slug.No findings

    Why it is in this group

    • The name "get_service" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_weather_windowCheck if upcoming weather in Seattle is suitable for an exterior construction project.No findings

    Why it is in this group

    • The name "get_weather_window" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_blog_postsList published blog posts about home remodeling, renovation costs, and construction tips.No findings

    Why it is in this group

    • The name "list_blog_posts" says "list": a word for reading.
    Description, as the server wrote it
    List published blog posts about home remodeling, renovation costs, and construction tips. Filter by tag or author name.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_blog_tags_and_categoriesEnumerate every tag and category used across Kolmo's published blog posts, with post counts.No findings

    Why it is in this group

    • The name "list_blog_tags_and_categories" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_commercial_servicesList commercial construction services with slugs and citable page URLs.No findings

    Why it is in this group

    • The name "list_commercial_services" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_permit_jurisdictionsList the jurisdictions in Kolmo's permit catalog (King, Pierce, Snohomish counties).No findings

    Why it is in this group

    • The name "list_permit_jurisdictions" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_procurement_codesList 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.No findings

    Why it is in this group

    • The name "list_procurement_codes" says "list": a word for reading.
    Description, as the server wrote it
    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.).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_project_typesList all 20 supported calculator project types with their required input fields and descriptions.No findings

    Why it is in this group

    • The name "list_project_types" says "list": a word for reading.
    Description, as the server wrote it
    List all 20 supported calculator project types with their required input fields and descriptions. Useful for discovery before calling get_estimate.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_projectsList Kolmo's completed projects — residential remodels AND commercial / public-works work — with photos and locations.No findings

    Why it is in this group

    • The name "list_projects" says "list": a word for reading.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_reviewsList customer reviews and testimonials for Kolmo Construction.No findings

    Why it is in this group

    • The name "list_reviews" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_servicesList all residential remodeling services with slugs, descriptions, and page URLs.No findings

    Why it is in this group

    • The name "list_services" says "list": a word for reading.
    Description, as the server wrote it
    List all residential remodeling services with slugs, descriptions, and page URLs. Use `search` to find by keyword.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • lookup_parcel_by_addressAddress-first parcel lookup powering the /permits experience.No findings

    Why it is in this group

    • The name "lookup_parcel_by_address" says "lookup": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • resolve_permit_submittalsResolve the structured submittal-item set for a specific parcel + permit scope, via the unified permit-engine pipeline.No findings

    Why it is in this group

    • The name "resolve_permit_submittals" says "resolve": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • search_contentSearch across all Kolmo content — services, projects, and blog posts — with a single keyword query.No findings

    Why it is in this group

    • The name "search_content" says "search": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.6.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http kolmo https://www.kolmo.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__kolmo__get_business_info",
      "mcp__kolmo__list_services",
      "mcp__kolmo__get_service",
      "mcp__kolmo__list_commercial_services",
      "mcp__kolmo__list_procurement_codes",
      "mcp__kolmo__list_projects",
      "mcp__kolmo__get_project",
      "mcp__kolmo__get_project_testimonials",
      "mcp__kolmo__list_blog_posts",
      "mcp__kolmo__get_blog_post",
      "mcp__kolmo__list_blog_tags_and_categories",
      "mcp__kolmo__list_project_types",
      "mcp__kolmo__get_material_options",
      "mcp__kolmo__get_estimate",
      "mcp__kolmo__list_reviews",
      "mcp__kolmo__get_permit_rule_details",
      "mcp__kolmo__resolve_permit_submittals",
      "mcp__kolmo__list_permit_jurisdictions",
      "mcp__kolmo__lookup_parcel_by_address",
      "mcp__kolmo__get_neighbor_permit_activity",
      "mcp__kolmo__get_permit_timeline",
      "mcp__kolmo__get_common_plan_review_corrections",
      "mcp__kolmo__get_permit_data_freshness",
      "mcp__kolmo__get_material_catalog",
      "mcp__kolmo__get_weather_window",
      "mcp__kolmo__get_neighborhood_project_activity",
      "mcp__kolmo__get_project_roi",
      "mcp__kolmo__check_contractor_license_status",
      "mcp__kolmo__get_author_bio",
      "mcp__kolmo__search_content",
      "mcp__kolmo__get_financing_options",
      "mcp__kolmo__get_my_quote",
      "mcp__kolmo__get_payment_link"
    ],
    "ask": [
      "mcp__kolmo__submit_contact_request",
      "mcp__kolmo__check_permit_requirements",
      "mcp__kolmo__match_contractor_to_permit",
      "mcp__kolmo__estimate_permit_fee",
      "mcp__kolmo__parse_project_description",
      "mcp__kolmo__answer_permit_question",
      "mcp__kolmo__check_service_area_coverage",
      "mcp__kolmo__request_walkthrough"
    ],
    "deny": [
      "mcp__kolmo__respond_to_quote"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as kolmo. Review it before you use it.