Set up Checkbox for this project
setup_checkboxStart here when the user says "add Checkbox", "make my subscriptions compliant", or the project is not connected to Checkbox yet. Checkbox monitors a subscription business against automatic-renewal laws (federal law, 27 states, DC and New York City: FTC ROSCA, California ARL, New York and the other state laws).
Connected through the Checkbox connector (OAuth: claude.ai, Claude Desktop, Claude Code /mcp, Cursor, VS Code): the human already approved in the browser; there is NO key to ask for, paste or save. Call it with site_url (and what else you know): it registers the site and runs the first checks in the same call. Pass everything you already know from the codebase: site_url, checkout_url, terms/privacy/refund/cancellation URLs, billing_platform, plans, project.layout_file. Checkbox fetches and checks the Terms itself.
Only for clients without OAuth (no API key configured on this server): it returns a link for the HUMAN to open and click Approve (free, no card). Show them the link in one line, then call setup_checkbox again with the returned device_code — it waits up to ~50 s; call again while it says pending. On approval the stdio server saves the key to the git-ignored .env.local, showing a hint; the remote one returns it once: save it to .env.local, never commit it or ask for a pasted key.
After this: follow next_action (usually verify the domain and install the snippet, then get_setup_status with verify=true), then get_compliance_plan.
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": "setup_checkbox"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| live | No | Also request live-mode keys (live mode activates after domain verification). Default false: test mode only. | |
| agent | No | Which AI agent is doing this, shown to the human on the approval page, e.g. "Claude Code". | |
| plans | No | 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. | |
| project | No | Facts about the codebase that help Checkbox point tasks at exact files. | |
| site_url | No | Public URL of the site (production, or a preview deployment), e.g. "https://acme.example". | |
| terms_url | No | Terms of service URL. Checkbox fetches and checks it. | |
| refund_url | No | Refund policy URL. | |
| account_url | No | Account page where subscribers manage / cancel (null clears a URL). | |
| device_code | No | From an earlier setup_checkbox call: poll that browser approval instead of starting a new one. | |
| privacy_url | No | Privacy policy URL. | |
| checkout_url | No | Page where customers subscribe (pricing or checkout page). | |
| merchant_name | No | 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. | |
| support_email | No | Support address for subscribers. | |
| billing_platform | No | Billing platform. | |
| cancellation_url | No | Cancellation policy URL, if separate from the Terms. |