Skip to main content
Glama

update_subscription_quantity

Change a live subscription's quantity (seats/packs, 1–10000). CHANGES FUTURE BILLING: from the next renewal the customer pays unit price × quantity and receives unit credits × quantity; no proration now. With user_id/email the customer must have exactly one live subscription (else 409 — pass subscription_id). Same quantity is a no-op. Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED costs nothing). Error results include request_id; quote it to support.

Input Schema

NameRequiredDescriptionDefault
emailNoCustomer email (alternative to subscription_id)
api_keyNoCred API key (optional if set via the x-api-key header)
user_idNoExternal user ID (alternative to subscription_id)
quantityYesNew quantity
project_idNoCred project ID (optional; the API key already identifies the project)
x402_paymentNoBase64 x402 PaymentPayload, only when a previous call failed with an x402 PaymentRequired because the account is out of CRD
subscription_idNoCred subscription ID or Stripe sub_… ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses the billing consequence (unit price × quantity from next renewal, unit credits × quantity), the absence of proration, and the 1 CRD cost charged even for rejected calls except 429 RATE_LIMITED. It also states that error results carry a request_id to quote to support — unusually complete behavioral disclosure for a mutation tool.

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?

Front-loads the mutation and its billing impact, then identity resolution, then cost, then error handling. Every clause carries information an agent needs (price model, no-op case, credit cost, rate-limit exemption); nothing is redundant or padded.

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?

For a financial, non-reversible-in-effect mutation with 7 params and no output schema, the description covers preconditions, cost, failure modes, and error payload hints well. The remaining gap is the success response shape (what fields come back after a quantity change), which the description leaves unstated.

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; the description adds genuine meaning beyond the schema by explaining that user_id/email are alternatives that require exactly one live subscription and that subscription_id is the escape hatch on 409. The x402_payment retry condition and the free-on-429 nuance are also only implicit in the schema text.

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 with scope: "Change a live subscription's quantity (seats/packs, 1–10000)." It is clearly distinguishable from siblings such as cancel_subscription, list_subscriptions, and update_pricing_tier without opening any 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 conditional guidance: identify the customer via user_id/email only when exactly one live subscription exists, otherwise expect a 409 and pass subscription_id. It also flags that the same quantity is a no-op. It stops short of naming sibling tools to call for recovery (e.g., list_subscriptions) or of explicitly stating when to prefer this over other subscription tools.

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