Skip to main content
Glama

Generate a disclosure that passes the checks for given terms

get_compliant_disclosure
Idempotent

Generates the locked, engine-verified automatic-renewal disclosure for a plan: disclosure_text, consent_label (for an unchecked, required checkbox), button_text and drop-in html. The same wording Checkbox Elements and Fixes use. Give the terms: price (major units) or amount (minor), interval, trial_days, cancel_url, merchant_name, promo (intro_price or intro_percent_off, intro_periods). Example: {"merchant_name":"Acme","price":19.99,"interval":"month","trial_days":14,"cancel_url":"https://acme.example/account/cancel"}. With site (and a key allowed to create disclosures), it also returns the Checkbox Elements snippet (script tag + element + React usage) that records each consent as evidence.

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": {
      "interval": "<interval>"
    },
    "name": "get_compliant_disclosure"
  }
}

Input Schema

NameRequiredDescriptionDefault
siteNoSite id (site_…) to also get the Elements snippet for.
priceNoRecurring price, major units (19.99).
amountNoOr minor units (1999 = $19.99).
currencyNoISO currency, default "usd".
intervalYesBilling interval.
brand_nameNoAlias of merchant_name.
cancel_urlNohttps URL where subscribers cancel online (used in generated text).
trial_daysNoFree-trial days (0 or absent = no trial).
intro_priceNoPromo first-period price, major units ($8 → 8).
cancel_timingNoWhen a cancellation takes effect (default period_end).
intro_periodsNoBilling periods the promo lasts (default 1).
jurisdictionsNoWhere the business sells: "all" (default) or state codes like ["US-CA","US-NY"] ("CA" works too). Federal law is always included.
merchant_nameNoBrand shown to subscribers, e.g. "Acme".
interval_countNoDefault 1; 3 + month = quarterly.
intro_percent_offNoOr the promo as % off (coupon percent_off).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / amount / description
      Previous value: -"Recurring price in MINOR units, Stripe style: 1999 = $19.99."New value: +"Or minor units (1999 = $19.99)."
    • addedInput schema / properties / brand_name
      Added value: +{
      +  "description": "Alias of merchant_name.",
      +  "maxLength": 200,
      +  "type": "string"
      +}
    • changedInput schema / properties / cancel_url / description
      Previous value: -"https URL where subscribers cancel online. Strongly recommended: generated text uses it."New value: +"https URL where subscribers cancel online (used in generated text)."
    • changedInput schema / properties / interval_count / description
      Previous value: -"Intervals between charges (default 1; 3 + month = quarterly)."New value: +"Default 1; 3 + month = quarterly."
    • changedInput schema / properties / price / description
      Previous value: -"Recurring price in MAJOR units, e.g. 19.99. Or give amount."New value: +"Recurring price, major units (19.99)."
  2. Changed3 schema fields changed
    • addedInput schema / properties / intro_percent_off
      Added value: +{
      +  "description": "Or the promo as % off (coupon percent_off).",
      +  "exclusiveMaximum": 100,
      +  "exclusiveMinimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / intro_periods
      Added value: +{
      +  "description": "Billing periods the promo lasts (default 1).",
      +  "maximum": 36,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / intro_price
      Added value: +{
      +  "description": "Promo first-period price, major units ($8 → 8).",
      +  "exclusiveMinimum": 0,
      +  "type": "number"
      +}
  3. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare idempotent, non-destructive, closed-world, so the description doesn't need to repeat safety. It adds genuinely useful behavior: the wording is 'locked' and engine-verified, the site parameter carries an auth prerequisite ('a key allowed to create disclosures'), and the snippet records each consent as evidence.

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 outcome and return fields, then the required inputs, then the optional site behavior — a sensible ordering. Slightly dense prose ('The same wording Checkbox Elements and Fixes use') and the long inline example cost a little, but nothing is wasted.

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?

With 15 parameters and no output schema, the description correctly spends its words naming the returned artifacts and the inputs that matter. It omits mention of jurisdictions and currency defaults, which matter for compliance correctness, leaving a small gap for a tool this complex.

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 goes beyond by framing price-vs-amount as alternatives (major vs minor units) and grouping the promo family (intro_price or intro_percent_off, intro_periods) as an either/or choice. The worked example JSON makes defaults and shape concrete in a way the schema alone does not.

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+resource: 'Generates the locked, engine-verified automatic-renewal disclosure for a plan', and enumerates the four artifacts returned (disclosure_text, consent_label, button_text, html). An agent can distinguish this from check_disclosure or get_elements_snippet without opening the 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 a clear condition for the extended behavior ('With site (and a key allowed to create disclosures)') and a concrete example invocation with representative values, which is real usage guidance. It stops short of explicitly routing against siblings such as check_disclosure, so the agent must infer that this generates while check_* validates.

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.