Skip to main content
Glama

Server Details

Real, bindable home & auto insurance quotes via MCP — actual carrier rates, not estimates. Texas today, expanding across the US. Agents check eligibility, run a live multi-carrier quote, compare carrier-masked options, and hand the customer a secure link for a licensed agent to finalize the bind (never an automated purchase). 11 tools; read-only tools are open, quoting/binding tools use a free self-serve API key.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 11 of 11 tools scored.

Server CoherenceA
Disambiguation4/5

Each tool targets a distinct step in the quoting workflow (eligibility, start, update, status, options, details, binding, resume, lead capture). Some overlap exists between get_bind_link and request_bind_inline, but descriptions clarify usage. Overall clear.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern using snake_case (e.g., check_eligibility, get_quote_options, request_bind_inline). No mixing of conventions.

Tool Count5/5

11 tools cover the insurance quoting lifecycle well. The number is appropriate for the domain without being sparse or overwhelming.

Completeness4/5

The tool set covers the major steps: eligibility, quoting, status, options, updates, binding, and lead capture. Missing a quote cancellation or decline tool, but core workflows are complete.

Available Tools

11 tools
check_eligibilityA
Read-only
Inspect

Confirm whether Libertas can quote and bind insurance for the customer in their state. Call this first — before collecting any personal details — when the customer asks about insurance prices, switching carriers, or shopping for coverage. State is supplied automatically from the request context (the platform's location consent flow); you don't need to ask the customer for state to call this. Returns whether quoting is available, whether binding is available, and a plain-language explanation the customer can read.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentNoWhether you're checking ability to 'quote' or to 'bind' (default 'quote').quote
productYesLine of business: 'auto', 'home', or 'bundle' (home + auto).

Output Schema

ParametersJSON Schema
NameRequiredDescription
stateNo
can_bindNo
can_quoteNo
next_stepNo
explanationNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint and openWorldHint. The description adds context: it checks eligibility, returns whether quoting/binding is available, and a plain-language explanation. It also clarifies state is from context, which aligns with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with purpose, and every sentence adds value. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (not shown but mentioned), the description need not explain return values. It does mention the outputs (quoting/binding availability and explanation). Combined with annotations and schema, it is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (both parameters have descriptions). The description does not add new parameter details beyond mentioning product and intent implicitly. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Confirm whether Libertas can quote and bind insurance for the customer in their state.' This provides a specific verb and resource, clearly distinguishing it from sibling tools like 'check_late_arrivals' or 'check_quote_status'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Call this first — before collecting any personal details — when the customer asks about insurance prices, switching carriers, or shopping for coverage.' It also explains that state is supplied automatically, so the agent doesn't need to ask.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_late_arrivalsA
Read-only
Inspect

Save-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, etc.) run slower than the initial set and may have come back with a better rate while the customer was deliberating. This tool:

  1. Pulls a fresh read of all rated carriers.

  2. Compares the current cheapest bundle/LOB price to the original first-quoted best.

  3. Returns has_improvement=true ONLY if a late carrier beats the original by >= $100/yr OR >= 5% — a threshold meaningful enough to justify interrupting the customer.

