Skip to main content
Glama

Unlock a case

unlock_case

Pay to unlock the full findings, the dispute letter and the phone script. With a shared_payment_token (a Stripe Shared Payment Token granted to the stripe_profile in the case summary's purchase), it charges $10.00 for this bill and unlocks the case in the same call. Without one, it returns a checkout URL and charges nothing itself. A case with no findings is refused: there is nothing to buy, and the user pays nothing when nothing is found. So is a case with nothing to act on yet (nothing_to_act_on), such as a bill sent without its Explanation of Benefits whose only finding is that the EOB is missing.

Input Schema

NameRequiredDescriptionDefault
planNo"one_bill" is $10 for this bill, charged once. "subscription" is the monthly membership, which unlocks up to 25 bills a calendar month for anyone in a household. It is sold only while the case summary's `purchase.options` lists it; otherwise unlock_case answers `monthly_tier_paused` and charges nothing. A member who already has a code passes `membership_token` instead.
case_idYes
membership_tokenNoAn existing membership. If the user already subscribed, pass the token they were given and this bill unlocks immediately with nothing charged — a membership covers up to 25 bills a calendar month, including other people in the family. A membership that has used its 25 bills for the month answers membership_cap_reached; it is still valid, and a one-off unlock still works.
shared_payment_tokenNoA Stripe Shared Payment Token (`spt_…`) granted to the `stripe_profile` in the case summary's `purchase`, for at least $10.00 USD. When present, this call charges it once and unlocks the case; no checkout URL is returned. One bill only: a token pays once, so it cannot buy the membership, which renews. Present only when `purchase.options[].pay_with_shared_payment_token` is true.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / plan / description
      Previous value: -"\"one_bill\" is $10 for this bill. \"subscription\" is a $10-a-month membership that unlocks up to 25 bills a calendar month for anyone in a household."New value: +"\"one_bill\" is $10 for this bill, charged once. \"subscription\" is the monthly membership, which unlocks up to 25 bills a calendar month for anyone in a household. It is sold only while the case summary's `purchase.options` lists it; otherwise unlock_case answers `monthly_tier_paused` and charges nothing. A member who already has a code passes `membership_token` instead."
  2. Changed1 schema field changed
    • addedInput schema / properties / shared_payment_token
      Added value: +{
      +  "description": "A Stripe Shared Payment Token (`spt_…`) granted to the `stripe_profile` in the case summary's `purchase`, for at least $10.00 USD. When present, this call charges it once and unlocks the case; no checkout URL is returned. One bill only: a token pays once, so it cannot buy the membership, which renews. Present only when `purchase.options[].pay_with_shared_payment_token` is true.",
      +  "pattern": "^spt_[A-Za-z0-9]+$",
      +  "type": "string"
      +}
  3. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=true; the description goes far beyond that. It discloses the exact charge ($10.00), that it charges nothing when returning a checkout URL, that a token pays only once and cannot buy the renewing membership, and the refusal/error modes (no findings, nothing_to_act_on, monthly_tier_paused, membership_cap_reached). This is the money-and-side-effect context an agent needs before calling a paid mutation.

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 core behavior is front-loaded: what is bought, then the token vs no-token split, then refusals. The final sentence about nothing_to_act_on is somewhat verbose and partly restates the 'nothing is found, nothing is charged' idea, but every sentence carries real behavioral information.

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?

No output schema exists, yet the description supplies the return shape (checkout URL vs direct unlock), the money movement, and the enumerated failure codes. For a 4-parameter payment tool with open-world external billing, nothing an agent needs 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.

Parameters3/5

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

Schema description coverage is 75% and the inline parameter descriptions are already detailed, so the schema does most of the work. The description adds the behavioral consequence of shared_payment_token (charges once, no checkout URL) and the plan price framing, but membership_token and case_id semantics come from the schema, not the body text. 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?

States a specific verb+resource pair ('Pay to unlock the full findings, the dispute letter and the phone script') and enumerates exactly what the unlock produces. This is functionally unmistakable against siblings like get_case, export_case, or delete_case, which read/export/remove rather than transact and unlock.

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 clear conditional routing: pass shared_payment_token to charge and unlock in one call, omit it to get a checkout URL, pass membership_token if the user already subscribes, and pass plan to choose one-off vs subscription. It also states when the call will refuse (no findings, nothing_to_act_on, monthly_tier_paused). It stops short of naming sibling tools or the sequencing step (e.g. read the case summary first).

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