Quotor
Server Details
Real, bindable home & auto insurance quotes via MCP — actual carrier rates, not estimates. Texas today, expanding across the US. AI agents can check eligibility, run a live multi-carrier quote, compare options (carrier names hidden until bind), and hand the customer a secure link where a licensed agent finalizes coverage — never an automated purchase. No sign-up or API key required; optional free partner keys for integrators.
- Status
- Healthy
- Uptime
- 100.0% over 56 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 12 tools
Most tools target distinct lifecycle steps (start, update, status, options, resume, lead, stop-contact), but there is real overlap between the two binding tools (get_bind_link vs request_bind_inline) and among the price-status cluster (get_quote_options, check_quote_status, check_late_arrivals). Descriptions do clarify the boundaries, so confusion is limited but not eliminated.
Every tool follows a clean snake_case verb_noun pattern (check_*, get_*, start_quote, update_quote, stop_contact, submit_lead). No mixing of conventions or vague verbs.
12 tools is well within the sensible 3-15 range and each maps to a distinct step of the insurance quoting workflow. No tool feels redundant or bolted on.
The surface covers the full lifecycle: eligibility check, quote creation, incremental updates, rating start/progress, option detail, resume, two binding paths, lead handoff, and do-not-contact. Only the actual payment/purchase happens off-chat by design, which is handled via secure links.
Available Tools
12 toolscheck_eligibilityCheck eligibilityARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | The customer's two-letter U.S. state, if known (e.g. 'TX'). | |
| intent | No | Whether you're checking ability to 'quote' or to 'bind' (default 'quote'). | quote |
| product | Yes | Line of business: 'auto', 'home', or 'bundle' (home + auto). |
Output Schema
| Name | Required | Description |
|---|---|---|
| state | No | |
| can_bind | No | |
| can_quote | No | |
| next_step | No | |
| explanation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, non-destructive read with openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: graceful degradation when state is omitted (returns the list of served states so you can ask), and that a plain-language explanation accompanies the boolean result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the purpose, then usage timing, then parameter handling and return shape. No filler; every sentence carries decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter read-only eligibility check with full schema coverage, annotations, and an output schema, the description covers what an agent needs: when to call it, what it returns, and how to behave when the optional state is unknown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description earns above baseline by explaining the optional 'state' parameter's fallback semantics ('Pass the customer's two-letter state if you know it; otherwise the result lists the states Libertas serves'), which the schema does not express.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Checks whether Libertas Insurance... can quote and bind home, auto, or bundled insurance in the customer's state') with explicit scope. An agent can distinguish this pre-check from downstream siblings like start_quote, get_quote_options, or request_bind_inline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear triggering conditions ('a good first step when someone asks about insurance prices, switching carriers, or shopping for coverage, before collecting personal details'), which is a genuine sequencing rule. It does not name a specific alternative tool to use instead when eligibility fails, so it stops short of full when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_late_arrivalsCheck for better late ratesAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | The quote session id to check for late-arriving carrier rates. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| options | No | |
| has_improvement | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds real behavioral value by disclosing the improvement threshold ('beats the earlier best by at least $100 a year or 5%'), which no structured field provides. However, annotations declare readOnlyHint=false while the description frames the operation purely as a passive 'check', leaving unexplained whether the call re-queries carriers or mutates the quote session. With annotations present the bar is lower, but this gap is notable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the core purpose followed by usage and result-handling guidance; every sentence carries information. Slightly longer than strictly needed, but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, and the description still explains the key field's semantics (has_improvement and its threshold), which goes beyond requirement. Combined with clear usage and reporting guidance, the definition is near-complete; the only missing piece is any note on why the tool is flagged as non-read-only.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single quote_id parameter is fully documented in the schema, so baseline 3 applies. The description's phrase 'since the options were first shown' loosely reinforces that quote_id scopes to an existing options session, but adds no format or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('checks whether a slower carrier has come back with a better price') plus the triggering condition ('since the options were first shown'), which separates it cleanly from siblings like get_quote_options and check_quote_status. An agent can route to it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear situational trigger ('useful when the customer hesitates over price after seeing options') and explicit guidance for the negative case ('say so plainly rather than suggest a better price is coming'). It stops short of naming a concrete alternative tool, so it is strong context rather than full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_quote_statusCheck quote statusAIdempotentInspect
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 'Carrier A-Home', 'Carrier B-Auto', and so on; the real carrier name is shown on Libertas's secure bind page.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | The quote session id to poll. | |
| max_options | No | Maximum options to return per line (1-5, default 3). |
Output Schema
| Name | Required | Description |
|---|---|---|
| needs | No | |
| status | No | |
| options | No | |
| quote_id | No | |
| progress_pct | No | |
| data_warnings | No | |
| carrier_names_revealed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, idempotent=true): discloses that ranges are estimates until finishing.active clears, that 'verified' options are exact/bindable, the secure-link flow for driver's license data, and that carrier names ('Carrier A-Home') are anonymized stand-ins. This is rich behavioral context an agent could not infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose followed by a clean enum-style breakdown of statuses. It is long, but the length is justified by four distinct status branches; minor redundancy in phrasing keeps it just short of 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-format detail is rightly omitted, and the description still covers every status outcome plus the follow-up action for each. Nothing an agent needs to poll and act correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so quote_id and max_options are already documented in the schema; the description adds nothing about either parameter. Baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Reports rating progress and... the quote options') and is clearly distinguishable from siblings like get_quote_options and update_quote, which it explicitly routes to. An agent knows exactly what this returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit branch-by-branch guidance: poll again for 'running', wait for 'quoted', apply answers then re-call get_quote_options for 'needs_data', retry for timeout/error. It routes to alternatives well, though it never states when NOT to use this tool or how it differs from resume_quote/start_quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bind_linkEmail a secure bind linkADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | Quote whose saved customer email will receive the secure link. | |
| option_id | Yes | Selected option to include on the secure bind-request page. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bind_url | No | |
| quote_id | No | |
| option_id | No | |
| expires_at | No | |
| carrier_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=true, idempotentHint=false and openWorldHint=true, and the description adds substantial context beyond them: single-use link, 7-day validity, sent to the email already on the quote, reports whether it was sent, no SMS, and nothing is purchased. The one gap is that the destructiveHint=true claim is never explained or reconciled — nothing in the text describes an irreversible or destructive effect, only a benign email dispatch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and resource, and the follow-on sentences each carry distinct facts (expiry, no SMS, nothing purchased, target scenario). It is dense with semicolon-chained clauses in the first sentence, which slightly hurts scannability, but no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the description nevertheless covers delivery channel, recipient source, link lifetime, single-use nature, and the fact that no purchase occurs. For a two-parameter, fully-described-schema tool this is complete enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema, establishing a baseline of 3. The description adds only modest extra meaning — that the recipient address comes from the saved quote rather than being supplied — which is a useful constraint but not syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (emails a secure bind link) plus its full mechanism: a single-use 7-day link to the bind page where the customer reviews the option and submits, with a licensed agent completing the purchase. This is clearly distinguishable from the sibling request_bind_inline, which implies an immediate bind rather than a deferred emailed link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear triggering context: "Useful when the customer wants to finish later or on another device." It also implicitly excludes the immediate inline path by describing a deferred flow. However, it never names the alternative tool (request_bind_inline) or explicitly states when NOT to use this one, so routing still requires inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_option_detailsGet option detailsARead-onlyIdempotentInspect
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 'Carrier A-Home' and so on.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | The quote session id. | |
| option_id | Yes | The option to detail, e.g. 'opt_home_a' from get_quote_options. |
Output Schema
| Name | Required | Description |
|---|---|---|
| coverages | No | |
| premium_annual | No | |
| premium_monthly | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds a genuinely non-obvious behavioral trait the annotations cannot express: the carrier identity is masked ('Carrier A-Home'), which matters for how the agent presents results. It stops short of covering auth or session prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the return payload is front-loaded before the masking caveat. Every clause carries information an agent can act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain the response shape, and annotations cover the safety profile; it adds the masking behavior and a concrete option-id example. It is nearly complete, missing only workflow positioning relative to get_quote_options and any session/prerequisite note.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both required parameters are documented, including the 'opt_home_a' example that the description merely repeats. The description adds no syntax, format, or sourcing detail beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns') and enumerates exactly what the resource contains: coverage breakdown, deductibles, discounts, and payment plans for one option. The phrase 'for one option (for example opt_home_a)' implies the singular counterpart to the list-returning get_quote_options, but no sibling is named, so the differentiation is inferred rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'so the customer can compare before choosing' supplies a rationale that implies the pre-selection comparison scenario, which is more than nothing. However, it never states when not to use it, nor names get_quote_options as the prerequisite/alternative for enumerating options, leaving the agent to infer the workflow order.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quote_optionsGet quote optionsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | The quote session id returned by start_quote. | |
| max_options | No | Maximum options to return per line (1-5, default 3). |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| message | No | |
| quote_id | No | |
| expected_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses the async/long-running nature, timing windows (30-90s for first prices, 2-10 min to reach verified rates), and the semantic difference between preliminary and bindable figures. This is exactly the context annotations (readOnlyHint=false, openWorldHint=true) cannot convey. The unchanged-vs-changed re-call rule slightly softens idempotentHint=false, but it describes genuine side-effect behavior, so it is not a contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and only mildly verbose across five sentences. The timing and estimate-vs-verified detail earns its place, though the prose could be tightened slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description needn't explain return values, and it still supplies the async lifecycle an agent needs to avoid mis-calling. Combined with annotations covering the safety profile and a fully documented schema, nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with quote_id and max_options fully documented in the schema, so the description carries no parameter burden. It adds no syntax or constraint detail (e.g., it never mentions max_options), which matches the baseline 3 when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Starts rating with Libertas's panel of A-rated carriers') and describes what the call yields (priced options that move from 'estimate' to 'verified'). It is clearly distinguishable from siblings like check_quote_status and start_quote, which it names or implies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: 'Follow progress with check_quote_status every turn or two,' and defines the re-call contract ('unchanged details returns the run already in progress; changed details start a fresh run'). Both the alternative tool and the when-to-call-again condition are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_bind_inlineRequest to bindADestructiveInspect
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 Carrier A-Home"); pay_plan is required when an auto option is included.
| Name | Required | Description | Default |
|---|---|---|---|
| pay_plan | No | Pay plan: 'monthly_eft' or 'pay_in_full' (required when an auto line is included). | |
| quote_id | Yes | The quote session id. | |
| best_time | No | Best time to reach the customer, e.g. 'weekday afternoons'. | |
| option_id | No | The single option to bind (or use option_ids for a bundle/split). | |
| option_ids | No | Multi-option bind. Either option_id or option_ids must be provided. | |
| contact_pref | No | How the customer prefers to be reached: 'call', 'text', or 'email'. | |
| customer_notes | No | Optional free-text notes from the customer for the agent. | |
| water_selections | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bind_url | No | |
| quote_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With destructiveHint=true and readOnlyHint=false already declared, the description adds meaningful context beyond the annotations: no payment is taken, no coverage starts from this call, a licensed agent verifies underwriting and collects payment on the secure page, and the customer can still change or cancel. It does not warn about repeated/non-idempotent calls (idempotentHint=false) creating duplicate bind requests, which is the main remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the core action and the checkout-link return, then behavior and timing. Slightly redundant in the middle ('not a purchase: no payment is taken and no coverage starts' is re-elaborated in the next sentence), but every sentence carries relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with a nested water_selections object, annotations, and an output schema, the description covers purpose, timing, side effects, and reversibility well. It omits only edge-case behavior such as re-invocation/idempotency and how the nested add-on selections are handled, which the schema covers structurally but not behaviorally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates the pay_plan-when-auto-line rule that the schema already documents and adds no meaning for option_id vs option_ids, contact_pref, best_time, or water_selections, so it does not earn credit above the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb and resource ('Sends the customer's chosen option(s) to Libertas's licensed team as a bind request') and adds a clarifying output ('returns a secure checkout link'). The explicit 'This is a request, not a purchase' scoping separates it from a purchase/checkout flow, so an agent can identify what this tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear trigger condition: 'Appropriate once the customer clearly picks an option (for example "I'll take Carrier A-Home")', plus a conditional requirement ('pay_plan is required when an auto option is included'). It does not name sibling tools or state when NOT to call it (e.g., before an option is chosen or after a bind already exists), so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resume_quoteResume a quoteARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | The quote session id to resume. | |
| verification | No | Ownership verification (email code, platform identity, or magic link); required to return PII. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| quote_id | No | |
| verification_required | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description adds genuine context beyond that: it says which signals are returned (status, options readiness, what's still needed) and discloses a privacy constraint that PII is released only to the same platform user who started the quote. It stops short of describing failure behavior when ownership verification fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the lookup and identifier, then returns, then the privacy constraint. Every sentence carries information; there is no filler, though the third sentence partly overlaps the verification schema description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be enumerated, yet the description usefully previews them. It covers lookup, return shape, and the PII/ownership rule, which is enough for a read-only 2-parameter tool; the only gap is what an agent should expect when verification is absent or fails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the nested verification object whose schema already states it is 'required to return PII', so the baseline is 3. The description's closing sentence about PII being returned only to the originating platform user lightly reinforces the verification parameter's purpose but adds little the schema does not already say.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Looks up a quote started earlier, by its quote_id') and names the identifier used for lookup, so the action is unambiguous. It does not however distinguish itself from the sibling check_quote_status, which the phrase 'Returns the quote's status' overlaps with, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'a quote started earlier' implies the resume-a-returning-session scenario, which is real usage context, but no explicit when-to-use, when-not-to-use, or alternative (e.g. check_quote_status, update_quote) is named. Guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_quoteStart a quoteAInspect
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):
Full name and date of birth for each person on the policy, with their relationship to the main applicant.
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).
Auto: year, make, and model of each vehicle, plus the name and date of birth of any other drivers.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| product | Yes | Line of business to quote: 'auto', 'home', or 'bundle'. | |
| meta_codes | No | Optional internal meta codes; ignored unless recognized. | |
| referral_source | No | Optional referral/partner source tag for attribution. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notices | No | |
| quote_id | No | |
| session_expires_at | No | |
| next_required_inputs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, non-idempotent, non-destructive), and the description adds real context beyond them: the returned quote_id is reused by later calls, the result carries customer notices whose applicability is explained by notices.how_to_use, and Libertas never requires SSN/DL/payment in-conversation (customer keys them on a secure page). It does not spell out that repeated calls create duplicate quotes, which the non-idempotent hint implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and effect, then a numbered checklist that mirrors the data-collection flow, so structure serves the task. It is on the long side and includes cross-tool field references (policy_terms.effective_date) that pull attention away from this call's own inputs, but no sentence is pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an output-schema-backed creation tool, it covers everything an agent needs: the required data to collect, the sequencing to the next call, the privacy boundary for sensitive fields, and the presence of customer notices in the result. Nothing actionable is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents product, meta_codes, and referral_source; the description adds no syntax or semantics for those fields. It references policy_terms.effective_date, a field not present in this tool's schema, which slightly muddies rather than clarifies parameter meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Opens a new home, auto, or bundled quote with Libertas Insurance') and the concrete artifact it produces (a quote_id). The word 'new' implicitly separates it from resume_quote/update_quote, and it names the downstream sibling get_quote_options, so an agent can place it in the workflow without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear entry conditions (gather the listed details one topic at a time) and explicit next step ('Then call get_quote_options'). It does not explicitly state when to prefer resume_quote or check_quote_status instead, but the 'new' framing and sequencing make the intended usage unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_contactStop contact from LibertasAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Email address to stop contacting. | ||
| phone | No | Phone number to stop calling or texting. | |
| channels | No | Which contact to stop: 'calls', 'texts', 'email', or 'all' (default 'all'). | |
| quote_id | No | The quote whose saved contact details should be opted out, if there is one. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| message | No | |
| channels | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write/idempotent/non-destructive profile, so the bar is lower. The description earns credit by disclosing a cross-system side effect ('Libertas honors it across its follow-up systems') that annotations do not convey. It omits auth requirements, but nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and its trigger before the identifier guidance. The opening enumeration of channels is slightly wordy given the schema already carries the channel enum, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described. Purpose, trigger, cross-system effect, and parameter selection are all covered; only edge behavior (e.g. what happens with no identifier at all) is unstated, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, and the description goes beyond it by explaining the selection logic with zero required parameters: use quote_id when available, otherwise email and/or phone. That disambiguation is not stated in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (records an opt-out) with a specific scope (phone call, text, email, or all), and the resource is unmistakeable. No sibling tool in the list overlaps with opt-out recording, so the agent can select it without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a strong when-to-use trigger: 'Appropriate whenever the customer asks, in any wording, to stop hearing from Libertas.' It does not name an alternative tool or an exclusion case, but no listed sibling performs this action, so routing risk is low.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_leadAsk an agent to follow upADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Customer email. | ||
| notes | No | Optional notes for the follow-up. | |
| phone | No | Customer phone number. | |
| interest | Yes | What the customer wants us to follow up about (e.g. 'renters insurance', 'life insurance', 'commercial auto') | |
| quote_id | No | Optional quote id to associate the lead with. | |
| last_name | No | Customer last name. | |
| first_name | No | Customer first name. | |
| preferred_contact_time | No | e.g. 'weekday afternoons', 'after 5pm', 'tomorrow morning' | |
| preferred_contact_method | No | How the customer prefers to be reached: 'phone', 'email', 'text', or 'any'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| lead_id | No | |
| message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only flag the generic safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=false); the description goes well beyond them by disclosing the concrete side effect ('Creates a follow-up task'), the delivery SLA ('an agent typically reaches out within one business day by phone or email'), and a PII/consent caveat. It does not explain the destructive or non-idempotent implications, so not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, followed by routing conditions, data requirements, and outcome/SLA. Three sentences with no filler. The long parenthetical enumeration of insurance lines is the only bulk, and it earns its place as routing signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the description covers purpose, trigger conditions, required inputs, expected outcome, and a consent caveat for a 9-parameter tool. What remains unstated is minor edge behavior (what happens if both email and phone are omitted, or how notes are surfaced to the agent).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds a rule the schema does not encode: it needs 'what they're interested in plus an email or phone number' – i.e. that one of the two contact fields is required in practice even though only 'interest' is formally required. That is genuine meaning beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Asks a licensed Libertas agent to follow up with the customer') and then bounds the scope to lines Libertas does not quote in chat plus customers who prefer later contact. This separates it cleanly from the sibling quote-lifecycle tools (start_quote, get_bind_link, check_quote_status) without needing either schema opened.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use: insurance lines not quoted in chat (renters, condo, landlord, umbrella, life, commercial, motorcycle, boat, RV) or a home/auto customer who would rather talk later. It also states a prerequisite ('Best to confirm with the customer before sending their contact details'). It stops short of naming a sibling alternative or stating an explicit when-not condition, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_quoteUpdate quote detailsAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| patch | Yes | 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. | |
| quote_id | Yes | The quote session id returned by start_quote. | |
| meta_codes | No | Optional internal meta codes; ignored unless recognized. |
Output Schema
| Name | Required | Description |
|---|---|---|
| applied | No | |
| quote_id | No | |
| rejected | No | |
| completeness | No | |
| ready_to_quote | No | |
| not_applied_warning | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false, but the description adds real merge semantics beyond them: 'the latest value for a field wins, and lists replace earlier lists,' plus rejection diagnostics and an adequacy signal in the response. It also discloses that certain data (credit scores, provider records, carrier choice) is not writable here, which is behavior an agent cannot infer from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and field scope, then idempotency, then the re-quote workflow, then a compliance note. The final sentence about coverage choices being the customer's and a licensed agent advising is boilerplate that does not help invocation, but the rest is tight and well-ordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, deeply nested patch tool this covers the essentials: writable branches, merge/idempotency semantics, excluded provider data, response shape, and the re-quote workflow. An output schema exists, so return details need not be expanded further, and nothing an agent needs to call it correctly appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the patch schema already enumerates every branch and states 'Only the listed fields are accepted,' so the description largely restates the schema's branch list. It adds little parameter-level detail beyond the schema (e.g., no format examples for dob, vin, or limit values), so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('Adds or changes details on a quote') and enumerates exactly which branches are writable (people, drivers, vehicles, property, coverages, discounts, prior insurance, policy terms). An agent can immediately distinguish this from start_quote or resume_quote without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete when-to-use and the follow-on call: 'If the customer changes a coverage after prices come back, apply it here and call get_quote_options again.' It also scopes what is not accepted (provider-sourced credit, claims, decoded vehicle/property data). It does not explicitly contrast with sibling tools like start_quote or resume_quote, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
check_quote_status1 field changed- added
Output schema / properties / data_warningsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +}
- Changed
update_quote2 fields changed- added
Input schema / properties / patch / properties / property / properties / roof_yearAdded value: +{} - added
Output schema / properties / not_applied_warningAdded value: +{ + "type": "string" +}
6 tool updates
- Changed
check_eligibility1 field changed- added
Input schema / properties / stateAdded value: +{ + "description": "The customer's two-letter U.S. state, if known (e.g. 'TX').", + "pattern": "^[A-Za-z]{2}$", + "type": "string" +}
- Changed
check_late_arrivals5 fields changed- changed
Output schema / descriptionPrevious value: -"Any carrier rates that arrived after the first response."New value: +"Whether a slower carrier has beaten the first-quoted best price, plus the refreshed options." - added
Output schema / properties / has_improvementAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +} - removed
Output schema / properties / new_optionsRemoved value: -{ - "type": "array" -} - added
Output schema / properties / optionsAdded value: +{ + "type": "array" +}
- Changed
start_quote1 field changed- added
Output schema / properties / noticesAdded value: +{ + "type": "object" +}
- Added
stop_contact - Changed
submit_lead4 fields changed- added
Output schema / properties / lead_idAdded value: +{ + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +} - removed
Output schema / properties / okRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / statusAdded value: +{ + "type": "string" +}
- Changed
update_quote3 fields changed- changed
Input schema / properties / patch / additionalPropertiesPrevious value: -trueNew value: +false - changed
Input schema / properties / patch / descriptionPrevious value: -"Free-form patch onto the quote. Top-level branches: pni, drivers[], vehicles[], property, coverages, discounts, policy_terms, prior_insurance, has_mortgagee, mortgage_billed_by_lender, mortgagee, is_new_purchase, current_address (only when is_new_purchase=true — customer's address TODAY; property.address remains the home being insured), follow_ups[] (post-bind follow-up flags: {interest, note} — scheduled valuables like jewelry/art, umbrella interest, etc.; recorded for the licensed team, NEVER added to the in-flight quote). See the override matrix in the Libertas MCP docs for the full overridable field list."New value: +"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." - added
Input schema / properties / patch / propertiesAdded value: +{ + "coverages": { + "additionalProperties": false, + "properties": { + "all_perils_deductible": {}, + "bi_per_accident": {}, + "bi_per_person": {}, + "coll_deductible": {}, + "comp_deductible": {}, + "csl_limit": {}, + "custom_equipment_coverage": {}, + "dwelling_a": {}, + "earthquake_endorsement": {}, + "equipment_breakdown": {}, + "extended_replacement_cost_pct": {}, + "flood_through_carrier": {}, + "foundation_water_damage": {}, + "gap_coverage": {}, + "glass_full": {}, + "hidden_water_damage": {}, + "liability_e": {}, + "loss_of_use_d": {}, + "medical_f": {}, + "medpay_limit": {}, + "mold_limit": {}, + "named_storm_deductible": {}, + "new_car_replacement": {}, + "oem_parts": {}, + "ordinance_or_law_pct": {}, + "other_structures_b": {}, + "pd_limit": {}, + "personal_property_c": {}, + "pip_limit": {}, + "rental_days_max": {}, + "rental_reimbursement_limit": {}, + "replacement_cost_contents": {}, + "scheduled_personal_property": {}, + "service_line": {}, + "service_line_limit": {}, + "sewer_water_backup": {}, + "towing_labor_limit": {}, + "uim_stacking": {}, + "umbi_per_accident": {}, + "umbi_per_person": {}, + "umpd_limit": {}, + "water_backup_limit": {}, + "water_seepage_leakage": {}, + "wind_hail_deductible": {} + }, + "type": "object" + }, + "current_address": { + "additionalProperties": false, + "properties": { + "city": {}, + "state": {}, + "street": {}, + "zip": {} + }, + "type": "object" + }, + "current_carrier_auto": {}, + "current_carrier_home": {}, + "current_premium_auto": {}, + "current_premium_home": {}, + "discounts": { + "additionalProperties": false, + "properties": { + "advance_quote": {}, + "autopay": {}, + "autopay_card": {}, + "autopay_eft": {}, + "bundle": {}, + "central_station_alarm": {}, + "claims_free_years": {}, + "early_signing": {}, + "gated_community": {}, + "group_affinity_code": {}, + "hoa": {}, + "homeowner": {}, + "loyalty": {}, + "military": {}, + "monitored_burglar_alarm": {}, + "monitored_fire_alarm": {}, + "multi_policy_bundle": {}, + "multi_vehicle": {}, + "new_home": {}, + "non_smoker_household": {}, + "paperless": {}, + "paperless_billing": {}, + "prior_insurance_carrier": {}, + "prior_insurance_continuous": {}, + "prior_insurance_years": {}, + "recently_renovated": {}, + "smart_home_devices": {}, + "telematics_opt_in": {} + }, + "type": "object" + }, + "drivers": { + "items": { + "additionalProperties": false, + "properties": { + "accident_prevention_course": {}, + "assigned_vehicle_id": {}, + "date_of_birth": {}, + "defensive_driving_completed": {}, + "dob": {}, + "education_level": {}, + "first_name": {}, + "gender_on_license": {}, + "good_student": {}, + "last_name": {}, + "license_state": {}, + "marital_status": {}, + "military_status": {}, + "occupation": {}, + "relationship_to_pni": {}, + "self_reported_accidents": {}, + "self_reported_violations": {}, + "student_away_from_home": {}, + "years_licensed": {} + }, + "type": "object" + }, + "type": "array" + }, + "follow_ups": { + "items": { + "additionalProperties": false, + "properties": { + "interest": {}, + "note": {} + }, + "type": "object" + }, + "type": "array" + }, + "has_mortgagee": {}, + "is_new_purchase": {}, + "mortgage_billed_by_lender": {}, + "mortgagee": { + "additionalProperties": false, + "properties": { + "clause_address": {}, + "company": {}, + "loan_number": {} + }, + "type": "object" + }, + "pni": { + "additionalProperties": false, + "properties": { + "dob": {}, + "email": {}, + "first_name": {}, + "gender_on_license": {}, + "last_name": {}, + "marital_status": {}, + "phone": {}, + "preferred_language": {} + }, + "type": "object" + }, + "policy_terms": { + "additionalProperties": false, + "properties": { + "effective_date": {}, + "paperless_documents": {}, + "pay_plan": {}, + "term_length": {} + }, + "type": "object" + }, + "prior_insurance": { + "additionalProperties": false, + "properties": { + "carrier": {}, + "expiration_date": {}, + "policy_limits": {}, + "years_continuous": {} + }, + "type": "object" + }, + "property": { + "additionalProperties": false, + "properties": { + "address": {}, + "attached_garage": {}, + "basement_type": {}, + "business_on_premises": {}, + "business_type": {}, + "claim_details": {}, + "claims_in_last_5_years": {}, + "construction_type": {}, + "distance_to_fire_station": {}, + "distance_to_hydrant": {}, + "dog_bite_history": {}, + "dog_breed": {}, + "foundation_type": {}, + "garage_type": {}, + "hail_resistant_roof": {}, + "number_bathrooms": {}, + "number_bedrooms": {}, + "number_kitchens": {}, + "number_stories": {}, + "occupancy": {}, + "pool_diving_board": {}, + "pool_fenced": {}, + "pool_slide": {}, + "pool_type": {}, + "protection_class": {}, + "recent_renovations": {}, + "roof_age_years": {}, + "roof_material": {}, + "roof_shape": {}, + "square_footage": {}, + "trampoline": {}, + "trampoline_safety_net": {}, + "ul_impact_type": {}, + "year_built": {} + }, + "type": "object" + }, + "vehicles": { + "items": { + "additionalProperties": false, + "properties": { + "abs": {}, + "airbags": {}, + "annual_mileage": {}, + "anti_theft_device": {}, + "commute_miles_one_way": {}, + "custom_equipment_value": {}, + "daytime_running_lights": {}, + "garaging_address": {}, + "garaging_zip": {}, + "lienholder": {}, + "make": {}, + "model": {}, + "ownership_status": {}, + "primary_use": {}, + "purchase_date": {}, + "trim": {}, + "vin": {}, + "year": {} + }, + "type": "object" + }, + "type": "array" + } +}
1 tool update
- Changed
get_bind_link2 fields changed- changed
Input schema / properties / option_id / descriptionPrevious value: -"The option the customer chose to bind, e.g. 'opt_home_a'."New value: +"Selected option to include on the secure bind-request page." - changed
Input schema / properties / quote_id / descriptionPrevious value: -"The quote session id."New value: +"Quote whose saved customer email will receive the secure link."
1 tool update
- Changed
check_quote_status2 fields changed- changed
Output schema / descriptionPrevious value: -"Live rating status plus masked options (carriers hidden until the bind step)."New value: +"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)." - added
Output schema / properties / needsAdded value: +{ + "type": [ + "object", + "null" + ] +}
2 tool updates
- Changed
check_eligibility1 field changed- changed
Output schema / properties / state / typePrevious value: -"string"New value: +[ + "string", + "null" +]
- Changed
get_option_details2 fields changed- changed
Output schema / properties / premium_annual / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Output schema / properties / premium_monthly / typePrevious value: -"number"New value: +[ + "number", + "null" +]
2 tool updates
- Changed
request_bind_inline4 fields changed- added
Input schema / properties / water_selections / properties / foundation_water / descriptionAdded value: +"Include the foundation-water-damage add-on." - added
Input schema / properties / water_selections / properties / service_line / descriptionAdded value: +"Include the service-line water add-on." - added
Input schema / properties / water_selections / properties / sewer_backup / descriptionAdded value: +"Include the sewer / water-backup add-on." - added
Input schema / properties / water_selections / properties / water_seepage / descriptionAdded value: +"Include the water-seepage & leakage add-on."
- Changed
resume_quote3 fields changed- added
Input schema / properties / verification / properties / code / descriptionAdded value: +"The verification code (for the email_code method)." - added
Input schema / properties / verification / properties / method / descriptionAdded value: +"Verification method: email code, platform-identity header, or magic-link token." - added
Input schema / properties / verification / properties / token / descriptionAdded value: +"The verification token (for the magic_link method)."
11 tool updates
- First observed
check_eligibility - First observed
check_late_arrivals - First observed
check_quote_status - First observed
get_bind_link - First observed
get_option_details - First observed
get_quote_options - First observed
request_bind_inline - First observed
resume_quote - First observed
start_quote - First observed
submit_lead - First observed
update_quote
Publisher details
- Operator
- Libertas Group, LLC (d/b/a Libertas Insurance) · Publisher source
- Operator website
- https://quotor.ai · Publisher source
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://quotor.ai/connect/ · Publisher source
- Trust center
- Not available
- Restrictions
- No authentication required; anonymous use is rate- and spend-limited per IP, with optional free partner keys for higher limits. Quoting live for Texas risks only; eligibility is enforced per state. No paid plan. Binding is completed by a licensed agent via a secure hand-off link — never an automated purchase. · Publisher source
Related MCP Connectors
Agent-native insurance quoting protocol — sandbox, MCP + REST, eligibility pre-flight
Insurance brokerage for AI agents — quote, bind, and settle in USDC
Live Nigerian insurance quotes across insurers, free policy check-up, and hosted checkout links.
Agent-native commerce: real quotes, reversible holds, and a whole business you own.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenance62 real-time data tools for AI agents via MCP. Finance, crypto, FMCSA, sanctions, courts, weather, vehicles, cybersecurity. One bearer token, one bill. Free tier available.MIT
- AlicenseCqualityDmaintenanceOne MCP install that lets your AI agents discover and pay (x402 micropayments, USDC on Base + Solana) for 66 specialized real-time intelligence APIs - finance, crypto, insurance, immigration, legal, markets and more. 68 tools, pey-per-query, no subscription.6939 npm3Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to query live pricing, resale, company KYC, SEC filings, patents, trademarks, public tenders, auctions and related market intelligence through MCP, returning clean typed JSON from primary sources on a pay-per-result basis.MIT
- FlicenseNot gradedqualityBmaintenanceDecentralized insurance and escrow for AI agents. Buy coverage against API failures and validator slashing via MCP tools. Live on X Layer (chainId 196).2-
Glama MCP Gateway
Add one secure layer between your agents and this server.