CALL THIS ONLY WHEN:

  • check_quote_status has returned 'quoted' at least once (there's a baseline to compare).

  • The customer just expressed price resistance or hesitation (not a closed positive).

  • You have NOT called check_late_arrivals in the last 2 turns (don't spam).

DO NOT CALL WHEN:

  • The customer is actively committing ("yeah let's go with A") — that's a close moment, 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, pivot to value positioning against the options on the table. Don't bluff a "better one is coming" 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").

ParametersJSON Schema
NameRequiredDescriptionDefault
quote_idYesThe quote session id to check for late-arriving carrier rates.

Output Schema

ParametersJSON Schema
NameRequiredDescription
new_optionsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description adds detailed behavioral context: the tool only returns improvement if the threshold is met (>= $100/yr or >= 5%), and it explains the internal logic (pulls fresh reads, compares cheapest). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with numbered steps and bullet points, making it easy to scan. It is front-loaded with the key purpose and conditions, though slightly longer than necessary. However, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and the presence of annotations and output schema, the description is fully complete. It covers the purpose, triggers, thresholds, result handling, and fallback actions, leaving no ambiguity for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the single parameter quote_id is adequately described in the schema. The description does not add significant new information beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Save-the-sale tool' for detecting late-arriving better rates when a customer shows dissatisfaction. It distinguishes itself from siblings like check_quote_status by focusing on late carriers and specific triggering conditions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-call conditions (e.g., after check_quote_status returns 'quoted', customer hesitation, not spammed) and when-not-to-call conditions (customer committing, hasn't seen options). Also includes guidance on what to do with the result, making it highly actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_quote_statusA
Read-only
Inspect

Check rating + live-finishing progress. Call between wait-phase questions (every customer turn or two after get_quote_options). Returns one of:

  • 'running' — indicatives still landing; continue the wait-phase conversation, call again next turn.

  • 'quoted' — options[] is populated. CHECK THE 'finishing' BLOCK: when finishing.active=true, the exact bindable rates are STILL being captured live at the carrier portals — present the price ranges confidently as honest estimates (the low end is the carrier's own starting figure; NEVER promise the final number can't exceed the range), keep the conversation going, and keep checking on later turns; cards harden to 'verified' automatically as walks complete. When finishing.active=false, the run is over: cards marked 'verified' are exact bindable numbers; 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.

  • 'needs_data' — carriers can't rate until the customer supplies the fields in needs.prompts (e.g. a driver's license number, a VIN, or an additional driver's name/date of birth — each prompt says who/what it's for). Ask the customer conversationally, apply the answers with update_quote (the prompt 'field' values are the exact patch paths, e.g. drivers[1].date_of_birth), then call get_quote_options to re-run. Repeat as many times as it takes — this is an ask, NOT a failure. needs may also ride along with 'quoted' when one line rated and the other still needs info.

  • 'error' — all carriers errored; flag it honestly and offer to retry. Each option carries rate_state ('verified' | 'verifying' | 'estimate') and, for unverified options, price_range {low, high}. NEVER mention carrier counts or real carrier names in chat.

ParametersJSON Schema
NameRequiredDescriptionDefault
quote_idYesThe quote session id to poll.
max_optionsNoMaximum options to return per line (1-5, default 3).

Output Schema

ParametersJSON Schema
NameRequiredDescription
needsNo
statusNo
optionsNo
quote_idNo
progress_pctNo
carrier_names_revealedNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint and openWorldHint, but the description adds critical behavioral context: detailed explanation of each status, the distinction between finishing.active=true/false for 'quoted', and the warning about never mentioning carrier counts or real carrier names.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with bullet points for each status, making it easy to scan. It front-loads the purpose. While it is moderately lengthy, every sentence adds value. Could be slightly more concise but remains clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple statuses, interactions with other tools, and detailed return value interpretation), the description is highly complete. It explains what to do for each scenario and references the output schema implicitly, making it fully informative for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for both parameters (quote_id, max_options). The description does not add significant new meaning beyond the schema, which already includes descriptions. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Check rating + live-finishing progress.' It specifies the verb 'Check' and the resource 'quote status', distinguishing it from siblings like get_quote_options which initiates quotes and get_option_details which retrieves specific option details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to call: 'between wait-phase questions (every customer turn or two after get_quote_options)'. It also provides guidance for each return status, including when to use alternative tools like get_quote_options for 'timeout' and update_quote for 'needs_data'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_option_detailsA
Read-only
Inspect

Pull the full coverage breakdown, deductibles, applied discounts, and payment plan options for a single masked option (Home Carrier A, Auto Carrier B, etc.). Use when the customer wants to dig into a specific quote before deciding. Carrier name remains masked.

ParametersJSON Schema
NameRequiredDescriptionDefault
quote_idYesThe quote session id.
option_idYesThe option to detail, e.g. 'opt_home_a' from get_quote_options.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coveragesNo
premium_annualNo
premium_monthlyNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, description adds that carrier name remains masked and lists returned data types. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, no redundant information, front-loaded with key details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return format isn't required. Description covers all main aspects of behavior and use case. Minor gap: no mention of error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters fully (100% coverage). Description provides example for option_id but does not add significant meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description starts with specific verb 'Pull' and lists exact resources (coverage breakdown, deductibles, etc.) for a single masked option. Clearly distinguishes from sibling tools like get_quote_options which lists all options.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Use when the customer wants to dig into a specific quote before deciding.' Implies not to use for listing options, though no explicit alternatives named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_quote_optionsAInspect

Fire all eligible A-rated carriers in parallel AND kick off live rate-finishing. RETURNS IMMEDIATELY — does NOT wait.

