Skip to main content
Glama

Coverage Cat

Umbrella consumer offer select

umbrella_consumer_select
DestructiveIdempotent

Continue the consumer-prefill umbrella flow after quotes are ready. Reuse uid and the latest intake_access_token from the previous successful Coverage Cat response on each follow-up. MCP 2026-07-28 is stateless and requires that token. Legacy MCP hosts may also preserve hidden shopper session authorization. Keep tokens private and stay on this same MCP follow-up tool. Stay on the same consumer-operated MCP subset, use the returned selection_token, collect the real user's consumer-report authorization for insurance underwriting here, and let Coverage Cat enter the normal post-choose workflow without switching to delegated tools. A selected Monoline offer also requires the separate returned MVR authorization; show its full text and source URL and collect both receipts in the same turn. If the quote payload exposed selection_guidance.same_reply_requirements for the chosen offer, send those answers under intake on this first select call. If Coverage Cat returns a consent-required response with a bind-stage next_question, ask for all returned authorizations and details together, then retry this same tool with the receipts and intake.

Input Schema

NameRequiredDescriptionDefault
uidYesCoverage Cat intake uid for the existing authorized intake or returned by `umbrella_consumer_prefill` and echoed on every follow-up response. Reuse it for each follow-up call on the same application.
intakeNoBind-stage answers for the current next_question, or the chosen offer's selection_guidance.same_reply_requirements, keyed by the field names Coverage Cat asked for. Send them when Coverage Cat asked for consent and bind details in the same shopper-facing turn.
credit_consentNoThe real user's response to Coverage Cat's current consumer-report authorization for insurance underwriting, collected only after Coverage Cat returns the disclosure.
idempotency_keyNoKey you generate to identify one logical umbrella_consumer_select request, so a retry cannot apply it twice. After a timeout or transport failure, retry with the same key and identical arguments to get the original result back; Coverage Cat keeps that result for 24 hours and rejects different arguments sent under a used key.
selection_tokenYesselection_token of the shopper's chosen offer from `offers[]` in the latest quoted follow-up response.
um_uim_electionNoThe shopper's choice to include or decline the offer's $1M excess UM/UIM option, when they make it in the same selection reply.
intake_access_tokenNoSend the latest intake_access_token from the previous successful Coverage Cat response on each follow-up. Required for stateless MCP 2026-07-28 requests; also accepted by legacy hosts. Keep it private and never show it to the shopper.
selection_confirmedYesAttests that the shopper explicitly picked the offer named by selection_token in chat, rather than the agent choosing for them.
monoline_mvr_consentNoThe real user's response to the selected Monoline offer's MVR and consumer-report authorization, after the complete returned carrier-specific disclosure and source URL are shown.

Output Schema

