Skip to main content
Glama

Report what you learned or changed during setup

update_setup
Idempotent

Tell Checkbox facts you found in the codebase or changes you made: site_url, checkout_url, policy URLs (Checkbox fetches and checks the Terms, refund and cancellation policies), billing_platform, plans and prices, project.layout_file, where checkout sessions are created, and which file got the snippet. Facts decide which laws apply (free trials, annual terms, physical goods). Only send what you know; omit the rest. Returns the updated checklist with next_action. Typical next step: get_setup_status with verify=true.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "update_setup"
  }
}

Input Schema

NameRequiredDescriptionDefault
plansNoPlans and prices found in the code, e.g. [{"name":"Pro","amount":1900,"currency":"usd","interval":"month","trial_days":14}]; a promo adds intro_percent_off and intro_periods. They decide which laws apply and what generated copy states.
projectNoFacts about the codebase that help Checkbox point tasks at exact files.
site_urlNoPublic URL of the site (production, or a preview deployment), e.g. "https://acme.example".
live_siteNoLive-mode site id (site_…) if you created one with a live key.
terms_urlNoTerms of service URL. Checkbox fetches and checks it.
refund_urlNoRefund policy URL.
account_urlNoAccount page where subscribers manage / cancel (null clears a URL).
env_writtenNoFile you wrote the keys to, e.g. ".env.local".
privacy_urlNoPrivacy policy URL.
checkout_urlNoPage where customers subscribe (pricing or checkout page).
merchant_nameNoThe brand subscribers know (names the seller in generated disclosures), e.g. from the <title> or package.json (also accepted as "brand"). Default: the host name, which the plan then asks you to replace.
setup_sessionNoSetup session id (setup_…). Default: the newest one.
support_emailNoSupport address for subscribers.
billing_platformNoBilling platform.
cancellation_urlNoCancellation policy URL, if separate from the Terms.
refetch_policiesNoFetch the policy pages again even if their URLs did not change (after editing them).
snippet_installed_inNoFile(s) you added the Checkbox snippet tag to, e.g. "app/layout.tsx".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / snippet_installed_in / anyOf
      Added value: +[
      +  {
      +    "maxLength": 500,
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "maxLength": 300,
      +      "type": "string"
      +    },
      +    "maxItems": 20,
      +    "type": "array"
      +  }
      +]
    • changedInput schema / properties / snippet_installed_in / description
      Previous value: -"File you added the Checkbox snippet tag to, e.g. \"app/layout.tsx\"."New value: +"File(s) you added the Checkbox snippet tag to, e.g. \"app/layout.tsx\"."
    • removedInput schema / properties / snippet_installed_in / maxLength
      Removed value: -500
    • removedInput schema / properties / snippet_installed_in / type
      Removed value: -"string"
  2. Changed3 schema fields changed
    • changedInput schema / properties / billing_platform / description
      Previous value: -"Billing platform the code uses."New value: +"Billing platform."
    • changedInput schema / properties / billing_platform / enum
      Previous value: -[
      -  "stripe",
      -  "shopify",
      -  "recharge",
      -  "chargebee",
      -  "recurly",
      -  "paddle",
      -  "woocommerce",
      -  "custom"
      -]New value: +[
      +  "stripe",
      +  "shopify",
      +  "recharge",
      +  "chargebee",
      +  "recurly",
      +  "paddle",
      +  "lemon_squeezy",
      +  "woocommerce",
      +  "custom"
      +]
    • changedInput schema / properties / support_email / description
      Previous value: -"Support address subscribers can write to."New value: +"Support address for subscribers."
  3. Changed6 schema fields changed
    • changedInput schema / properties / plans / description
      Previous value: -"Plans and prices found in the code, e.g. [{\"name\":\"Pro\",\"amount\":1900,\"currency\":\"usd\",\"interval\":\"month\",\"trial_days\":14}]. They decide which laws apply (trials, annual terms)."New value: +"Plans and prices found in the code, e.g. [{\"name\":\"Pro\",\"amount\":1900,\"currency\":\"usd\",\"interval\":\"month\",\"trial_days\":14}]; a promo adds intro_percent_off and intro_periods. They decide which laws apply and what generated copy states."
    • addedInput schema / properties / plans / items / properties / intro_amount
      Added value: +{
      +  "description": "Promo first-period price, minor units.",
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / plans / items / properties / intro_amount_off
      Added value: +{
      +  "exclusiveMinimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / plans / items / properties / intro_percent_off
      Added value: +{
      +  "exclusiveMaximum": 100,
      +  "exclusiveMinimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / plans / items / properties / intro_periods
      Added value: +{
      +  "maximum": 36,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / plans / items / properties / price_id
      Added value: +{
      +  "description": "Stripe Price id.",
      +  "maxLength": 200,
      +  "type": "string"
      +}
  4. Changed16 schema fields changed
    • addedInput schema / properties / account_url / anyOf
      Added value: +[
      +  {
      +    "maxLength": 2048,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / account_url / description
      Previous value: -"Account page where subscribers manage / cancel."New value: +"Account page where subscribers manage / cancel (null clears a URL)."
    • removedInput schema / properties / account_url / maxLength
      Removed value: -2048
    • removedInput schema / properties / account_url / type
      Removed value: -"string"
    • addedInput schema / properties / cancellation_url / anyOf
      Added value: +[
      +  {
      +    "maxLength": 2048,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / cancellation_url / maxLength
      Removed value: -2048
    • removedInput schema / properties / cancellation_url / type
      Removed value: -"string"
    • addedInput schema / properties / privacy_url / anyOf
      Added value: +[
      +  {
      +    "maxLength": 2048,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / privacy_url / maxLength
      Removed value: -2048
    • removedInput schema / properties / privacy_url / type
      Removed value: -"string"
    • addedInput schema / properties / refund_url / anyOf
      Added value: +[
      +  {
      +    "maxLength": 2048,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / refund_url / maxLength
      Removed value: -2048
    • removedInput schema / properties / refund_url / type
      Removed value: -"string"
    • addedInput schema / properties / terms_url / anyOf
      Added value: +[
      +  {
      +    "maxLength": 2048,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / terms_url / maxLength
      Removed value: -2048
    • removedInput schema / properties / terms_url / type
      Removed value: -"string"
  5. Changed2 schema fields changed
    • changedInput schema / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / merchant_name / description
      Previous value: -"The brand subscribers know (names the seller in generated disclosures), e.g. from the <title> or package.json. Default: the host name, which the plan then asks you to replace."New value: +"The brand subscribers know (names the seller in generated disclosures), e.g. from the <title> or package.json (also accepted as \"brand\"). Default: the host name, which the plan then asks you to replace."
  6. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=true), the description discloses an external side effect not visible in schema: "Checkbox fetches and checks the Terms, refund and cancellation policies." It also discloses the return payload ("the updated checklist with next_action") and the downstream consequence that facts decide which laws apply. It does not cover auth requirements or failure behavior for malformed plan data, which is why it is not a 5.

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 and the fact categories, then rules ("only send what you know"), then return value and next step — a sensible ordering with no filler. The intermediate list of example fields is somewhat redundant with a 100%-documented schema, which keeps it from a 5.

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 17-parameter tool with nested objects and no output schema, the description supplies the return shape (updated checklist + next_action), the partial-update rule, and the downstream effect of the data. Remaining gaps — nested plan object semantics and error handling — are largely covered by the unusually rich schema descriptions.

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 description coverage is 100%, so the baseline is 3; the description earns above that by explaining *why* the data matters ("Facts decide which laws apply (free trials, annual terms, physical goods)") and by framing the whole call as a partial report rather than a full replacement. The field enumeration itself largely restates schema properties, so it is not a 5.

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?

"Tell Checkbox facts you found in the codebase or changes you made" states a specific verb and resource, and the following enumeration names the exact fact categories (site_url, checkout_url, policy URLs, billing_platform, plans/prices, layout_file, checkout code location, snippet file). The closing line routing to get_setup_status makes it distinguishable from the read-only siblings 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?

"Only send what you know; omit the rest" explicitly establishes partial-update semantics for a 17-param, all-optional tool, which is the key usage rule. "Typical next step: get_setup_status with verify=true" gives an explicit follow-on action. It stops short of stating when NOT to use this versus update_site, but the context is otherwise unambiguous.

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.