TWO STAGES follow:

  1. First numbers land in 30–90 seconds. Options surface as honest price RANGES — the low end is the carrier's indicative, so the final verified rate usually lands AT OR BELOW the low end.

  2. The system keeps working for 2–10 minutes after that, logging into carrier portals and walking each competitive quote to its exact bindable rate. Option cards harden from "estimated range" to "verified" as each carrier completes. check_quote_status reports this via its 'finishing' block.

What you do during the wait: KEEP THE CONVERSATION GOING with the wait-phase playbook in the system prompt (waters first, then current premium — top priority — then claims color, pets, pool, start date, payment preference). Narrate the real finishing work honestly in ONE short line when relevant; never quantify carriers or name them.

Call get_quote_options again ONLY if a rating-changing input changes (waters toggle locally — never re-fire for those).

ParametersJSON Schema
NameRequiredDescriptionDefault
quote_idYesThe quote session id returned by start_quote.
max_optionsNoMaximum options to return per line (1-5, default 3).

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
messageNo
quote_idNo
expected_secondsNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool returns immediately and triggers two asynchronous stages, with specific time estimates. It explains that initial options are honest price ranges and that the final rate is usually at or below the low end. Annotations (readOnlyHint=false, openWorldHint=true) are consistent and the description adds significant behavior beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long but structured with clear sections and bolded key points. It front-loads the immediate action and explains stages. Some repetition (e.g., stages listed twice) could be trimmed, but the density of useful information justifies the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (asynchronous, parallel, stages, price ranges), the description thoroughly covers behavior, timing, what to do during wait, and when to re-call. An output schema exists, so return values are covered elsewhere. The description provides complete context for an agent to use this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with two parameters described. The description adds context for max_options (per line) not in schema. Since coverage is high, baseline 3 is appropriate, but the added context merits a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fires all eligible A-rated carriers in parallel and starts live rate-finishing, returning immediately. It distinguishes itself from siblings like check_quote_status (which reports finishing progress) and get_option_details. The resource is 'quote options' and the verb 'get' is sufficiently specified by the elaboration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance on when to use (right after starting a quote) and when to call again (only if rating-changing input changes, with a specific exception for 'waters toggle'). It also tells what to do during the wait (keep conversation going with a prescribed playbook) and references check_quote_status for status updates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_bind_inlineAInspect

Submit the customer's bind request from the chat. Triggers an internal task for our licensed team to follow up. THIS IS NOT INSTANT BIND — no payment is collected and no coverage starts from this call; a licensed agent completes underwriting verification, payment, and carrier confirmation afterward, and the customer can still change or cancel the request. Because this step is non-binding and reversible, the customer's own clear choice ("I'd like to go with Carrier A", "let's do A and A", "I'll take Carrier B") is sufficient confirmation to submit — an additional "are you sure?" prompt is not required, though you should always honor your own platform's confirmation practices. NEVER name a real carrier in chat output — stay in "Carrier A/B/C" labels.

ParametersJSON Schema
NameRequiredDescriptionDefault
pay_planNoPay plan: 'monthly_eft' or 'pay_in_full' (required when an auto line is included).
quote_idYesThe quote session id.
best_timeNoBest time to reach the customer, e.g. 'weekday afternoons'.
option_idNoThe single option to bind (or use option_ids for a bundle/split).
option_idsNoMulti-option bind. Either option_id or option_ids must be provided.
contact_prefNoHow the customer prefers to be reached: 'call', 'text', or 'email'.
customer_notesNoOptional free-text notes from the customer for the agent.
water_selectionsNoCustomer-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

