Skip to main content
Glama

Live carrier quotes

live_carrier_quotes
DestructiveIdempotent

Purpose: confirm quote estimates on the carriers' own quote sites, via Foresee agents completing their real quote flows.

    IDEMPOTENT, keyed on the profile: the first call commissions the
    walks; calling again with the same profile collects progress and
    results instead of re-submitting anything — whatever the ask. A
    profile that has already been walked returns those results (the
    carriers are never asked twice): the envelope's
    ``coverage_selection`` names the ask the walk typed, and each quote
    carries the carrier's other recorded coverage options as
    ``variants``, so a new ask reads the same run. So call once to
    start, then re-call after a few minutes to collect; agents still
    working report their stage.

    No sign-in is required. The one hard requirement is the user's own
    consent, captured in-band: BEFORE the commissioning call, you MUST
    tell the user, plainly: Foresee will submit their details to the
    named carriers; the carriers may obtain their credit-based insurance
    score (a soft pull, with no impact on your credit score); and the
    carriers may contact them by email or phone. Then get their explicit
    go-ahead and pass their affirmation VERBATIM as ``user_authorization``
    (e.g. "yes, go ahead"). The affirmation is stored as the durable
    consent record for the dispatch; without one the call is refused with
    ``authorization_required``. Foresee only collects quotes; it does
    not take payment or bind insurance.

    Collect the ``identity`` fields in chat. They may be omitted only
    when the session is signed in to Foresee and the user has saved their
    profile on the Foresee site — then their consented profile-of-record
    is used, refined by anything passed in ``profile``.

    A ``missing_facts`` response is normal: carrier forms insist on facts
    (body style, purchase date, age first licensed…) that Foresee will not
    invent. Each ``needs`` entry carries the carrier (``scope``), the
    facts in the walk's own words (``need``), and ``fields[]`` — per
    fact, the ``ask`` beside the exact schema path to pass the answer
    under (``field``, e.g. ``auto.vehicles[].purchase_date``;
    ``identity.…`` paths go on ``identity``). Ask the user for exactly
    those facts, then call again with the answers merged in at those
    paths. A fact with no ``field`` has no profile home yet — relay
    that carrier's ask as unavailable rather than guessing a key. When
    the dispatch was PARTIAL (some carriers walked, some skipped over
    missing facts), follow the receipt's ``recover`` block: re-call
    with the new facts merged AND ``carriers`` set to exactly
    ``recover.carriers`` — a changed profile is a new dispatch, and an
    unscoped re-call would re-submit the already-walked carriers too.

    Unasserted MINOR facts are not asked: a form field that is really a
    claim nobody made (an anti-theft device, a defensive-driving course,
    years licensed abroad) is answered with the declared no-claim value —
    never a discount claim — and every one comes back in ``assumptions``
    (``field`` + the ``assumed`` value submitted). Relay them with the
    results; if the user corrects one, re-call with the real value at
    that path.

    ``lines`` names WHICH line to walk, exactly one per call (a fan-out
    drives one form family): ``{"auto": {...the ask...}}``,
    ``{"home": null}``, or ``{"renters": {"coverage_c": 30000,
    "coverage_e": 100000, "coverage_f": 1000, "deductible": 500}}``. An
    AUTO walk's ask is REQUIRED — the limits and deductibles the agents
    ask the carriers for, as actual numbers (`bi` "100/300", `pd` 100,
    `coll_deductible` 500, `comp_deductible` 500, the same four axes as
    quote_insurance); without it the tool answers with the
    selection-required message; ask the user, then call again. A HOME
    walk takes NO ask — the carrier's own form prices its package
    (dwelling amount from its replacement-cost estimate) and the agents
    report what it chose. A RENTERS walk requires its four axes as
    actual dollars — ``coverage_c`` (personal-property/contents),
    ``coverage_e`` (personal liability), ``coverage_f`` (guest medical)
    and ``deductible`` — the agents type the user's numbers on the form
    instead of accepting its defaults, and Foresee never invents them.

    Quotes come back with evidence. ``quote.premium`` is VERBATIM as
    the carrier's page printed it, and ``term_months`` says what it
    covers — a 6-month figure is not a monthly one. When term_months
    is known, present the monthly equivalent (premium ÷ term_months)
    so carriers compare on one basis, the page's own figure beside it;
    without it, relay the printed premium and say the monthly
    equivalent is unknown. A carrier may
    also decline the risk — a real answer to relay, not an error.
    ``skipped`` and ``not_dispatched`` name the carriers NOT walked,
    each with the reason — relay those too; a carrier never silently
    vanishes.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