NameRequiredDescriptionDefault
uidYesCoverage Cat intake uid for the current handoff.
lineNo
offersNo
policyNo
reviewNoStructured review card or selected-offer review block.
schemaNoSupplemental schema hints for homeowners review payloads.
statusYes
sandboxNoTrue when Coverage Cat is returning consumer sandbox test data rather than a live shopper workflow.
supportNo
uploadedNo
documentsNo
expires_atNoWhen the current consumer handoff expires.
offers_urlNoCoverage Cat browser URL for the selected offer or offer-tracking page.
payment_uiNo
next_actionNoA structured hint for the next allowed tool or endpoint action.
payment_urlNoCoverage Cat browser URL for secure payment fallback.
post_chooseNoStructured post-choose state after a quoted umbrella offer is selected.
conversationNo
review_itemsNo
review_tokenNoOpaque review token for delegated review-style submit paths.
verificationNo
detail_statusNo
known_summaryNoStructured facts Coverage Cat can safely summarize at this stage.
next_questionNoThe current shopper-owned question bundle or bind-stage question.
offer_summaryNo
payment_setupNo
preview_tokenNoOpaque bind-preview token for the next homeowners bind confirmation.
missing_fieldsNoStructured missing-value hints for homeowners pre-submit review.
payment_statusNo
pending_fieldsNoStructured missing-value hints for umbrella pre-submit review.
selected_offerNo
uploaded_countNo
field_estimatesNo
service_previewNo
service_requestNo
purchase_previewNo
response_summaryNo
review_estimatesNo
service_requestsNo
agent_instructionsNo
poll_after_secondsNo
selection_guidanceNoGuidance for completing an offer choice in one shopper-facing reply.
compare_details_urlNoCoverage Cat browser URL for compare-details follow-up.
intake_access_tokenNoShort-lived follow-up bearer. On REST, send it back as Authorization for the next `/api/intake/{uid}` call. On MCP, retry the same follow-up tool with this token only when your host cannot preserve Coverage Cat's hidden shopper session. Never display it to the shopper.
notification_channelNo
user_action_requiredNo
application_submittedNo
required_upload_typesNo
credit_consent_questionNo
credit_consent_disclosureNoVersioned canonical text that must be shown verbatim; echo version and text_hash with the user's response.
payment_collection_supportedNo
monoline_mvr_consent_questionNo
contact_preferences_disclosuresNoOptional versioned service-contact disclosures for the phone number on file; no marketing consent and no purchase requirement.
monoline_mvr_consent_disclosureNoVersioned Monoline-specific text that must be shown verbatim with its source URL; echo version and text_hash with the user's response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • addedInput schema / properties / monoline_mvr_consent
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "The real user's response to the selected Monoline offer's MVR and consumer-report authorization, after the complete returned carrier-specific disclosure and source URL are shown.",
      +  "properties": {
      +    "answer": {
      +      "description": "Records the shopper's own Yes, No or Revoke reply. Preserve declines and revocations; never infer or convert another answer into Yes.",
      +      "enum": [
      +        "Yes",
      +        "No",
      +        "Revoke"
      +      ],
      +      "type": "string"
      +    },
      +    "collected_from_user": {
      +      "const": true,
      +      "description": "Attests that the shopper personally answered the displayed authorization in this conversation, rather than the agent assuming their response.",
      +      "type": "boolean"
      +    },
      +    "disclosure_hash": {
      +      "description": "The text_hash from monoline_mvr_consent_disclosure.",
      +      "type": "string"
      +    },
      +    "disclosure_version": {
      +      "description": "The version from monoline_mvr_consent_disclosure.",
      +      "type": "string"
      +    },
      +    "presentation_reference": {
      +      "description": "Optional opaque conversation or message reference; do not include message contents or personal information.",
      +      "maxLength": 200,
      +      "type": "string"
      +    },
      +    "presented_at": {
      +      "description": "RFC 3339 timestamp from the assistant runtime for when the complete disclosure was shown. It must be within the prior 24 hours and no more than five minutes in the future.",
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "shown_to_user": {
      +      "const": true,
      +      "description": "Attests that the complete returned disclosure text was presented verbatim before the shopper answered.",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "answer",
      +    "collected_from_user",
      +    "shown_to_user",
      +    "disclosure_version",
      +    "disclosure_hash",
      +    "presented_at"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / contact_preferences_disclosures / properties / service_call / properties / source_updated_at
      Added value: +{
      +  "format": "date",
      +  "type": "string"
      +}
    • addedOutput schema / properties / contact_preferences_disclosures / properties / service_call / properties / source_url
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
    • addedOutput schema / properties / contact_preferences_disclosures / properties / service_sms / properties / source_updated_at
      Added value: +{
      +  "format": "date",
      +  "type": "string"
      +}
    • addedOutput schema / properties / contact_preferences_disclosures / properties / service_sms / properties / source_url
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
    • addedOutput schema / properties / credit_consent_disclosure / properties / source_updated_at
      Added value: +{
      +  "format": "date",
      +  "type": "string"
      +}
    • addedOutput schema / properties / credit_consent_disclosure / properties / source_url
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
    • changedOutput schema / properties / detail_status / enum
      Previous value: -[
      -  "abandoned",
      -  "blocked",
      -  "bound",
      -  "cancelled",
      -  "chosen",
      -  "credit_consent_pending",
      -  "credit_consent_required",
      -  "dev_success",
      -  "documents_needed",
      -  "documents_pending_review",
      -  "email_sent",
      -  "in_review",
      -  "ineligible",
      -  "info_requested",
      -  "needs_more_info",
      -  "needs_more_info_to_bind",
      -  "no_policy",
      -  "no_chosen_offer",
      -  "no_quotes",
      -  "no_selection",
      -  "ok",
      -  "payment_collection_ready",
      -  "payment_needed",
      -  "pending",
      -  "pending_quotes",
      -  "queued",
      -  "quote_rate_limited",
      -  "quoted",
      -  "ready_for_review",
      -  "ready_for_submission",
      -  "ready_to_finalize",
      -  "review_pending",
      -  "service_preview",
      -  "service_requested",
      -  "sandbox_unsupported",
      -  "stale_selection",
      -  "verifying_documents",
      -  "waiting_on_carrier",
      -  "waiting_on_documents",
      -  "waiting_on_payment"
      -]New value: +[
      +  "abandoned",
      +  "blocked",
      +  "bound",
      +  "cancelled",
      +  "chosen",
      +  "credit_consent_pending",
      +  "credit_consent_required",
      +  "monoline_mvr_consent_required",
      +  "dev_success",
      +  "documents_needed",
      +  "documents_pending_review",
      +  "email_sent",
      +  "in_review",
      +  "ineligible",
      +  "info_requested",
      +  "needs_more_info",
      +  "needs_more_info_to_bind",
      +  "no_policy",
      +  "no_chosen_offer",
      +  "no_quotes",
      +  "no_selection",
      +  "ok",
      +  "payment_collection_ready",
      +  "payment_needed",
      +  "pending",
      +  "pending_quotes",
      +  "queued",
      +  "quote_rate_limited",
      +  "quoted",
      +  "ready_for_review",
      +  "ready_for_submission",
      +  "ready_to_finalize",
      +  "review_pending",
      +  "service_preview",
      +  "service_requested",
      +  "sandbox_unsupported",
      +  "stale_selection",
      +  "verifying_documents",
      +  "waiting_on_carrier",
      +  "waiting_on_documents",
      +  "waiting_on_payment"
      +]
    • addedOutput schema / properties / monoline_mvr_consent_disclosure
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Versioned Monoline-specific text that must be shown verbatim with its source URL; echo version and text_hash with the user's response.",
      +  "properties": {
      +    "kind": {
      +      "const": "monoline_mvr",
      +      "type": "string"
      +    },
      +    "source_updated_at": {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    "source_url": {
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    "text": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "text_hash": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string"
      +    },
      +    "version": {
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind",
      +    "version",
      +    "text",
      +    "text_hash",
      +    "source_url",
      +    "source_updated_at"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / monoline_mvr_consent_question
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / status / enum
      Previous value: -[
      -  "abandoned",
      -  "blocked",
      -  "bound",
      -  "cancelled",
      -  "chosen",
      -  "credit_consent_pending",
      -  "credit_consent_required",
      -  "dev_success",
      -  "documents_needed",
      -  "documents_pending_review",
      -  "email_sent",
      -  "in_review",
      -  "ineligible",
      -  "info_requested",
      -  "needs_more_info",
      -  "needs_more_info_to_bind",
      -  "no_policy",
      -  "no_chosen_offer",
      -  "no_quotes",
      -  "no_selection",
      -  "ok",
      -  "payment_collection_ready",
      -  "payment_needed",
      -  "pending",
      -  "pending_quotes",
      -  "queued",
      -  "quote_rate_limited",
      -  "quoted",
      -  "ready_for_review",
      -  "ready_for_submission",
      -  "ready_to_finalize",
      -  "review_pending",
      -  "service_preview",
      -  "service_requested",
      -  "sandbox_unsupported",
      -  "stale_selection",
      -  "verifying_documents",
      -  "waiting_on_carrier",
      -  "waiting_on_documents",
      -  "waiting_on_payment"
      -]New value: +[
      +  "abandoned",
      +  "blocked",
      +  "bound",
      +  "cancelled",
      +  "chosen",
      +  "credit_consent_pending",
      +  "credit_consent_required",
      +  "monoline_mvr_consent_required",
      +  "dev_success",
      +  "documents_needed",
      +  "documents_pending_review",
      +  "email_sent",
      +  "in_review",
      +  "ineligible",
      +  "info_requested",
      +  "needs_more_info",
      +  "needs_more_info_to_bind",
      +  "no_policy",
      +  "no_chosen_offer",
      +  "no_quotes",
      +  "no_selection",
      +  "ok",
      +  "payment_collection_ready",
      +  "payment_needed",
      +  "pending",
      +  "pending_quotes",
      +  "queued",
      +  "quote_rate_limited",
      +  "quoted",
      +  "ready_for_review",
      +  "ready_for_submission",
      +  "ready_to_finalize",
      +  "review_pending",
      +  "service_preview",
      +  "service_requested",
      +  "sandbox_unsupported",
      +  "stale_selection",
      +  "verifying_documents",
      +  "waiting_on_carrier",
      +  "waiting_on_documents",
      +  "waiting_on_payment"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / uid / description
      Previous value: -"Coverage Cat intake uid returned by `umbrella_consumer_prefill` or `homeowners_consumer_prefill` and echoed on every follow-up response. Reuse it for each follow-up call on the same application."New value: +"Coverage Cat intake uid for the existing authorized intake or returned by `umbrella_consumer_prefill` and echoed on every follow-up response. Reuse it for each follow-up call on the same application."
  3. Changed12 schema fields changed
    • changedInput schema / properties / credit_consent / description
      Previous value: -"Real-user consent for a soft credit check, collected on the selection turn when Coverage Cat asks for it."New value: +"The real user's response to Coverage Cat's current consumer-report authorization for insurance underwriting, collected only after Coverage Cat returns the disclosure."
    • changedInput schema / properties / credit_consent / properties / answer / description
      Previous value: -"Records the shopper's own reply agreeing to Coverage Cat's credit_consent_question. Send it only after the shopper agrees in their own words."New value: +"Records the shopper's own Yes, No or Revoke reply. Preserve declines and revocations; never infer or convert another answer into Yes."
    • changedInput schema / properties / credit_consent / properties / answer / enum
      Previous value: -[
      -  "Yes"
      -]New value: +[
      +  "Yes",
      +  "No",
      +  "Revoke"
      +]
    • changedInput schema / properties / credit_consent / properties / collected_from_user / description
      Previous value: -"Attests that the shopper personally answered the credit consent question in this conversation, rather than the agent assuming their consent."New value: +"Attests that the shopper personally answered the displayed authorization in this conversation, rather than the agent assuming their response."
    • addedInput schema / properties / credit_consent / properties / disclosure_hash
      Added value: +{
      +  "description": "The text_hash from credit_consent_disclosure.",
      +  "type": "string"
      +}
    • addedInput schema / properties / credit_consent / properties / disclosure_version
      Added value: +{
      +  "description": "The version from credit_consent_disclosure.",
      +  "type": "string"
      +}
    • addedInput schema / properties / credit_consent / properties / presentation_reference
      Added value: +{
      +  "description": "Optional opaque conversation or message reference; do not include message contents or personal information.",
      +  "maxLength": 200,
      +  "type": "string"
      +}
    • addedInput schema / properties / credit_consent / properties / presented_at
      Added value: +{
      +  "description": "RFC 3339 timestamp from the assistant runtime for when the complete disclosure was shown. It must be within the prior 24 hours and no more than five minutes in the future.",
      +  "format": "date-time",
      +  "type": "string"
      +}
    • addedInput schema / properties / credit_consent / properties / shown_to_user
      Added value: +{
      +  "const": true,
      +  "description": "Attests that the complete returned disclosure text was presented verbatim before the shopper answered.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / credit_consent / required
      Previous value: -[
      -  "answer",
      -  "collected_from_user"
      -]New value: +[
      +  "answer",
      +  "collected_from_user",
      +  "shown_to_user",
      +  "disclosure_version",
      +  "disclosure_hash",
      +  "presented_at"
      +]
    • addedOutput schema / properties / contact_preferences_disclosures
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional versioned service-contact disclosures for the phone number on file; no marketing consent and no purchase requirement.",
      +  "properties": {
      +    "service_call": {
      +      "additionalProperties": false,
      +      "description": "Optional service-call disclosure; show its text verbatim before recording a choice.",
      +      "properties": {
      +        "kind": {
      +          "const": "service_call",
      +          "type": "string"
      +        },
      +        "text": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "text_hash": {
      +          "pattern": "^[a-f0-9]{64}$",
      +          "type": "string"
      +        },
      +        "version": {
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "kind",
      +        "version",
      +        "text",
      +        "text_hash"
      +      ],
      +      "type": "object"
      +    },
      +    "service_sms": {
      +      "additionalProperties": false,
      +      "description": "Optional service-text disclosure; show its text verbatim before recording a choice.",
      +      "properties": {
      +        "kind": {
      +          "const": "service_sms",
      +          "type": "string"
      +        },
      +        "text": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "text_hash": {
      +          "pattern": "^[a-f0-9]{64}$",
      +          "type": "string"
      +        },
      +        "version": {
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "kind",
      +        "version",
      +        "text",
      +        "text_hash"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / credit_consent_disclosure
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Versioned canonical text that must be shown verbatim; echo version and text_hash with the user's response.",
      +  "properties": {
      +    "kind": {
      +      "const": "credit_report",
      +      "type": "string"
      +    },
      +    "text": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "text_hash": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string"
      +    },
      +    "version": {
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind",
      +    "version",
      +    "text",
      +    "text_hash"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • addedOutput schema / properties / verification
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "instructions": {
      +      "type": "string"
      +    },
      +    "request_tool": {
      +      "type": "string"
      +    },
      +    "required": {
      +      "type": "boolean"
      +    },
      +    "retry_after_seconds": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "status": {
      +      "enum": [
      +        "required",
      +        "pending",
      +        "verified",
      +        "not_required"
      +      ],
      +      "type": "string"
      +    },
      +    "status_tool": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "required",
      +    "retry_after_seconds",
      +    "request_tool",
      +    "status_tool",
      +    "instructions"
      +  ],
      +  "type": "object"
      +}
  5. Changed1 schema field changed
    • changedInput schema / properties / intake_access_token / description
      Previous value: -"Bearer fallback for this same MCP follow-up tool when your host cannot preserve Coverage Cat's hidden shopper session. Send the intake_access_token from the previous successful Coverage Cat response and never show it to the shopper."New value: +"Send the latest intake_access_token from the previous successful Coverage Cat response on each follow-up. Required for stateless MCP 2026-07-28 requests; also accepted by legacy hosts. Keep it private and never show it to the shopper."
  6. Changed5 schema fields changed
    • changedInput schema / properties / credit_consent / properties / answer / description
      Previous value: -"The shopper's own answer to Coverage Cat's credit_consent_question."New value: +"Records the shopper's own reply agreeing to Coverage Cat's credit_consent_question. Send it only after the shopper agrees in their own words."
    • changedInput schema / properties / credit_consent / properties / collected_from_user / description
      Previous value: -"Attests that the shopper gave this answer directly in the conversation rather than the agent inferring it."New value: +"Attests that the shopper personally answered the credit consent question in this conversation, rather than the agent assuming their consent."
    • changedInput schema / properties / idempotency_key / description
      Previous value: -"Retry key you generate for one logical umbrella_consumer_select request. If you retry after a timeout or transport failure, resend the identical arguments with the same idempotency_key. Coverage Cat replays the cached successful result for 24 hours and rejects a changed payload under the same key."New value: +"Key you generate to identify one logical umbrella_consumer_select request, so a retry cannot apply it twice. After a timeout or transport failure, retry with the same key and identical arguments to get the original result back; Coverage Cat keeps that result for 24 hours and rejects different arguments sent under a used key."
    • changedInput schema / properties / selection_confirmed / description
      Previous value: -"Confirms the shopper explicitly chose this offer in chat."New value: +"Attests that the shopper explicitly picked the offer named by selection_token in chat, rather than the agent choosing for them."
    • changedInput schema / properties / um_uim_election / oneOf
      Previous value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "enum": [
      -      "include",
      -      "decline"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "elected": {
      -        "description": "true to include the excess UM/UIM option, false to decline it.",
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "elected"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "type": "boolean"
      +  },
      +  {
      +    "enum": [
      +      "include",
      +      "decline"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "elected": {
      +        "description": "Whether the shopper wants the offer's excess UM/UIM option included.",
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "elected"
      +    ],
      +    "type": "object"
      +  }
      +]
  7. Changed10 schema fields changed
    • addedInput schema / properties / credit_consent / properties / answer / description
      Added value: +"The shopper's own answer to Coverage Cat's credit_consent_question."
    • addedInput schema / properties / credit_consent / properties / collected_from_user / description
      Added value: +"Attests that the shopper gave this answer directly in the conversation rather than the agent inferring it."
    • changedInput schema / properties / idempotency_key / description
      Previous value: -"Optional retry key for umbrella_consumer_select. If you retry after a timeout or transport failure, resend the identical arguments with the same idempotency_key. Coverage Cat replays the cached successful result for 24 hours and rejects a changed payload under the same key."New value: +"Retry key you generate for one logical umbrella_consumer_select request. If you retry after a timeout or transport failure, resend the identical arguments with the same idempotency_key. Coverage Cat replays the cached successful result for 24 hours and rejects a changed payload under the same key."
    • changedInput schema / properties / intake / description
      Previous value: -"Optional bind-stage answers for the current next_question when Coverage Cat asked for consent and bind details in the same shopper-facing turn."New value: +"Bind-stage answers for the current next_question, or the chosen offer's selection_guidance.same_reply_requirements, keyed by the field names Coverage Cat asked for. Send them when Coverage Cat asked for consent and bind details in the same shopper-facing turn."
    • changedInput schema / properties / intake_access_token / description
      Previous value: -"Optional bearer fallback for this same MCP follow-up tool when your host cannot preserve Coverage Cat's hidden shopper session. Reuse the latest token from the previous successful Coverage Cat response and never show it to the shopper."New value: +"Bearer fallback for this same MCP follow-up tool when your host cannot preserve Coverage Cat's hidden shopper session. Send the intake_access_token from the previous successful Coverage Cat response and never show it to the shopper."
    • addedInput schema / properties / selection_confirmed / description
      Added value: +"Confirms the shopper explicitly chose this offer in chat."
    • addedInput schema / properties / selection_token / description
      Added value: +"selection_token of the shopper's chosen offer from `offers[]` in the latest quoted follow-up response."
    • addedInput schema / properties / uid / description
      Added value: +"Coverage Cat intake uid returned by `umbrella_consumer_prefill` or `homeowners_consumer_prefill` and echoed on every follow-up response. Reuse it for each follow-up call on the same application."
    • changedInput schema / properties / um_uim_election / description
      Previous value: -"Optional. Use this when the shopper wants to include or decline the offer's $1M excess UM/UIM option in the same selection reply."New value: +"The shopper's choice to include or decline the offer's $1M excess UM/UIM option, when they make it in the same selection reply."
    • changedInput schema / properties / um_uim_election / oneOf
      Previous value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "enum": [
      -      "include",
      -      "decline"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "elected": {
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "elected"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "type": "boolean"
      +  },
      +  {
      +    "enum": [
      +      "include",
      +      "decline"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "elected": {
      +        "description": "true to include the excess UM/UIM option, false to decline it.",
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "elected"
      +    ],
      +    "type": "object"
      +  }
      +]
  8. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, and the description supplies real added context: stateless MCP 2026-07-28 requires the token on every follow-up, tokens must stay private, legacy hosts may hold hidden session authorization, and consent must be personally collected before submitting. It still never explains what the destructive side effect actually commits (e.g., that the application moves into a post-choose/bind track or whether the choice is revocable), which is the one behavioral fact an agent most needs before calling a destructive tool.

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

Conciseness3/5

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

The rules are operational rather than filler, but the paragraph is dense and repeats itself ("keep tokens private and stay on this same MCP follow-up tool" vs. the closing clause about not switching to delegated tools), and consent/privacy instructions are interleaved with flow control instead of grouped. A reader must parse several sentences before reaching the one action the tool performs.

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?

For a nine-parameter destructive tool with nested consent objects and an output schema, the description covers the full lifecycle: preconditions, token handling, per-offer consent branches, the Monoline MVR disclosure requirement, and the retry path after a consent-required response. Return values are handled by the output schema, so nothing an agent needs in order to call it correctly is missing.

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 baseline would be 3, but the description adds cross-parameter conditional meaning the schema cannot express: when intake must carry selection_guidance.same_reply_requirements, when monoline_mvr_consent is separately required versus credit_consent, and when to resend the same idempotency_key after a failure. That is genuine semantics beyond field-level descriptions.

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

Purpose4/5

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

The opening sentence places the tool in the flow ("continue the consumer-prefill umbrella flow after quotes are ready") and the body makes the action clear through selection_token and selection_confirmed, so an agent can tell it apart from umbrella_consumer_bind, umbrella_consumer_attach and umbrella_consumer_payment. It never states the verb/resource as plainly as "select the shopper's chosen umbrella offer," so the core action must be inferred from the parameters rather than read in the first clause.

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?

Gives concrete preconditions (quotes ready, reuse uid and intake_access_token), conditional branches (selection_guidance.same_reply_requirements on the first select call, Monoline offers requiring the separate MVR authorization, consent-required responses requiring a retry with receipts), and a clear exclusion (do not switch to delegated tools). It does not name the specific sibling tools for downstream steps, so routing is implied rather than explicit.

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.

Resources