ParametersJSON Schema
NameRequiredDescription
bind_urlNo
quote_idNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that it triggers an internal task, is non-binding, reversible, no payment collected, and requires agent follow-up, adding value beyond annotations which only set readOnlyHint=false and destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with core purpose, but contains some conversational guidance that could be tighter. Still well-structured and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters and nested objects, the description covers behavioral context well and output schema exists. However, it could mention the output more explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description does not add additional meaning beyond schema descriptions; it only mentions pay_plan requirement inline but schema already covers it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Submit the customer's bind request from the chat' and distinguishes from siblings like get_bind_link and submit_lead by emphasizing this is routing to an agent, not instant bind.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (customer expresses clear choice), what not to do (not instant bind, don't name real carriers), and provides guidance on confirmation practices.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resume_quoteA
Read-only
Inspect

Pick up an existing quote that was started in a previous session or on a different platform. The customer supplies a quote ID. Verification: if the same authenticated user (OAuth user_id matches across sessions), no extra verification is needed; otherwise the customer needs to provide an email code that was sent at quote start. Returns the current status, a summary of what's collected so far, and whether rate options are already available to review.

ParametersJSON Schema
NameRequiredDescriptionDefault
quote_idYesThe quote session id to resume.
verificationNoOwnership verification (email code, platform identity, or magic link); required to return PII.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
quote_idNo
verification_requiredNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds detail beyond annotations (readOnlyHint, openWorldHint) by explaining verification requirements and return content (status, collected data, rate availability). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three well-structured sentences, front-loaded with purpose, no redundant information. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given schema and output schema coverage, the description fully explains return values and the verification logic, making the tool usage clear without gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters adequately; description adds value by explaining verification context and when it is required, enhancing understanding beyond raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool resumes an existing quote started in a previous session or platform, distinguishing it from siblings like start_quote and check_quote_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Specifies when to use (resume a session) and mentions verification conditions based on user identity. Implicitly contrasts with start_quote but does not explicitly list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_quoteAInspect

Begin a new home, auto, or bundled insurance quote. Returns a quote ID to use on every following call. Call this when the customer wants to get an insurance price.

INTAKE ORDER (Kyle 2026-06-11 — collect in this order, ONE coherent chunk per turn):

  1. HOME/BUNDLE: full name + date of birth for EVERYONE on the policy (relationship for non-PNI).

  2. Address of the home + "is this a new purchase, or one you've owned a while?" (new purchase → ALSO capture current_address — where they live today; property.address stays the home being bought). Then mortgage + escrow + "roughly how old is the roof? — 'I don't know' is a fine answer" ride along (roof unknown → move on, never probe; roof REPLACED → one follow-up: hail-resistant / Class 1–4? → property.hail_resistant_roof + property.ul_impact_type). The home address doubles as auto garaging unless the cars live elsewhere.

  3. AUTO/BUNDLE: year/make/model of every vehicle.

  4. Any drivers NOT already named in step 1 — names + DOBs + relationship.

  5. Email + phone, framed as "where should I send your final numbers?" — the consent 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 via update_quote and move on — do NOT turn this into a coverage consultation. Scheduled valuables (jewelry, art, guns, collections) are a POST-BIND follow-up: record them under the follow_ups patch branch and tell 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 — the customer should reach prices fast.

ParametersJSON Schema
NameRequiredDescriptionDefault
productYesLine of business to quote: 'auto', 'home', or 'bundle'.
meta_codesNoOptional internal meta codes; ignored unless recognized.
referral_sourceNoOptional referral/partner source tag for attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
quote_idNo
session_expires_atNo
next_required_inputsNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint: false, openWorldHint: true), the description details behavioral traits: returns a quote ID, outlines a precise data collection sequence with prohibitions (e.g., roof unknown → move on, never probe; scheduled valuables are post-bind), and outlines the follow-up action (call get_quote_options). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very verbose, including a detailed intake order with specific names, dates, and procedural instructions that extend far beyond a typical tool description. While the first sentence is clear, the overall length hinders quick scanning for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (3 parameters, output schema, annotations), the description is complete: it covers purpose, input requirements, step-by-step usage, behavioral constraints, and even the next call to get_quote_options. It provides all necessary context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all three parameters. The description adds no extra semantic meaning to the parameters beyond repeating the product enum. For a high-coverage schema, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear statement: 'Begin a new home, auto, or bundled insurance quote. Returns a quote ID to use on every following call.' This distinctly identifies the tool's function and differentiates it from sibling tools like resume_quote or get_quote_options which handle existing quotes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Call this when the customer wants to get an insurance price.' It provides a detailed step-by-step intake order, including when to stop collecting data and when to call get_quote_options. It also instructs not to over-collect, giving clear usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_leadAInspect

Capture a lead for an insurance product Libertas doesn't quote inline (renters, life, commercial, motorcycle, boat, RV, umbrella, condo, landlord, 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/bundle, AND has shared a name + email or phone. Confirm with the customer that you're going to have someone reach out, then call this tool.

  • The customer says "have someone call me later" or similar even on a home/auto inquiry.

  • The customer mentions an unusual circumstance and wants a human follow-up.

DO NOT CALL WHEN:

  • The customer is still actively answering questions in the home/auto intake flow — keep going through the regular intake.

  • You don't have any contact info yet — ask for name + email/phone first.