linesNo
profileYes
carriersNo
identityNo
user_authorizationNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNo
errorNo
needsNoFacts carrier forms insist on that the profile does not carry, per carrier (scope). Each entry's fields[] pairs the walk's own ask with the exact profile/identity schema path to supply it under (field) — collect the answers from the user and re-call; never invent them
agentsNo
detailNo
statusNo'in_progress' / 'partial' / 'complete' — re-call the tool with the same arguments to collect
recoverNoOn a partial receipt: how to add the skipped carriers without re-submitting the walked ones — re-call with the missing facts merged AND carriers set to exactly recover.carriers (a changed profile is a new dispatch; unscoped, it would re-walk everyone)
skippedNo
assumptionsNoUnasserted form facts this dispatch resolved to declared no-claim answers (never a discount claim) — each entry names the profile path (field) and the value submitted (assumed). Relay every one with the results; a user who corrects one re-calls with the real value in the profile
example_argumentsNoOn a profile_required refusal: a correctly-wrapped call to imitate — re-call with the user's facts in this shape
coverage_selectionNoThe ask the walks TYPED — what each headline premium is for. A walked profile answers any ask without re-submitting: if the user's ask differs, read each quote's bound cover and variants (the carrier's other recorded options) and present the match
authorization_recordedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Substantially deepens what the annotations convey: idempotency mechanics ('calling again with the same profile collects progress and results instead of re-submitting anything — whatever the ask'), the mandatory in-band consent disclosure with an exact script and the 'authorization_required' refusal, soft-pull credit-score disclosure, 'the carriers are never asked twice', changed-profile-is-a-new-dispatch semantics, and 'a carrier never silently vanishes.' This is consistent with destructiveHint=true (real submission to carriers) and readOnlyHint=false, so there is no contradiction.

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?

Long (~700 words) but appropriately front-loaded: purpose and the critical idempotency/collection contract come first, followed by consent, then recovery/assumption handling, then per-line semantics, then result interpretation. Paragraphs are organized with bolded lead-ins and each covers a distinct operational concern. Minor repetition in the trust framing ('Foresee never invents', 'Foresee only collects quotes') and some redundancy between the no-sign-in and identity paragraphs keep it from a 5.

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?

Complete for a complex async, consent-gated, multi-line tool: covers the mandated consent disclosure, the start/collect protocol, missing-facts and partial-dispatch recovery, unasserted-fact assumption handling, and quote interpretation (premium verbatim, term_months monthly-equivalent conversion, declined-risk-as-answer, skipped/not_dispatched reporting). Since an output schema exists, return values need not be re-documented, and nothing needed to invoke correctly is missing.

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

Parameters5/5

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

At 0% schema description coverage, the description fully compensates for all five arguments: it spells out the exact lines map shapes for auto/home/renters, requires the auto ask, mandates that carriers be set to recover.carriers on partial dispatches, defines when identity may be omitted, and requires user_authorization to be the user's verbatim affirmation with an example ('yes, go ahead'). Concrete key names (coverage_c, coverage_e, coverage_f, deductible, bi, pd, coll_deductible, comp_deductible) are enumerated against the schema fields.

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?

States a specific purpose with a specific mechanism: 'confirm quote estimates on the carriers' own quote sites, via Foresee agents completing their real quote flows.' The verb (confirm), resource (carrier quote sites), and mechanism are all clear, and the description's use of 'the same four axes as quote_insurance' situates it relative to its sibling rather than repeating it.

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?

Provides an exceptionally detailed operational protocol: call once to start then re-call after a few minutes to collect, missing_facts → ask the user and re-call with answers merged at exact paths, partial dispatch → follow the recover block with carriers set exactly to recover.carriers, assumption corrections → re-call with the real value. However, it never explicitly states when to prefer this tool over the sibling quote_insurance — the routing decision is left to inference rather than stated.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.