Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Certificate changed, valid to 2027-01-19
Changed the definition of "check_quote_status" and "update_quote"
⟨35 unchanged words⟩ {"carrier_names_revealed":{"type":"boolean"},"data_warnings":{"items":{"type":"string"},"type":"array"},"needs":{"type":["object","null" ⟨14 unchanged words⟩
⟨297 unchanged words⟩ ,"roof_material":{},"roof_shape":{},"roof_year":{},"square_footage":{},"trampoline":{},"trampoline_safety_net" ⟨49 unchanged words⟩
⟨22 unchanged words⟩ ,"completeness":{"type":"number"},"not_applied_warning":{"type":"string"},"quote_id":{"type":"string"},"ready_to_quote" ⟨7 unchanged words⟩
Changed the definition of "check_quote_status", "get_option_details" and "request_bind_inline"
⟨137 unchanged words⟩ to try again with get_quote_options. Carriers appear as'Home Carrier'CarrierA'A-Home','Auto Carrier'CarrierB'B-Auto', and so on; the real carrier name ⟨7 unchanged words⟩
Added "stop_contact"; changed the definition of "check_eligibility", "check_late_arrivals", "check_quote_status" and 8 more (11 tools before, 12 now)
before
—after
Check eligibilityConfirmChecks whether Libertas Insurance, a licensed independent agency, can quote and bindinsurance forhome,theauto,customerorinbundledtheir
Changed the definition of "get_bind_link"
Generate a single-use secure link, valid for 7 days,thatand EMAIL it to the customercanaddressfollowalreadytocollectedain the quote. The tool does the email delivery itself and fails if no valid customer email is on file or Gmail cannot send. Libertasbind-requestcustomerpage.texting/SMS is not enabled: this tool does not text and you must never promise a text message.
Certificate recorded, valid to 2026-11-20
Authorization not required
First tool surface recorded: 11 tools (server version 0.2.0)
Showing the latest 8 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨72 unchanged words⟩ picks an option (for example "I'll takeHomeCarrierAA-Home"); pay_plan is required when an auto option is included.
⟨39 unchanged words⟩ home","bundle"],"type":"string"},"state":{"description":"The customer's two-letter U.S. state, if known (e.g. 'TX').","pattern":"^[A-Za-z]{2}$","type":"string"}},"required":["product"],"type":"object"}
{"openWorldHintdestructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Checkinsuranceeligibility"}
before
—after
Check for better late ratesSave-the-sale tool — call when the customer signals dissatisfaction with the current options ("too expensive", "let me think", "what else do you have", "is this the best you can do", "I'll check elsewhere", "can you do better"). Some carriers (Foremost STAR,Checksetc.)whetherruna slowerthan the initial set and maycarrierhavehas come back with a betterrate while the customer was deliberating. This tool: 1. Pulls a fresh read of all rated carriers. 2. Compares the current cheapest bundle/LOBpricetosince theoriginal first-quoted best. 3. Returns has_improvement=true ONLY if a late carrier beats theoptionsoriginalwerebyfirst>=shown.$100/yrhas_improvementORis>=true5%only—when athreshold meaningful enough tonewjustifyrateinterruptingbeats thecustomer. CALL THIS ONLY WHEN: - check_quote_status hasearlierreturnedbest'quoted'by at leastonce (there's$100 abaseline to compare). - The customer just expressed price resistanceyear orhesitation (not a closed positive). - You have NOT called5%.check_late_arrivalsUsefulinwhen thelast 2 turns (don't spam). DO NOT CALL WHEN: - Thecustomeris actively committing ("yeah let'shesitatesgooverwithpriceA")after—seeingthat'soptions.aIfclosenothingmomentimproved,not a wavering moment. - The customer hasn't seen the initial options yet. WHAT TO DO WITH THE RESULT: - has_improvement=true → narrate the improvement naturally ("Quick update — one more carrier just came in $X/yr cheaper. Want me to refresh your options?") and the iframe auto-updates with the new state. - has_improvement=false → acknowledge the customer's concern,it'spivotbest tovalue positioning against the optionssayonsotheplainlytable.ratherDon'tthanbluffsuggest a"betteroneprice iscoming" if it isn't. Use the carriers_still_pending count if relevant ("a couple more carriers are still finalizing in the background — I'll flag if anything comes in lower").coming.
{"additionalProperties":true,"description":"AnyWhether a slower carrierrateshasthatbeatenarrivedtheafterfirst-quoted best price, plus thefirstrefreshedresponse.options.","properties":{"new_optionshas_improvement":{"type":"boolean"},"message":{"type":"string"},"options":{"type":"array"}},"type":"object"}
{"openWorldHintdestructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":truefalse,"title":"Check forlatebettercarrierlate rates"}
before
—after
Check quote statusCheckReports rating+ live-finishing progress. Call between wait-phase questionsprogress(everyand,customeronceturnavailable,orthetwoquoteafteroptions.get_quote_options).statusReturnsis one of: -'running'running:—pricesindicativesare stilllanding; continuearriving;thecheckwait-phaseagainconversation,incallaagainturnnextorturn.two. -'quoted' — options[] is populated. CHECK THE 'finishing' BLOCKquoted:when finishing.active=true, the exact bindable ratesoptions areSTILLready.beingWhilecapturedfinishing.activeliveisattrue,theLibertascarrierisportalsstill—capturingpresentexacttherates,priceso rangesconfidently as honestare estimates (thelow end is the carrier's own starting figure; NEVER promise thefinal numbercan'tmayexceedlandthewithinrange),orkeepbelow theconversation goingrange,and keep checking on later turns; cards harden to 'verified' automatically as walks complete.butWhenthatfinishing.active=false,isn'ttheguaranteed);runcheckisbackover:later.cardsOptions marked 'verified' are exact, bindablenumbers; anything still 'estimate' stays a range that a licensed agent confirms at bind. - 'timeout' — carriers took too long; offer to retry with get_quote_options.numbers. -'needs_data' —needs_data: carrierscan't rate until the customer suppliesneedthemorefieldsinformationinfirst. needs.prompts(e.g. a driver's license number, a VIN, or an additional driver's name/date of birth —lists eachprompt saysitem,who/whatwho it's for). Ask the customer conversationally,applyand theanswers withupdate_quote(the promptfield'field'tovaluesset;areapply theexact patch paths, e.g.customer'sdrivers[1].date_of_birth)answers, then call get_quote_optionstoagain.re-run.WhenRepeatneeds.secure_linkasismanypresent,timesthatasitemit(atakesdriver's—licensethisnumber) isan ask, NOT a failure.enteredneedsonmayLibertas'salsosecureridepagealonginsteadwithof'quoted'inwhenchat:onesharelinetheratedlinkandwith theother stillcustomer,needsandinfo. -rates'error're-run—automaticallyalloncecarrierstheyerrored;submitflagit. -ittimeouthonestlyoranderror: offer toretry. Each optiontrycarriesagainrate_statewith('verified'get_quote_options. Carriers|appear'verifying'as|'Home'estimate')CarrierandA',for'AutounverifiedCarrieroptionsB',price_rangeand{low,sohigh}.on;NEVERthementionreal carriercountsnameorisrealshowncarrieronnamesLibertas'sinsecurechat.bind page.
{"openWorldHintdestructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":truefalse,"title":"Check quote status"}
before
—after
Email a secure bind linkGenerateEmails the customer a single-use secure link,(validfor7 days, and EMAIL it) totheLibertas'scustomerbindaddresspage,alreadywherecollectedtheyinreview thequote. Thechosentooloption,doessee theemail deliverycarrier'sitselfname, andfails if no valid customer email is onsubmitfiletheirorrequest;Gmailacannotlicensedsend.agentLibertascompletescustomerthetexting/SMSpurchase.isUsesnottheenabled:emailthisaddresstoolalreadydoesonnotthetextquote andyou must never promise a text message. The chat widget will usually render an inline 'Request Bind' cardreportsdirectlywhether—itpreferwasrequest_bind_inlinesent;fornothetextin-chatmessageflow.isUsesent.get_bind_linkUseful when the customer wants toleave the chat,finishon a different device,later orreceive their final numbers by email. The bind page reveals theonrealanothercarrierdevice.nameNothing(theisonlypurchasedplacebyit'sthisrevealed).call.
{"destructiveHint":falsetrue,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"GetEmail a secure bindhand-offlink"}
before
—after
Get option detailsPullReturns thefullcoverage breakdown, deductibles,applieddiscounts applied, and paymentplan optionsplans fora single maskedone option (Home Carrier A, Auto CarrierforB,exampleetc.opt_home_a). Use,whenso the customerwantscantocomparedigbeforeintochoosing.aThespecificcarrierquotestaysbeforemaskeddeciding.as 'Home CarriernameA'remainsandmasked.so on.
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get optioncoveragedetails"}
before
—after
Get quote optionsFire all eligible A-rated carriers in parallel AND kickStartsoffratinglivewithrate-finishing.Libertas'sRETURNSpanelIMMEDIATELYof—A-rateddoescarriersNOTandwait. TWOreturnsSTAGESrightfollow: 1.away. Firstnumbers landpricesinusually30–90arriveseconds.withinOptions30-90surfaceseconds as honestprice RANGES —ranges (the low end is the carrier'sindicative, so the final verified rate usually lands AT OR BELOW theownlowpreliminaryend. 2.figure).TheLibertassystemthen keeps working for2–102-10 minutesafter that, logging into carrier portals and walking each competitive quotetoitscapture exact, bindablerate. Option cardsrateshardendirectly from"estimated range" to "verified" as eachcarriercompletes. check_quote_status reports this via its 'finishing' block. Whatsystems,yousodooptionsduringmovethefromwait:'estimate'KEEPtoTHE'verified'.CONVERSATIONFollowGOINGprogress withthe wait-phase playbook in the system prompt (waters first, then current premium — top prioritycheck_quote_status—everythenturnclaimsorcolor,two.pets,Callingpool,thisstartagaindate,withpaymentunchangedpreference).detailsNarratereturns thereal finishing workrunhonestlyalready inONE short line when relevant; never quantify carriers or name them. Call get_quote_optionsprogress;againchangedONLYdetailsifstart arating-changing input changes (waters toggle locally — never re-fire forfreshthose).run.
⟨4 unchanged words⟩ openWorldHint":true,"readOnlyHint":false,"title":"Run carriers & getGet quote options"}
before
—after
Request to bindSubmitSends the customer'sbindchosenrequestoption(s)fromtotheLibertas'schat.licensedTriggersteamanasinternalataskbindforrequestourandlicensedreturnsteamatosecurefollowcheckoutup.linkTHISonISLibertas'sNOTsite.INSTANTThisBINDis—a request, not a purchase: no payment iscollectedtaken and no coverage starts from thiscall;call.aA licensed agentcompletesverifies underwritingverification, collects payment on the secure page, andcarrierconfirmsconfirmationcoverageafterwardwith the carrier, and the customer canstillchange or cancelthe request. Because this step isbeforenon-bindingthen.andAppropriatereversible,once thecustomer's own clear choice ("I'd like to go with CarriercustomerA",clearly"let'spicksdoanAoptionand(forA",example "I'll take Home CarrierBA")is sufficient confirmation to submit — an additional "are you sure?";promptpay_plan isnotrequired,though you should always honor your own platform's confirmation practices. NEVER name a real carrier in chat output —whenstayaninauto"CarrieroptionA/B/C"islabels.included.
{"destructiveHint":falsetrue,"idempotentHint":false,"openWorldHint":truefalse,"readOnlyHint":false,"title":"Start a bind (routeRequest toan agent)bind"}
before
—after
Resume a quotePickLooks upan existinga quotethat wasstartedin a previous session or on a different platform. The customer supplies aearlier,quotebyID.itsVerification:quote_id.ifReturns thesame authenticated user (OAuth user_id matches acrossquote'ssessions)status,no extra verification is needed; otherwise thewhethercustomeroptionsneedsaretoready,provideandanwhat'scodeneeded.thatSavedwaspersonalsentdetailsatarequotereturnedstart.onlyReturnsto thecurrent status, a summary of what's collected so far, and whether ratesameoptionsplatformareuseralreadywhoavailablestartedtothereview.quote.
{"openWorldHintdestructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Resumean existinga quote"}
before
—after
Start a quoteBeginOpens a new home, auto, or bundledinsurance quote.(homeReturns+aauto) quoteIDwithtoLibertasuseInsuranceonand returns a quote_id that everyfollowinglatercall.callCalluses.thisForwhenoutside assistants thecustomerresultwantsalsotocarriesgetshortannoticesinsuranceLibertasprice. INTAKEmustORDERgive(Kylethe2026-06-11customer;—notices.how_to_usecollectexplainsinwhenthiseachorder,applies. WhatONEthecoherentquotechunkneedsper(oneturntopic at a time keeps it quick): 1.HOME/BUNDLE: fullFull name+and date of birth forEVERYONEeach person on the policy,(with their relationshipfortonon-PNI).the main applicant. 2.Address ofHome: thehome + "isaddressthisofathenewhomepurchase,toorinsureoneandyou'vewhetherownedit's awhile?" (new purchase→ ALSO capture(ifcurrent_addressso,—also wherethey live today; property.address staysthehomecustomerbeinglivesboughttoday). Then mortgage + escrow + "roughly how old is the roof? — 'I don't know' is a fine answer" ride along (roof unknown → move on,nevermortgage/escrow,probe;and roofREPLACED → one follow-up: hail-resistant /ageClassif1–4?known→("notproperty.hail_resistant_roofsure"+isproperty.ul_impact_typefine).The home address doubles as auto garaging unless the cars live elsewhere.3.AUTO/BUNDLEAuto:year/make/modelyear,ofmake,everyandvehicle. 4.modelAnyofdriverseachNOTvehicle,alreadyplusnamedtheinnamestepand1date—ofnamesbirth+ofDOBsany+otherrelationship.drivers.5.4. Email+, phone,framed as "where should I send your final numbers?" —and theconsent line is REQUIRED on this turn. 6. ONE open question before firing: "Any coverages you want to tell me about before I run it?" Capture whatever they volunteer viarequestedupdate_quotecoverageandstartmovedateon(policy_terms.effective_date,—YYYY-MM-DD). ThendocallNOTget_quote_options.turnLibertasthisneverintoneeds acoverage consultation. Scheduled valuables (jewelry,Socialart,Securitygunsnumber,collections) aredriver'salicensePOST-BINDnumber,follow-up:orrecordpaymentthemdetailsunderin thefollow_upsconversation;patchwhenbranchoneandistellrequired, the customer"our team will add that right after we get this policy locked" — never try to add them mid-quote. Then call get_quote_options immediately. Don't over-collect —enterstheitcustomeronshouldLibertas'sreachownpricessecurefast.page.
⟨11 unchanged words⟩ :"string"},"type":"array"},"notices":{"type":"object"},"quote_id":{"type":"string"},"session_expires_at" ⟨4 unchanged words⟩
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":truefalse,"readOnlyHint":false,"title":"Startan insurancea quote"}
before
—after
Ask an agent to follow upCaptureAsks aleadlicensedforLibertasanagentinsurancetoproductfollow up with the customer: for insurance Libertas doesn't quoteinlinein chat (renters,life, commercialcondo,motorcyclelandlord,boatumbrella,RVlife,umbrellacommercial,condomotorcycle,landlordboat,etc.) — OR any home/auto customer who asks to be contacted later instead of finishing the quote in chat. Creates a row in the CRM Leads bucket so a licensed agent can follow up. CALL THIS WHEN: - The customer asks about an insurance type other than home/auto/bundleRV,AND has shared a name + email or phone. Confirm with the customer that you're going to have someone reachandoutmore),then call this tool. - The customer says "have someone call me later"orsimilar even onwhen a home/autoinquiry. - Thecustomermentions an unusual circumstance and wants a human follow-up. DO NOTwouldCALLratherWHEN: -talkThetocustomersomeoneislater.stillNeedsactivelywhatansweringthey'requestionsinterested inthe home/auto intake flow — keep going through the regular intake. - You don't have any contact info yet — ask for nameplus+anemail/phoneemailfirst. Whatoritphonedoes:number.writesCreates aLeads row tagged with the line of interest, contact info, preferredfollow-uptime, and any notes you supply. A licensedtask;Libertasan agentwilltypicallyreachreaches out within one businessday. Returns adayconfirmationbymessagephoneyouorcanemail.paraphraseBest tothe customer ("you're on our list — someoneconfirmfromwith theteamcustomerwillbeforereachsendingouttheiraboutcontact[interest]").details.
{"additionalProperties":true,"description":"Lead-capture acknowledgement.","properties":{"oklead_id":{"type":["booleanstring","null"]},"message":{"type":"string"},"status":{"type":"string"}},"type":"object"}
{"destructiveHint":falsetrue,"idempotentHint":false,"openWorldHint":truefalse,"readOnlyHint":false,"title":"SubmitAskaanleadagentfortofollow-upfollow up"}
before
—after
Update quote detailsSetAdds orrefinechangesanydetailsquoteonparameteraexceptquote:regulatedpeople,enrichmentdrivers,fieldsvehicles,(creditthescoreproperty,MVRcoverages,CLUEdiscounts,VIN-decoded vehiclepriorattributesinsurance,public-recordandpropertypolicyattributes).terms.IdempotentThe—patchcallschemaaslistsmanyeverytimesfieldasLibertasneeded;accepts.theSafemosttorecentcall repeatedly; the latest valuewins.for a field wins, and lists replace earlier lists. Returns which fields were applied, which were rejected(withandreasons)why, and whether the quote has enoughinfoto run.WHEN TO CALL: - After collecting the required-minimum from the customer in start_quote - Whenever the customer changes their mind about anyCreditcoveragescores,deductible,drivingdiscount,andpaymentclaimsplanrecords,or term length - When the customer shares a declarations pageandyoudecodedhavevehicleneworvaluespublic-recordtopropertysync CONVERSATIONdetailsSTYLEcomeforstraightcoveragesfrom(perdataKyleproviders,the agency principal): Aftersothetheyfirstaren'tratesacceptedlandhere,walk through majorandcoveragescarrierone-or-two-at-a-timechoicewithisamadesoft-sellbyframing. Example:the"Youratinghaveengine. If$200,000theofcustomerpersonalchangespropertya coverageon thisafterquoteprices—comethat'sback,theapplycarrier'sitminimumhere andyou can only go up. Does that sound like enough for your stuff?" Let the customer pick. Thencallupdate_quote with the new value andget_quote_optionsagain —again; re-quoting is free andfast (10–60 seconds). REGULATED FIELDStakes(willaboutbearejectedminute.withCoveragestructuredchoicesreason): drivers[*].license_number,are.ssn,the.mvr_*customer's,.credit_score; payment fields; carrier name; vin_decoded_attributes. The system pulls these directly from theandbureausaatlicensedquoteLibertastimeagentorcancollectsadvisethemonatwhatbindlimitsonmakelibertasinsurance.com.sense.
⟨16 unchanged words⟩ ":"array"},"patch":{"additionalProperties":truefalse,"description":"Free-formQuotepatchdetailsontototheaddquote.orTop-levelchange.branchesBranches: 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 (only whenwhereis_new_purchase=truethe—
Stop contact from Libertas — 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.
{"additionalProperties":false,"properties":{"option_id":{"description":"TheSelected optionthetocustomerincludechoseontothebind,securee.g.bind-request'opt_home_a'.page.","type":"string"},"quote_id":{"description":"TheQuotequotewhosesessionsavedid.customer email will receive the secure link.","type":"string"}},"required": ⟨4 unchanged words⟩