What it does: writes a Leads row tagged with the line of interest, contact info, preferred follow-up time, and any notes you supply. A licensed Libertas agent will reach out within one business day. Returns a confirmation message you can paraphrase to the customer ("you're on our list — someone from the team will reach out about [interest]").

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoCustomer email.
notesNoOptional notes for the follow-up.
phoneNoCustomer phone number.
interestYesWhat the customer wants us to follow up about (e.g. 'renters insurance', 'life insurance', 'commercial auto')
quote_idNoOptional quote id to associate the lead with.
last_nameNoCustomer last name.
first_nameNoCustomer first name.
preferred_contact_timeNoe.g. 'weekday afternoons', 'after 5pm', 'tomorrow morning'
preferred_contact_methodNoHow the customer prefers to be reached: 'phone', 'email', 'text', or 'any'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool creates data (readOnlyHint false, idempotentHint false). The description adds context about CRM storage and follow-up timing, but could mention potential duplicate creation or error states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is thorough with clear sections, though slightly verbose with repeated statements about what it does. Structure is good but could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers when to use, what it does, and general parameter roles. With an output schema existing, return details are sufficient. Misses error handling or rate limits, but overall complete for the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage, so the schema already explains each parameter. The description adds usage context (e.g., need contact info) but doesn't enhance parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the tool captures leads for insurance products not quoted inline or when customers request later contact. It distinguishes itself from sibling tools like start_quote and check_eligibility by focusing on lead submission rather than quoting or eligibility.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'CALL THIS WHEN' and 'DO NOT CALL WHEN' sections provide detailed conditions, including customer consent and contact info requirements. This leaves no ambiguity about appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_quoteA
Idempotent
Inspect

Set or refine any quote parameter except regulated enrichment fields (credit score, MVR, CLUE, VIN-decoded vehicle attributes, public-record property attributes). Idempotent — call as many times as needed; the most recent value wins. Returns which fields were applied, which were rejected (with reasons), and whether the quote has enough info to run.

WHEN TO CALL:

  • After collecting the required-minimum from the customer in start_quote

  • Whenever the customer changes their mind about any coverage, deductible, discount, payment plan, or term length

  • When the customer shares a declarations page and you have new values to sync

CONVERSATION STYLE for coverages (per Kyle, the agency principal): After the first rates land, walk through major coverages one-or-two-at-a-time with a soft-sell framing. Example: "You have $200,000 of personal property coverage on this quote — that's the carrier's minimum and you can only go up. Does that sound like enough for your stuff?" Let the customer pick. Then call update_quote with the new value and get_quote_options again — re-quoting is free and fast (10–60 seconds).

REGULATED FIELDS (will be rejected with structured reason): drivers[].license_number, .ssn, .mvr_, .credit_score; payment fields; carrier name; vin_decoded_attributes. The system pulls these directly from the bureaus at quote time or collects them at bind on libertasinsurance.com.

ParametersJSON Schema
NameRequiredDescriptionDefault
patchYesFree-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.
quote_idYesThe quote session id returned by start_quote.
meta_codesNoOptional internal meta codes; ignored unless recognized.

Output Schema

ParametersJSON Schema
NameRequiredDescription
appliedNo
quote_idNo
rejectedNo
completenessNo
ready_to_quoteNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true and destructiveHint=false. The description adds valuable context: it confirms idempotent behavior ('call as many times as needed; the most recent value wins'), explains that regulated fields are rejected with structured reasons, and notes the return includes what was applied/rejected and whether the quote can run. This goes beyond annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with headers (WHEN TO CALL, CONVERSATION STYLE, REGULATED FIELDS), making it scannable. While it's longer than some, every section serves a purpose—usage guidance, behavioral notes, and parameter clarification. It is front-loaded with the core purpose, though a small trim could improve conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (free-form patch, many fields, regulated exclusions) and the presence of an output schema, the description covers key aspects: what fields are rejectable, idempotency, return info, and even conversational examples. It does not explain return values (since output schema exists) and omits some edge cases, but it is sufficiently complete for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 enhances the 'patch' parameter by explaining it's free-form, listing top-level branches, and adding nuanced details like 'current_address' usage and 'follow_ups' behavior. For 'quote_id', it clarifies the source (start_quote). This adds meaningful guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Set or refine') and explicitly identifies the resource ('any quote parameter except regulated enrichment fields'). It clearly distinguishes itself from siblings by stating what it does and what it doesn't do, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WHEN TO CALL' section provides three concrete scenario-based usage triggers (after start_quote, when customer changes mind, when syncing new values). While it doesn't explicitly list when NOT to call, it implies regulated fields should be handled differently, and includes a conversation style hint. This is strong guidance, though lacking direct alternatives for excluded cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources