Quotor — Home & Auto Insurance Quotes
Real, bindable home & auto insurance quotes via MCP (Texas, expanding); human-completed bind.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"home-auto-insurance-quotes": {
"url": "https://mcp.quotor.ai"
}
}
}원격 엔드포인트
https://mcp.quotor.aistreamable-http할 수 있는 일
도구 목록
도구 (12)
🟢check_eligibility(product, intent, state)
Checks whether Libertas Insurance, a licensed independent agency, can quote and bind home, auto, or bundled (home + auto) insurance in the customer's state. A good first step when someone asks about insurance prices, switching carriers, or shopping for coverage, before collecting personal details. Pass the customer's two-letter state if you know it; otherwise the result lists the states Libertas serves so you can ask. Returns whether quoting and binding are available, plus a plain-language explanation.
입력 스키마
{
"type": "object",
"properties": {
"product": {
"type": "string",
"enum": [
"auto",
"home",
"bundle"
],
"description": "Line of business: 'auto', 'home', or 'bundle' (home + auto)."
},
"intent": {
"type": "string",
"enum": [
"quote",
"bind"
],
"default": "quote",
"description": "Whether you're checking ability to 'quote' or to 'bind' (default 'quote')."
},
"state": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "The customer's two-letter U.S. state, if known (e.g. 'TX')."
}
},
"required": [
"product"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"can_quote": {
"type": "boolean"
},
"can_bind": {
"type": "boolean"
},
"state": {
"type": [
"string",
"null"
]
},
"next_step": {
"type": "string"
},
"explanation": {
"type": "string"
}
},
"description": "Whether quoting/binding is available for the customer's state + product.",
"additionalProperties": true
}🟢start_quote(product, referral_source, meta_codes)
Opens a new home, auto, or bundled (home + auto) quote with Libertas Insurance and returns a quote_id that every later call uses. For outside assistants the result also carries short notices Libertas must give the customer; notices.how_to_use explains when each applies. What the quote needs (one topic at a time keeps it quick): 1. Full name and date of birth for each person on the policy, with their relationship to the main applicant. 2. Home: the address of the home to insure and whether it's a new purchase (if so, also where the customer lives today), mortgage/escrow, and roof age if known ("not sure" is fine). 3. Auto: year, make, and model of each vehicle, plus the name and date of birth of any other drivers. 4. Email, phone, and the requested coverage start date (policy_terms.effective_date, YYYY-MM-DD). Then call get_quote_options. Libertas never needs a Social Security number, driver's license number, or payment details in the conversation; when one is required, the customer enters it on Libertas's own secure page.
입력 스키마
{
"type": "object",
"properties": {
"product": {
"type": "string",
"enum": [
"auto",
"home",
"bundle"
],
"description": "Line of business to quote: 'auto', 'home', or 'bundle'."
},
"referral_source": {
"type": "string",
"description": "Optional referral/partner source tag for attribution."
},
"meta_codes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional internal meta codes; ignored unless recognized."
}
},
"required": [
"product"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string"
},
"next_required_inputs": {
"type": "array",
"items": {
"type": "string"
}
},
"session_expires_at": {
"type": "string"
},
"notices": {
"type": "object"
}
},
"description": "The opened quote session.",
"additionalProperties": true
}🟡update_quote(quote_id, patch, meta_codes)
Adds or changes details on a quote: people, drivers, vehicles, the property, coverages, discounts, prior insurance, and policy terms. The patch schema lists every field Libertas accepts. Safe to call repeatedly; the latest value for a field wins, and lists replace earlier lists. Returns which fields were applied, which were rejected and why, and whether the quote has enough to run. Credit scores, driving and claims records, and decoded vehicle or public-record property details come straight from data providers, so they aren't accepted here, and carrier choice is made by the rating engine. If the customer changes a coverage after prices come back, apply it here and call get_quote_options again; re-quoting is free and takes about a minute. Coverage choices are the customer's, and a licensed Libertas agent can advise on what limits make sense.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string",
"description": "The quote session id returned by start_quote."
},
"patch": {
"type": "object",
"properties": {
"pni": {
"type": "object",
"properties": {
"first_name": {},
"last_name": {},
"dob": {},
"email": {},
"phone": {},
"gender_on_license": {},
"marital_status": {},
"preferred_language": {}
},
"additionalProperties": false
},
"has_mortgagee": {},
"mortgage_billed_by_lender": {},
"mortgagee": {
"type": "object",
"properties": {
"company": {},
"clause_address": {},
"loan_number": {}
},
"additionalProperties": false
},
"current_premium_home": {},
"current_premium_auto": {},
"current_carrier_home": {},
"current_carrier_auto": {},
"follow_ups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"interest": {},
"note": {}
},
"additionalProperties": false
}
},
"is_new_purchase": {},
"current_address": {
"type": "object",
"properties": {
"street": {},
"city": {},
"state": {},
"zip": {}
},
"additionalProperties": false
},
"drivers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"first_name": {},
"last_name": {},
"relationship_to_pni": {},
"dob": {},
"date_of_birth": {},
"license_state": {},
"years_licensed": {},
"marital_status": {},
"gender_on_license": {},
"occupation": {},
"education_level": {},
"assigned_vehicle_id": {},
"good_student": {},
"defensive_driving_completed": {},
"accident_prevention_course": {},
"self_reported_accidents": {},
"self_reported_violations": {},
"military_status": {},
"student_away_from_home": {}
},
"additionalProperties": false
}
},
"vehicles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vin": {},
"year": {},
"make": {},
"model": {},
"trim": {},
"garaging_zip": {},
"garaging_address": {},
"annual_mileage": {},
"commute_miles_one_way": {},
"primary_use": {},
"ownership_status": {},
"lienholder": {},
"purchase_date": {},
"anti_theft_device": {},
"daytime_running_lights": {},
"airbags": {},
"abs": {},
"custom_equipment_value": {}
},
"additionalProperties": false
}
},
"coverages": {
"type": "object",
"properties": {
"bi_per_person": {},
"bi_per_accident": {},
"pd_limit": {},
"csl_limit": {},
"umbi_per_person": {},
"umbi_per_accident": {},
"umpd_limit": {},
"uim_stacking": {},
"pip_limit": {},
"medpay_limit": {},
"comp_deductible": {},
"coll_deductible": {},
"towing_labor_limit": {},
"rental_reimbursement_limit": {},
"rental_days_max": {},
"glass_full": {},
"gap_coverage": {},
"oem_parts": {},
"new_car_replacement": {},
"custom_equipment_coverage": {},
"dwelling_a": {},
"other_structures_b": {},
"personal_property_c": {},
"loss_of_use_d": {},
"liability_e": {},
"medical_f": {},
"all_perils_deductible": {},
"wind_hail_deductible": {},
"named_storm_deductible": {},
"foundation_water_damage": {},
"sewer_water_backup": {},
"water_seepage_leakage": {},
"service_line": {},
"water_backup_limit": {},
"service_line_limit": {},
"equipment_breakdown": {},
"hidden_water_damage": {},
"mold_limit": {},
"ordinance_or_law_pct": {},
"replacement_cost_contents": {},
"extended_replacement_cost_pct": {},
"scheduled_personal_property": {},
"earthquake_endorsement": {},
"flood_through_carrier": {}
},
"additionalProperties": false
},
"property": {
"type": "object",
"properties": {
"address": {},
"year_built": {},
"square_footage": {},
"construction_type": {},
"number_stories": {},
"roof_age_years": {},
"roof_material": {},
"roof_shape": {},
"hail_resistant_roof": {},
"ul_impact_type": {},
"foundation_type": {},
"basement_type": {},
"attached_garage": {},
"garage_type": {},
"number_bathrooms": {},
"number_bedrooms": {},
"number_kitchens": {},
"pool_type": {},
"pool_fenced": {},
"pool_diving_board": {},
"pool_slide": {},
"trampoline": {},
"trampoline_safety_net": {},
"dog_breed": {},
"dog_bite_history": {},
"claims_in_last_5_years": {},
"claim_details": {},
"business_on_premises": {},
"business_type": {},
"occupancy": {},
"protection_class": {},
"distance_to_fire_station": {},
"distance_to_hydrant": {},
"recent_renovations": {}
},
"additionalProperties": false
},
"discounts": {
"type": "object",
"properties": {
"paperless_billing": {},
"autopay_eft": {},
"autopay_card": {},
"multi_policy_bundle": {},
"multi_vehicle": {},
"telematics_opt_in": {},
"advance_quote": {},
"prior_insurance_continuous": {},
"prior_insurance_carrier": {},
"prior_insurance_years": {},
"military": {},
"group_affinity_code": {},
"homeowner": {},
"loyalty": {},
"early_signing": {},
"bundle": {},
"paperless": {},
"autopay": {},
"claims_free_years": {},
"monitored_burglar_alarm": {},
"monitored_fire_alarm": {},
"central_station_alarm": {},
"smart_home_devices": {},
"gated_community": {},
"hoa": {},
"new_home": {},
"recently_renovated": {},
"non_smoker_household": {}
},
"additionalProperties": false
},
"policy_terms": {
"type": "object",
"properties": {
"effective_date": {},
"term_length": {},
"pay_plan": {},
"paperless_documents": {}
},
"additionalProperties": false
},
"prior_insurance": {
"type": "object",
"properties": {
"carrier": {},
"years_continuous": {},
"policy_limits": {},
"expiration_date": {}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"description": "Quote details to add or change. Branches: pni (main applicant), drivers[], vehicles[], property, coverages, discounts, policy_terms, prior_insurance, mortgage fields (has_mortgagee, mortgage_billed_by_lender, mortgagee), is_new_purchase with current_address (where the customer lives today when buying a new home), current premiums/carriers, and follow_ups[] (notes for the licensed team, such as scheduled valuables; never added to the quote itself). Only the listed fields are accepted."
},
"meta_codes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional internal meta codes; ignored unless recognized."
}
},
"required": [
"quote_id",
"patch"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string"
},
"applied": {
"type": "array",
"items": {
"type": "string"
}
},
"rejected": {
"type": "array"
},
"completeness": {
"type": "number"
},
"ready_to_quote": {
"type": "boolean"
}
},
"description": "Which fields were applied and whether the quote is ready to rate.",
"additionalProperties": true
}🟢get_quote_options(quote_id, max_options)
Starts rating with Libertas's panel of A-rated carriers and returns right away. First prices usually arrive within 30-90 seconds as honest ranges (the low end is the carrier's own preliminary figure). Libertas then keeps working for 2-10 minutes to capture exact, bindable rates directly from carrier systems, so options move from 'estimate' to 'verified'. Follow progress with check_quote_status every turn or two. Calling this again with unchanged details returns the run already in progress; changed details start a fresh run.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string",
"description": "The quote session id returned by start_quote."
},
"max_options": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"default": 3,
"description": "Maximum options to return per line (1-5, default 3)."
}
},
"required": [
"quote_id"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string"
},
"status": {
"type": "string"
},
"expected_seconds": {
"type": "integer"
},
"message": {
"type": "string"
}
},
"description": "Acknowledges the rate run started; poll check_quote_status for the option cards.",
"additionalProperties": true
}🟡check_quote_status(quote_id, max_options)
Reports rating progress and, once available, the quote options. status is one of: - running: prices are still arriving; check again in a turn or two. - quoted: options are ready. While finishing.active is true, Libertas is still capturing exact rates, so ranges are estimates (the final number may land within or below the range, but that isn't guaranteed); check back later. Options marked 'verified' are exact, bindable numbers. - needs_data: carriers need more information first. needs.prompts lists each item, who it's for, and the update_quote field to set; apply the customer's answers, then call get_quote_options again. When needs.secure_link is present, that item (a driver's license number) is entered on Libertas's secure page instead of in chat: share the link with the customer, and rates re-run automatically once they submit it. - timeout or error: offer to try again with get_quote_options. Carriers appear as 'Home Carrier A', 'Auto Carrier B', and so on; the real carrier name is shown on Libertas's secure bind page.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string",
"description": "The quote session id to poll."
},
"max_options": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"default": 3,
"description": "Maximum options to return per line (1-5, default 3)."
}
},
"required": [
"quote_id"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string"
},
"status": {
"type": "string"
},
"progress_pct": {
"type": "integer"
},
"options": {
"type": "array"
},
"carrier_names_revealed": {
"type": "boolean"
},
"needs": {
"type": [
"object",
"null"
]
}
},
"description": "Live rating status plus masked options (carriers hidden until the bind step). Status 'needs_data' means the customer must supply the fields in `needs.prompts` (apply via update_quote, then re-run get_quote_options).",
"additionalProperties": true
}🟢get_option_details(quote_id, option_id)
Returns the coverage breakdown, deductibles, discounts applied, and payment plans for one option (for example opt_home_a), so the customer can compare before choosing. The carrier stays masked as 'Home Carrier A' and so on.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string",
"description": "The quote session id."
},
"option_id": {
"type": "string",
"description": "The option to detail, e.g. 'opt_home_a' from get_quote_options."
}
},
"required": [
"quote_id",
"option_id"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"premium_annual": {
"type": [
"number",
"null"
]
},
"premium_monthly": {
"type": [
"number",
"null"
]
},
"coverages": {
"type": "object"
}
},
"description": "Full coverage + premium breakdown for one option (carrier still masked).",
"additionalProperties": true
}🔴get_bind_link(quote_id, option_id)
Emails the customer a single-use secure link (valid 7 days) to Libertas's bind page, where they review the chosen option, see the carrier's name, and submit their request; a licensed agent completes the purchase. Uses the email address already on the quote and reports whether it was sent; no text message is sent. Useful when the customer wants to finish later or on another device. Nothing is purchased by this call.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string",
"description": "Quote whose saved customer email will receive the secure link."
},
"option_id": {
"type": "string",
"description": "Selected option to include on the secure bind-request page."
}
},
"required": [
"quote_id",
"option_id"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string"
},
"option_id": {
"type": "string"
},
"carrier_name": {
"type": "string"
},
"bind_url": {
"type": "string"
},
"expires_at": {
"type": "string"
}
},
"description": "Secure, single-use bind hand-off link — the only place a real carrier name appears.",
"additionalProperties": true
}🔴request_bind_inline(quote_id, option_id, option_ids, water_selections, customer_notes, ...)
Sends the customer's chosen option(s) to Libertas's licensed team as a bind request and returns a secure checkout link on Libertas's site. This is a request, not a purchase: no payment is taken and no coverage starts from this call. A licensed agent verifies underwriting, collects payment on the secure page, and confirms coverage with the carrier, and the customer can change or cancel before then. Appropriate once the customer clearly picks an option (for example "I'll take Home Carrier A"); pay_plan is required when an auto option is included.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string",
"description": "The quote session id."
},
"option_id": {
"type": "string",
"description": "The single option to bind (or use option_ids for a bundle/split)."
},
"option_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Multi-option bind. Either option_id or option_ids must be provided."
},
"water_selections": {
"type": "object",
"properties": {
"service_line": {
"type": "boolean",
"description": "Include the service-line water add-on."
},
"water_seepage": {
"type": "boolean",
"description": "Include the water-seepage & leakage add-on."
},
"foundation_water": {
"type": "boolean",
"description": "Include the foundation-water-damage add-on."
},
"sewer_backup": {
"type": "boolean",
"description": "Include the sewer / water-backup add-on."
}
},
"additionalProperties": false,
"description": "Customer-selected water-coverage add-ons for home options (service line, water seepage, foundation water, sewer backup); the agent configures these at the carrier portal at bind."
},
"customer_notes": {
"type": "string",
"description": "Optional free-text notes from the customer for the agent."
},
"contact_pref": {
"type": "string",
"enum": [
"call",
"text",
"email"
],
"description": "How the customer prefers to be reached: 'call', 'text', or 'email'."
},
"best_time": {
"type": "string",
"description": "Best time to reach the customer, e.g. 'weekday afternoons'."
},
"pay_plan": {
"type": "string",
"enum": [
"monthly_eft",
"pay_in_full"
],
"description": "Pay plan: 'monthly_eft' or 'pay_in_full' (required when an auto line is included)."
}
},
"required": [
"quote_id"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string"
},
"bind_url": {
"type": "string"
}
},
"description": "Files a routed bind request to the matched agency and returns a bind link.",
"additionalProperties": true
}🟢check_late_arrivals(quote_id)
Checks whether a slower carrier has come back with a better price since the options were first shown. has_improvement is true only when a new rate beats the earlier best by at least $100 a year or 5%. Useful when the customer hesitates over price after seeing options. If nothing improved, it's best to say so plainly rather than suggest a better price is coming.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string",
"description": "The quote session id to check for late-arriving carrier rates."
}
},
"required": [
"quote_id"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"has_improvement": {
"type": "boolean"
},
"options": {
"type": "array"
},
"message": {
"type": "string"
}
},
"description": "Whether a slower carrier has beaten the first-quoted best price, plus the refreshed options.",
"additionalProperties": true
}🔴submit_lead(quote_id, first_name, last_name, email, phone, ...)
Asks a licensed Libertas agent to follow up with the customer: for insurance Libertas doesn't quote in chat (renters, condo, landlord, umbrella, life, commercial, motorcycle, boat, RV, and more), or when a home/auto customer would rather talk to someone later. Needs what they're interested in plus an email or phone number. Creates a follow-up task; an agent typically reaches out within one business day by phone or email. Best to confirm with the customer before sending their contact details.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string",
"description": "Optional quote id to associate the lead with."
},
"first_name": {
"type": "string",
"description": "Customer first name."
},
"last_name": {
"type": "string",
"description": "Customer last name."
},
"email": {
"type": "string",
"description": "Customer email."
},
"phone": {
"type": "string",
"description": "Customer phone number."
},
"interest": {
"type": "string",
"description": "What the customer wants us to follow up about (e.g. 'renters insurance', 'life insurance', 'commercial auto')"
},
"preferred_contact_time": {
"type": "string",
"description": "e.g. 'weekday afternoons', 'after 5pm', 'tomorrow morning'"
},
"preferred_contact_method": {
"type": "string",
"enum": [
"phone",
"email",
"text",
"any"
],
"description": "How the customer prefers to be reached: 'phone', 'email', 'text', or 'any'."
},
"notes": {
"type": "string",
"description": "Optional notes for the follow-up."
}
},
"required": [
"interest"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"lead_id": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
},
"message": {
"type": "string"
}
},
"description": "Lead-capture acknowledgement.",
"additionalProperties": true
}🟢resume_quote(quote_id, verification)
Looks up a quote started earlier, by its quote_id. Returns the quote's status, whether options are ready, and what's still needed. Saved personal details are returned only to the same platform user who started the quote.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string",
"description": "The quote session id to resume."
},
"verification": {
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"email_code",
"platform_identity",
"magic_link"
],
"description": "Verification method: email code, platform-identity header, or magic-link token."
},
"code": {
"type": "string",
"description": "The verification code (for the email_code method)."
},
"token": {
"type": "string",
"description": "The verification token (for the magic_link method)."
}
},
"additionalProperties": false,
"description": "Ownership verification (email code, platform identity, or magic link); required to return PII."
}
},
"required": [
"quote_id"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string"
},
"status": {
"type": "string"
},
"verification_required": {
"type": "boolean"
}
},
"description": "Resumed quote status (PII only on a verified call).",
"additionalProperties": true
}⚪stop_contact(quote_id, email, phone, channels)
Records that the customer doesn't want Libertas to contact them by phone call, text, email, or any of these. Appropriate whenever the customer asks, in any wording, to stop hearing from Libertas; Libertas honors it across its follow-up systems. Pass the quote_id when there is one, or the email and/or phone the customer wants removed.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"type": "string",
"description": "The quote whose saved contact details should be opted out, if there is one."
},
"email": {
"type": "string",
"description": "Email address to stop contacting."
},
"phone": {
"type": "string",
"description": "Phone number to stop calling or texting."
},
"channels": {
"type": "array",
"maxItems": 4,
"items": {
"type": "string",
"enum": [
"calls",
"texts",
"email",
"all"
]
},
"description": "Which contact to stop: 'calls', 'texts', 'email', or 'all' (default 'all')."
}
},
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"channels": {
"type": "array",
"items": {
"type": "string"
}
},
"message": {
"type": "string"
}
},
"description": "Confirmation that the opt-out was recorded.",
"additionalProperties": true
}커뮤니티
증거