Skip to main content
Glama
Hermoso

Hermoso

Official

Upgrade plan

upgrade_plan

Change a subscriber's subscription plan: list monthly plans, generate Checkout or upgrade quote links, confirm quoted upgrades, and start downgrades at term end. Admin only.

Instructions

Change the SUBSCRIPTION plan (admin only). No argument lists the monthly plans. Basic ($9.99) is the posting plan: unlimited posting and Autopilot with NO monthly credits (it includes the same 250+ free credits as the Free plan, monthly credits start on Starter, and Autopilot spends credits). Starter, Pro and Studio include monthly credits and no markup on models. Every paid plan posts without a limit (Free: 10 posts a month on 3 channels). New subscriber: a Checkout URL for the human. Existing subscriber upgrading: a quote + quote_token; once the human agrees, call again with confirm:true and quote_token to charge the card on file. Downgrade: a billing-page link; it starts at the term's end.

Input Schema

NameRequiredDescriptionDefault
planNothe plan id to move to (e.g. pro) — omit to list the available plans first
periodNomonthly only ('yr' buys monthly)
confirmNotrue (with quote_token) to make a quoted upgrade
quote_tokenNothe quoteToken from the quote step

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.1.435
    • addedInput schema / properties / confirm
      Added value: +{
      +  "description": "true (with quote_token) to make a quoted upgrade",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / period / description
      Previous value: -"billing cadence — monthly (default) or yearly (2 months free)"New value: +"monthly only ('yr' buys monthly)"
    • addedInput schema / properties / quote_token
      Added value: +{
      +  "description": "the quoteToken from the quote step",
      +  "type": "string"
      +}
  2. Changed1 schema field changedv0.1.161
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": false,
      -  "properties": {
      -    "action": {
      -      "description": "the in-app action required ('upgrade' or 'downgrade')",
      -      "type": "string"
      -    },
      -    "chargeUsd": {
      -      "description": "the actual charge amount (yearly billing charges the annual total)",
      -      "type": "number"
      -    },
      -    "guidance": {
      -      "description": "exact instructions when the change must be made in the app",
      -      "type": "string"
      -    },
      -    "mode": {
      -      "description": "'checkout' (a Stripe URL was minted) or 'in_app' (a person makes the change in the app)",
      -      "type": "string"
      -    },
      -    "monthlyUsd": {
      -      "description": "the plan’s monthly price in USD",
      -      "type": "number"
      -    },
      -    "period": {
      -      "description": "billing cadence of the link — 'mo' or 'yr'",
      -      "type": "string"
      -    },
      -    "plan": {
      -      "description": "the target plan id",
      -      "type": "string"
      -    },
      -    "planLabel": {
      -      "description": "the target plan display name",
      -      "type": "string"
      -    },
      -    "plans": {
      -      "description": "available paid plans ({id, name, priceUsd, credits}) when listing",
      -      "items": {},
      -      "type": "array"
      -    },
      -    "url": {
      -      "description": "the ready-to-pay Stripe Checkout URL (checkout mode)",
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  3. Addedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Goes far beyond the annotations: it discloses that a real card on file is charged on the confirm step, that upgrades are two-phase with a quote_token, that downgrades take effect at the term's end, and that pricing/credits differ per plan. The annotations only say it is a non-destructive, non-idempotent, open-world mutation; the description supplies the actual consequence and sequencing.

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 the action, then plan economics, then the three call flows in order — a sensible structure. Slightly verbose on plan pricing and the phrase 'No argument lists the monthly plans' is grammatically awkward enough to need a second read, but nothing is truly wasted.

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 no output schema, the description covers what comes back on each path (Checkout URL, quote plus quote_token, billing-page link), which is exactly what an agent needs to chain the next call. For a 4-parameter, zero-required billing mutation this is complete.

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, but the description adds procedural meaning the schema alone does not — how quote_token and confirm:true pair together to actually charge the card, and what omitting plan does. Plan-tier economics (Basic vs Starter/Pro/Studio credits and markup) also inform the plan value choice.

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?

Opens with a specific verb and resource ('Change the SUBSCRIPTION plan') plus an explicit admin-only qualifier, and the no-argument branch tells the agent the tool also enumerates plans. This separates it cleanly from billing/credit siblings such as buy_credits and billing_status.

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?

Lays out three distinct usage paths — new subscriber (Checkout URL for a human), existing subscriber upgrade (quote then confirm), and downgrade (billing-page link, effective at term end) — so the agent knows which branch applies before calling. It does not name adjacent tools like buy_credits or billing_status as alternatives, which keeps it just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools