Koskamo

DwellQuote MCP

An MCP server that allows AI agents to compare homeowners and landlord insurance quotes from multiple carriers for California properties. The agent can start a quote, retrieve and submit property details, and select a quote, though the final purchase verification must be completed by the consumer on the website.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

DwellQuote MCP logo, by DwellQuoteVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by DwellQuote
MCP endpoint (Streamable HTTP)
https://www.dwellquote.com/mcp
Vendor documentation

What you can do with it

  • Compare homeowners insurance quotes from multiple carriers
  • Retrieve property details for insurance estimation
  • Submit property details to generate quotes
  • Select a preferred insurance quote

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
dwellquote 1.0.0
MCP protocol
2025-06-18
Tools
5 advertised
Resources
0 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "logging": {},
  "prompts": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

DwellQuote compares home insurance quotes from multiple carriers for California properties. Flow: start_quote, then get_property_details until ready, confirm the facts with the user, submit_property_details, then get_quotes until complete, and select_quote when the user picks a rate. Present rates exactly as returned and never give coverage advice.

Tools

5 advertised

start_quote — Start a home insurance quote
Advertised by the server during the last successful anonymous check.
Open-world

Start a homeowners or landlord insurance quote for a property in California. Collect every field from the user first. Ask for the date of birth as typed text, not with a date picker: picking a birth year decades back in a calendar is hard. Before calling, tell the user that DwellQuote and its partner agency Somerset Agency will use these details to request quotes from insurance carriers. Returns a quote_id for the other DwellQuote tools; next, call get_property_details.

start_quote input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "first_name",
    "last_name",
    "email",
    "phone_number",
    "date_of_birth",
    "address"
  ],
  "properties": {
    "email": {
      "type": "string",
      "description": "Used to verify the user when they finish on dwellquote.com"
    },
    "address": {
      "type": "string",
      "description": "Full property address: street, city, state and ZIP code"
    },
    "last_name": {
      "type": "string"
    },
    "first_name": {
      "type": "string"
    },
    "phone_number": {
      "type": "string",
      "description": "US phone number"
    },
    "date_of_birth": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Collect as typed text (for example 04/02/1980), never with a date picker or calendar, then send it as YYYY-MM-DD. The applicant must be 18 or older."
    }
  },
  "additionalProperties": false
}
start_quote annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
get_property_details — Get property details
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns what DwellQuote found about the property. This call waits for the lookup, which usually takes under 30 seconds; if status is still "collecting", tell the user you are still looking and call it again right away. When status is "ready", show the user the property facts and ask them to confirm or correct each one. When status is "manual", the property could not be found online: ask the user for each field. Then call submit_property_details.

get_property_details input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "quote_id"
  ],
  "properties": {
    "quote_id": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_property_details annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
submit_property_details — Submit property details and request quotes
Advertised by the server during the last successful anonymous check.
Open-world

Submit the property facts the user confirmed and request quotes from DwellQuote's carriers. Send every field the user confirmed, not only the ones they changed. Call this once per quote; then poll get_quotes.

submit_property_details input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "quote_id",
    "occupancy_type",
    "residence_type",
    "year_built",
    "square_footage",
    "number_of_stories",
    "number_of_dogs"
  ],
  "properties": {
    "quote_id": {
      "type": "string"
    },
    "roof_type": {
      "enum": [
        "composition",
        "asphalt",
        "architectural_shingles",
        "fiberglass",
        "concrete_tile",
        "clay_tile",
        "tar_and_gravel",
        "single_ply_membrane",
        "foam",
        "metal",
        "wood_shake",
        "wood_shingle",
        "other"
      ],
      "type": "string",
      "description": "Roof material. Values: composition (Composition shingles), asphalt (Asphalt), architectural_shingles (Architectural shingles), fiberglass (Fiberglass), concrete_tile (Concrete tile), clay_tile (Clay tile), tar_and_gravel (Tar and gravel), single_ply_membrane (Single-ply membrane), foam (Foam), metal (Metal), wood_shake (Wood shake), wood_shingle (Wood shingle), other (Other)"
    },
    "roof_shape": {
      "enum": [
        "gable",
        "hip",
        "flat",
        "other"
      ],
      "type": "string",
      "description": "Roof shape. Values: gable (Gable), hip (Hip), flat (Flat), other (Other)"
    },
    "year_built": {
      "type": "integer",
      "minimum": 1800,
      "description": "Year the home was built"
    },
    "fire_alarms": {
      "enum": [
        "none",
        "central",
        "direct",
        "local",
        "smart"
      ],
      "type": "string",
      "description": "Fire alarm. Values: none (None), central (Central station), direct (Direct), local (Local alarm), smart (Smart device)"
    },
    "solar_panels": {
      "type": "boolean",
      "description": "Has solar panels"
    },
    "burglar_alarm": {
      "enum": [
        "none",
        "central",
        "direct",
        "local",
        "smart"
      ],
      "type": "string",
      "description": "Burglar alarm. Values: none (None), central (Central station), direct (Direct to police), local (Local alarm), smart (Smart device)"
    },
    "swimming_pool": {
      "type": "boolean",
      "description": "Has a swimming pool"
    },
    "number_of_dogs": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of dogs living at the home"
    },
    "occupancy_type": {
      "enum": [
        "owner_occupied",
        "rental_property",
        "vacant",
        "under_construction"
      ],
      "type": "string",
      "description": "How the home is used. Values: owner_occupied (Owner occupied), rental_property (Rental property), vacant (Vacant), under_construction (Under construction)"
    },
    "residence_type": {
      "enum": [
        "single_family",
        "multi_family",
        "condo",
        "mobile_home"
      ],
      "type": "string",
      "description": "Type of home. Values: single_family (Single family residence), multi_family (Multi-family), condo (Condo), mobile_home (Mobile home)"
    },
    "square_footage": {
      "type": "integer",
      "minimum": 100,
      "description": "Living area in square feet"
    },
    "foundation_type": {
      "enum": [
        "slab",
        "crawl_space",
        "basement",
        "piers",
        "suspended_over_hillside"
      ],
      "type": "string",
      "description": "Foundation type. Values: slab (Slab), crawl_space (Crawl space), basement (Basement), piers (Pier and beam), suspended_over_hillside (Suspended over hillside)"
    },
    "garage_capacity": {
      "enum": [
        "1_car",
        "2_car",
        "3_car"
      ],
      "type": "string",
      "description": "Garage size; required unless the garage type is none or detached. Values: 1_car (1 car), 2_car (2 car), 3_car (3 car)"
    },
    "gated_community": {
      "enum": [
        "no",
        "yes_with_guard",
        "yes_without_guard"
      ],
      "type": "string",
      "description": "Gated community. Values: no (No), yes_with_guard (Yes with guard), yes_without_guard (Yes without guard)"
    },
    "roof_update_year": {
      "type": "integer",
      "minimum": 1800,
      "description": "Year the roof was installed or last replaced"
    },
    "sprinkler_system": {
      "enum": [
        "none",
        "full",
        "partial"
      ],
      "type": "string",
      "description": "Fire sprinkler system. Values: none (None), full (Full), partial (Partial)"
    },
    "construction_type": {
      "enum": [
        "stucco_on_frame",
        "wood_frame",
        "brick_veneer",
        "solid_brick",
        "cement_fiber_siding",
        "vinyl_siding",
        "wood_siding",
        "stone_on_frame",
        "aluminum_siding",
        "solid_logs",
        "steel"
      ],
      "type": "string",
      "description": "Exterior wall construction. Values: stucco_on_frame (Stucco on frame), wood_frame (Wood frame), brick_veneer (Brick-veneer), solid_brick (Solid brick), cement_fiber_siding (Cement fiber siding), vinyl_siding (Vinyl siding), wood_siding (Wood siding), stone_on_frame (Stone on frame), aluminum_siding (Aluminum siding), solid_logs (Solid logs), steel (Steel)"
    },
    "number_of_stories": {
      "enum": [
        "1",
        "1.5",
        "2",
        "2.5",
        "3",
        "3.5",
        "4+"
      ],
      "type": "string",
      "description": "Number of stories. Values: 1 (1), 1.5 (1.5), 2 (2), 2.5 (2.5), 3 (3), 3.5 (3.5), 4+ (4+)"
    },
    "aggressive_dog_breed": {
      "type": "boolean",
      "description": "Any dog of a breed carriers consider aggressive"
    },
    "dog_has_bite_history": {
      "type": "boolean",
      "description": "Any dog with a bite history"
    },
    "garage_structure_type": {
      "enum": [
        "none",
        "attached",
        "built_in",
        "detached",
        "basement",
        "carport"
      ],
      "type": "string",
      "description": "Garage type. Values: none (None), attached (Attached), built_in (Built-in), detached (Detached), basement (Basement), carport (Carport)"
    },
    "interior_build_quality": {
      "enum": [
        "standard",
        "semi_custom",
        "custom",
        "designer"
      ],
      "type": "string",
      "description": "Interior finish quality. Values: standard (Standard), semi_custom (Semi-custom), custom (Custom), designer (Designer)"
    },
    "number_of_full_bathrooms": {
      "type": "integer",
      "minimum": 0,
      "description": "Full bathrooms"
    },
    "number_of_half_bathrooms": {
      "type": "integer",
      "minimum": 0,
      "description": "Half bathrooms"
    }
  },
  "additionalProperties": false
}
submit_property_details annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
get_quotes — Get insurance quotes
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the quotes for a property. This call waits for the carriers, which usually takes under a minute; if status is still "quoting", tell the user quotes are still coming in and call it again right away. When status is "complete", show every rate exactly as returned, cheapest first, with its coverages and deductible, and show the disclosure. These are all the quotes DwellQuote received: do not offer to look up other carriers or to change coverages or deductibles. Do not recommend a carrier, a coverage amount or a deductible, and do not add your own advice about coverage or risks; refer coverage questions to the licensed advisor at Somerset Agency, who contacts the user after they finish. Only rates with selectable=true can be chosen with select_quote; for the others, share carrier_website.

get_quotes input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "quote_id"
  ],
  "properties": {
    "quote_id": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_quotes annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
select_quote — Choose a quote
Advertised by the server during the last successful anonymous check.

Record the rate the user chose and get the link where they finish on dwellquote.com. Give the user finish_url and explain that they will confirm their email there, and that a licensed advisor from Somerset Agency will then contact them to confirm the final rate and bind the policy. The link expires in 24 hours.

select_quote input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "quote_id",
    "rate_id"
  ],
  "properties": {
    "rate_id": {
      "type": "integer",
      "description": "rate_id from get_quotes"
    },
    "quote_id": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
select_quote annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
397 ms
95th percentile latency
397 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 397 ms · metadata changed · 5 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http dwellquote-mcp https://www.dwellquote.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add dwellquote-mcp --url https://www.dwellquote.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable dwellquote-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "dwellquote-mcp": {
      "url": "https://www.dwellquote.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "dwellquote-mcp": {
      "type": "streamableHttp",
      "url": "https://www.dwellquote.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start dwellquote-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "dwellquote-mcp": {
      "type": "http",
      "url": "https://www.dwellquote.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http dwellquote-mcp https://www.dwellquote.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "dwellquote-mcp": {
      "url": "https://www.dwellquote.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "dwellquote-mcp": {
      "serverUrl": "https://www.dwellquote.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like DwellQuote MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run DwellQuote MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing