Skip to main content
Glama

prepare_subscription_cancellation

Read-only

This tool does not cancel the subscription. Cancellation happens only in the Checkout Page dashboard. The tool fetches the subscription, works out whether it can be canceled and what canceling changes, and returns the dashboard URL where a person performs the cancellation.

Returns:

  • The full subscription record (status, customer, amount, interval, current period dates).

  • guidance.eligible - whether cancellation can proceed (false for already-canceled or expired subscriptions).

  • guidance.options.timing - available timing choices (immediately, at_period_end, custom_date). Fixed-term plans (planIterations > 0) only support immediately.

  • guidance.options.currentPeriodEnd - the end of the current billing period, useful when choosing at_period_end.

  • guidance.sideEffects - plain-language consequences of canceling (the Stripe subscription ends and no further invoices generate; whether a cancellation is already scheduled).

Use list_subscriptions first to find a subscription ID, or get_subscription to view the full record without the cancellation guidance overlay.

Example uses:

  • "I want to cancel this customer's subscription - what should I know first?"

  • "Can subscription 6812fe6e9f39b6760576f01c still be canceled at the end of the period?"

  • "What changes if I cancel this subscription now?"

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
subscriptionIdYesThe ID of the subscription you intend to cancel. This tool returns eligibility, side effects, and a dashboard link — it does NOT perform the cancellation.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes
guidanceYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark it readOnlyHint=true and destructiveHint=false, but the description adds substantial non-obvious behavior: it does not mutate anything, returns a dashboard URL for human completion, and encodes eligibility rules (false for already-canceled/expired) plus timing constraints (fixed-term plans only support 'immediately'). This is far beyond what the annotations convey.

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 critical caveat and the non-cancellation behavior are front-loaded, and the sections (caveat, Returns, cross-references, examples) are cleanly separated. Some of the 'Returns' detail overlaps with the existing output schema, so it is slightly longer than strictly necessary, but nothing is filler.

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?

Given the read-only nature and an output schema being present, the description fully covers what an agent needs: the surprising non-cancellation semantics, eligibility/timing, side effects, and how to obtain the required ID. Nothing essential 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% and the single parameter is already well documented with a pattern and an inline note that cancellation is not performed. The description adds marginal value by telling the agent how to source the ID (via list_subscriptions), which is beyond the schema's scope.

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?

The description states a specific verb and resource and immediately disambiguates the most likely misunderstanding: it explicitly says 'This tool does not cancel the subscription' and explains what it actually does (fetches, evaluates eligibility/side effects, returns a dashboard URL). It also names siblings (list_subscriptions, get_subscription) so an agent can route correctly.

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?

It gives explicit when-to-use context ('Use list_subscriptions first to find a subscription ID, or get_subscription to view the full record without the cancellation guidance overlay'), states where the actual cancellation occurs, and provides concrete example phrasings that map to the tool's intended use.

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