Skip to main content
Glama

update_plan_meta

DestructiveIdempotent

Set an existing tier's display metadata: its name and the two badge flags the public pricing page styles cards from: is_elite (gold/carbon BEST VALUE card with the rainbow title and app icon) and recommended (MOST POPULAR). A tier called "Elite" is NOT styled as elite unless is_elite is actually true on the stored plan; the page reads the flag, never the tier slug, so a catalog whose top tier lacks the flag renders as a plain grey card. Use this to repair that. WRITE, human-gated: the human sees the before -> after diff and approves (clients without elicitation pass through, since this touches no money: it never reaches Stripe, never changes an amount, limits or billing model, and is reversible by calling it again). Setting a flag false REMOVES the key rather than storing false, keeping exported plans.json minimal. Convention is at most ONE is_elite and ONE recommended tier per app: this tool does not clear the flag from its siblings, so unset the old holder in a second call. Use list_plans first for tier slugs and current flags, and run bun run plans:sync in the app repo afterwards to regenerate plans.json.

Input Schema

NameRequiredDescriptionDefault
nameNo
tierYes
app_idYes
dry_runNo
is_eliteNo
recommendedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses human gating with a before -> after diff, the no-elicitation pass-through case and why it is safe (never reaches Stripe, no amounts/limits/billing model changes), reversibility, and the non-obvious write behavior that setting a flag false deletes the key rather than storing false. It also mentions the exported plans.json side effect that must be regenerated.

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 core action and structured with the write-safety details following. It is on the long side, and the parenthetical about the "gold/carbon BEST VALUE card with the rainbow title and app icon" is more color than an agent needs, but nearly every other sentence carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Mutation tool with no output schema and an undefined dry_run parameter, but the description compensates with approval flow, side effects, reversibility and the sync follow-up. The omission of dry_run semantics is the one thing an agent might need before calling it correctly.

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 coverage is 0%, so the description carries the burden. It meaningfully covers name, tier (as a slug sourced from list_plans), is_elite and recommended, including their values and side effects. But app_id is only implied and dry_run is never mentioned at all, leaving a meaningful gap for a 6-parameter mutation tool.

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 plus the exact fields touched: display name and the two badge flags. It clearly separates itself from the pricing/limits siblings by framing this as display metadata used by the public pricing page, and even explains that the page reads the flag rather than the slug.

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 explicit when-to-use ("Use this to repair that" when a top tier lacks is_elite), explicit prerequisites ("Use list_plans first for tier slugs and current flags"), and an explicit follow-up (run `bun run plans:sync`). It also warns that the tool does not clear flags from siblings, so a second call is required to move a badge.

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