Skip to main content
Glama

Get a checkout link for a plan

create_checkout_link

Get a checkout link for a plan (permission: edit)

A link to the AnalyticsProof checkout page for the project and plan, with the price in each currency the plan is sold in. No payment happens in this call and nothing is created: open url in a browser signed in as a project owner or admin (a person, or a browser agent acting for them) and pay there; a signed-out browser signs in first. The link carries no credentials. currency preselects the checkout currency (case-insensitive; omitted: the buyer’s browser decides; lockedCurrency, when set, wins). A key with edit permission of a project below the plan (Free, an expired trial) may call it, like GET /whoami. After the payment, GET /projects (agent connection) or GET /whoami shows the new tier. An organization project answers 409 org_managed, an invoice-billed project 409 invoice_billed, a project with a subscription 409 already_subscribed, a billing account charged in a currency the plan is not sold in 409 currency_unsupported. Idempotency-Key is ignored: a retry answers an equivalent link.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "tier": "<tier>",
      "billingCycle": "<billingCycle>"
    },
    "name": "create_checkout_link"
  }
}

Input Schema

NameRequiredDescriptionDefault
tierYesThe plan to buy.
currencyNoPreselect this checkout currency (case-insensitive: usd = USD). Omitted: the buyer’s browser decides. A currency the customer is already billed in wins (lockedCurrency).
projectIdNoThe project to upgrade. Required with an organization key or an agent connection.
promoCodeNoPrefill this promo code on the checkout page; the buyer applies it there.
billingCycleYesPay monthly or yearly.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / billingCycle / description
      Added value: +"Pay monthly or yearly."
    • addedInput schema / properties / tier / description
      Added value: +"The plan to buy."
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

With only generic hints in annotations, the description supplies the substantive behavior: no payment occurs and nothing is created, the link carries no credentials, a signed-out browser signs in first, and specific 409 conditions map to specific reasons a call cannot succeed. It also clarifies the `Idempotency-Key` header is ignored and a retry yields an equivalent link, which explains the idempotentHint=false annotation rather than contradicting the safety profile.

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?

Purpose and the crucial 'nothing is created' clarification are front-loaded, and each subsequent clause carries real information (auth, currency precedence, error codes, idempotency). It is a dense single block that would scan better as short segments, and a few clauses duplicate the schema.

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?

There is no output schema, yet the description conveys the return shape (a url plus per-currency prices) and what to do with it, and it enumerates the failure modes an agent will realistically hit. For a 5-parameter tool with a browser-handoff workflow, nothing an agent needs before calling 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 100%, so the baseline is 3. The description largely restates schema content — currency case-insensitivity, `lockedCurrency` winning, projectId required for org keys and agent connections — rather than adding meaning the schema lacks.

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 ('Get a checkout link for a plan') and immediately disambiguates what the artifact is: a URL to the checkout page carrying per-currency prices, not a payment or a created subscription. The opening also carries the permission tag (edit), which no sibling tool name overlaps with.

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?

It specifies eligibility (edit permission on a project below the plan, e.g. Free or an expired trial) and states what to do with the result — open `url` in a browser signed in as an owner or admin — plus post-payment verification via GET /projects or GET /whoami. It also implicitly steers callers away in four named cases (org_managed, invoice_billed, already_subscribed, currency_unsupported), though it never names a sibling alternative for those cases.

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