Skip to main content
Glama

Coverage Cat

Collect umbrella payment

umbrella_consumer_payment
DestructiveIdempotent

Prepare secure Stripe payment collection or submit the resulting payment method during the consumer-prefill umbrella post-choose flow. 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 this only after Coverage Cat says payment_needed. First call it with payment_collection_requested: true; do not send the shopper straight to payment_url before you try this native step. If the host confirms the registered secure payment UI can render, display it and wait for completion; do not request card details through conversational text. After successful Stripe setup, call this same tool again with setup_intent_id and payment_method_id. If UI support is unknown or unsupported, or if secure setup fails in chat, share payment_url with the specific fallback reason instead.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "uid": "<uid>"
    },
    "name": "umbrella_consumer_payment"
  }
}

Input Schema

NameRequiredDescriptionDefault
uidYesCoverage Cat intake uid for the current shopper session.
idempotency_keyNoKey you generate to identify one logical umbrella_consumer_payment 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.
setup_intent_idNoSetupIntent id returned by the earlier payment_collection_ready response.
payment_method_idNoReusable Stripe PaymentMethod id produced by secure client-side setup confirmation.
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.
payment_collection_requestedNoStarts secure card collection: Coverage Cat prepares a Stripe SetupIntent and returns the publishable_key, client_secret, and setup_intent_id the registered payment UI needs. Send it on the first payment call, without setup_intent_id or payment_method_id.

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. Changed10 schema fields changed
    • 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. Changed2 schema fields changed
    • 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"
      +}
  3. 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"
      +}
  4. 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."
  5. Changed2 schema fields changed
    • changedInput schema / properties / idempotency_key / description
      Previous value: -"Retry key you generate for one logical umbrella_consumer_payment 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_payment 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 / payment_collection_requested / description
      Previous value: -"Use true on the first payment call to request Stripe publishable_key, client_secret, and setup_intent_id."New value: +"Starts secure card collection: Coverage Cat prepares a Stripe SetupIntent and returns the publishable_key, client_secret, and setup_intent_id the registered payment UI needs. Send it on the first payment call, without setup_intent_id or payment_method_id."
  6. Changed2 schema fields changed
    • changedInput schema / properties / idempotency_key / description
      Previous value: -"Optional retry key for umbrella_consumer_payment. 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_payment 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_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."
  7. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, and the description goes well beyond them: statelessness of MCP 2026-07-28 and the token requirement, the rule not to collect card details in conversational text, the two-phase handshake, and the fallback path. The one gap is that it never explains what the destructiveHint actually destroys or whether a prepared SetupIntent is reversible, so an agent cannot fully assess the mutation's blast radius.

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 purpose and then sequenced as a procedure, which suits a multi-step tool. There is some redundancy ('Keep tokens private' and 'do not show it to the shopper' duplicate the intake_access_token schema description) and 'Stay on the same consumer-operated MCP subset' is vague filler, but most sentences carry actionable constraints.

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 destructive, stateful, multi-phase payment tool this covers preconditions, ordering, privacy constraints, error/retry behavior and the fallback branch; the existence of an output schema means return values need not be described. An agent has everything required to invoke it correctly on the first attempt.

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 earns an extra point by adding workflow meaning the schema does not convey, namely that payment_collection_requested is the first-call mode and that setup_intent_id plus payment_method_id must be sent together on the follow-up call. It also reinforces the token-reuse rule across follow-ups.

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 verb and resource ('Prepare secure Stripe payment collection or submit the resulting payment method') and scopes it to the 'consumer-prefill umbrella post-choose flow,' which cleanly separates it from siblings like umbrella_consumer_bind, umbrella_consumer_select and umbrella_consumer_attach. The two operating modes are named explicitly.

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?

Gives a hard precondition ('Use this only after Coverage Cat says payment_needed'), an ordered procedure ('First call it with payment_collection_requested: true'), an explicit prohibition ('do not send the shopper straight to payment_url before you try this native step'), and the fallback trigger ('If UI support is unknown or unsupported, or if secure setup fails in chat'). Nothing about when-to-use is left to inference.

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