Skip to main content
Glama

Check a bank card's travel insurance

check_card_coverage
Read-only

Use HelloSafe to check what travel insurance a credit card already includes, from the card's real terms & conditions. Use it when the user asks what their card covers for travel (medical, cancellation, baggage, ski…) or whether their card is enough for a trip. Identify the card from its name (and bank / country when given). Returns the covered guarantees with amounts and conditions, the coverage gaps, and the card id — which get_quote accepts as cardId to rank offers by how well they fill those gaps. Never invent coverage: only state what this tool returns.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cardIdNoExact HelloSafe card ID from a previous call — use it to re-check a specific candidate instead of fuzzy matching.
localeNoLanguage the user is conversing in, as a BCP 47 tag or 2-letter code (e.g. "fr", "pt-BR"). ALWAYS pass it.
networkNoCard network when stated: "Visa", "Mastercard", "Amex".
cardQueryNoCard name as the user said it, expanded ("American Express Platinum", not "Amex Plat"). Include the bank when known ("Chase Sapphire Reserve"). Omit only when cardId is provided.
bankCountryNoISO-2 country of the issuing bank (e.g. "US", "FR"). Defaults to the user's country of residence when known — greatly improves matching.
tripContextNoOptional trip details — sharpen the gap analysis. Omit what you do not know.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
cardNoThe card the analysis is about.
gapsNoGuarantees missing or insufficient for the trip — the offer features a complementary policy should provide.
errorNoHuman-readable reason when the check could not run. Absent on success.
coveredNoTravel guarantees the card really includes, with amounts and conditions from the card T&Cs.
unknownNoCore guarantees with no data on this card — phrase as "not documented, check your contract", never as "not covered".
cardWidgetNoData rendered by the card widget (gaps, catches, full sheet) — not meant for the assistant.
alternativesNoOther cards matching the query. If the analysed card is not the user's, ask which one and call again with its cardId.
translationsNoLocalized UI strings consumed by the widget — not meant for the assistant.
allGuaranteesNoThe card's FULL guarantee sheet, grouped by section (travel first). Shown in the widget.
_assistantGuidanceNo
cancellationOnlyGapNoTrue when cancellation is the ONLY gap — suggest a cancellation-only policy (intent "cancellation" in get_quote), usually much cheaper.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / allGuarantees / description
      Previous value: -"The card's FULL guarantee sheet, grouped by section (travel first) — render as one markdown table per section: Guarantee | Your card | Recommended | Verdict."New value: +"The card's FULL guarantee sheet, grouped by section (travel first). Shown in the widget."
  2. Changed2 schema fields changed
    • addedOutput schema / properties / cardWidget
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Data rendered by the card widget (gaps, catches, full sheet) — not meant for the assistant.",
      +  "properties": {},
      +  "type": "object"
      +}
    • addedOutput schema / properties / translations
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Localized UI strings consumed by the widget — not meant for the assistant.",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / tripContext / properties / intent / description
      Previous value: -"Trip purpose when known — same values as get_quote (forTourism, mountainTrip, schengenArea…). Drives the thresholds (e.g. ski cover checked for mountainTrip)."New value: +"Trip purpose when known — same values as get_quote (forTourism, schengenArea, studyInternship…). Drives the thresholds."
  4. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real value beyond that: it discloses the shape of the result (covered guarantees with amounts and conditions, plus coverage gaps) and imposes a grounding constraint ('Never invent coverage: only state what this tool returns'). It does not discuss failure modes for unmatched cards or rate limits.

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 tight sentences, front-loaded with the action and scope before moving to triggers and then return values. Every clause earns its place, including the anti-hallucination instruction, and there is no repetition of schema field docs.

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?

With 6 parameters, full schema coverage, a nested tripContext object and an output schema, the description still covers the essentials: what is checked, when to invoke it, what comes back, and how the result feeds get_quote. Nothing an agent needs to call this 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 description coverage is 100%, so the baseline is 3. The description nonetheless adds interpretation beyond the schema: it explains the card is identified from its name plus bank/country context, and clarifies that the returned card id is meant to be reused as `cardId`, tying the input params to a workflow rather than just restating field docs.

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 ('check what travel insurance a credit card already includes') and grounds it in the 'card's real terms & conditions', which distinguishes it from the sibling get_quote. It also names the exact handoff artifact (card id accepted as `cardId`), so the agent can separate checking coverage from ranking offers without opening either schema.

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 triggering conditions ('when the user asks what their card covers for travel (medical, cancellation, baggage, ski…) or whether their card is enough for a trip') and positions get_quote as the follow-up step. It never states when NOT to call it or when to prefer get_quote directly, so it stops short of full when/when-not/alternatives coverage.

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