Page Lemon
Server Details
Publish websites from chat and keep editing them: live links, version history, forms and domains.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 89.9% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 68 tools
The tools cover many distinct resources, but several clusters overlap: site lists vs. app lists (save_list vs. save_app_list, add_list_items vs. add_app_row), people vs. users (add_people vs. invite_users), and groups (save_group vs. save_user_group). Descriptions help, but with 68 tools an agent must read carefully to avoid misselection.
Most names follow a predictable snake_case verb_noun pattern (add_booking, get_site, remove_plugin, update_plugin). A few deviations like deploy, protect, unprotect, and site_settings are minor but keep it from being fully consistent.
68 tools is far beyond a well-scoped set and is an extreme mismatch even for a broad website platform. Many operations could be consolidated, and the sheer surface area increases selection burden substantially.
The surface covers many domains (sites, deploys, versions, domains, lists, bookings, plugins, people, analytics, orders). However, notable gaps remain, such as listing or retrieving orders and listing webhooks, which may cause dead ends for common workflows.
Available Tools
68 toolsadd_app_rowAdd an entry for a userCDestructiveInspect
Adds an entry for a user to read (values; group shares it with the group, two-step). Needs the owner's opt-in for the list.
| Name | Required | Description | Default |
|---|---|---|---|
| list | Yes | ||
| site | Yes | ||
| group | No | ||
| member | Yes | ||
| values | Yes | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is non-read-only, destructive, non-idempotent, and open-world. The description adds some useful context beyond that with "two-step" and the owner opt-in requirement, but it does not explain what the destructive aspect means, what happens on duplicate entries, or how confirm_token is obtained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, and the verb is front-loaded, but the parenthetical is syntactically awkward and obscures the intended workflow. The content is concise without being clear, so structure is only marginally adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a six-parameter mutation tool with a nested values object, a required confirm_token flow, and destructive behavior. Even with an output schema present, the description does not provide enough operational context to call it safely and correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters, so the description must carry parameter meaning. It only vaguely gestures at values and group sharing; it says nothing about site, list, member, or confirm_token, leaving most required inputs unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says it "Adds an entry for a user," which gives a verb and a rough target, but it never clearly states that this entry goes into a list/app row or how that differs from siblings like add_list_items. The parenthetical "to read (values; group shares it with the group, two-step)" muddies rather than sharpens the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "two-step" hints at a confirmation flow, but there is no explicit when-to-use guidance, no exclusion against add_list_items or update_app_rows, and no stated prerequisites beyond the vague "Needs the owner's opt-in." An agent would have to infer when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_app_webhookAdd an app webhookADestructiveInspect
Adds a signed app-event webhook, ids only. Two-step. Returns id and test; the signing secret is given in the Dashboard only.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | https:// address | |
| site | Yes | ||
| events | No | default all; e.g. row.created, member.joined | |
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| events | No | |
| url_host | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (destructiveHint=true, openWorldHint=true, non-idempotent), and the description adds genuinely new context: the webhook is signed, the signing secret is never returned by the API (Dashboard only), and the operation is a two-step flow. It stops short of explaining what happens to existing webhooks or what the intermediate step returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded clauses with no filler; the verb and resource come first and the caveats follow. Density is high, though 'ids only' is terse to the point of ambiguity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be spelled out, and the destructive/open-world profile is covered by annotations. The unresolved gap is the two-step flow: the description names it but never explains how confirm_token is obtained or used, which is the one thing an agent must know to complete the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: url and events are documented in-schema (including default-all and event name examples), while site and confirm_token are bare. The description partially compensates by implying site takes an ID ('ids only') and that confirm_token belongs to the two-step flow, but it never explains the token's origin or lifetime.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Adds a signed app-event webhook') and adds a distinguishing trait (signed events, ids only), so an agent can tell it apart from remove_app_webhook. The phrase 'ids only' is cryptic and could mean either input or output is ID-based, which blunts the precision slightly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Two-step' combined with the confirm_token parameter implies a two-call confirmation flow, which is useful implied guidance. However, it never says when to prefer this over remove_app_webhook or other add_* siblings, nor what the first step actually requires or returns to trigger the second.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_bookingAdd a bookingADestructiveInspect
Adds a booking the owner took (phone, walk-in): service, start, customer details; series repeats weekly; resource: staff or a room. A clash is a 409 (force: true books anyway). Emailing the customer takes confirm_token first.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| site | Yes | ||
| No | |||
| force | No | ||
| notes | No | ||
| party | No | ||
| phone | No | ||
| start | No | Local "2026-10-15T14:00" (booking time zone) or "now" | |
| series | No | Weekly repeat: {every: week|fortnight, count 2-52 or until YYYY-MM-DD, on_clash: "skip"} | |
| source | No | Default phone | |
| answers | No | {question id: answer} ("" removes one) | |
| service | No | Service id or name | |
| resource | No | Staff or room id or name (default any free) | |
| plugin_id | No | Default: booking page | |
| confirm_token | No | ||
| notify_customer | No | Email the customer (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| item_id | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, idempotentHint=false, so the safety profile is carried by structured data; the description adds genuinely new behavior: clash handling returns 409, force bypasses the conflict check (i.e. double-booking is possible), and confirm_token is a prerequisite for notifying the customer. It does not describe side effects like notifications defaulting on or what a series creates, leaving a small gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with the purpose front-loaded, followed by the mutating edge cases (clash/force) and the prerequisite (confirm_token). No filler; every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-param, nested-object mutation tool, the description covers the creation flow, series behavior, conflict semantics, and the notification prerequisite, and an output schema exists so return values need no explanation. The remaining gaps are secondary optional fields, not blockers to correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 16 params at 50% schema coverage, the description does real compensatory work: it maps 'service, start, customer details', explains the weekly series semantics, characterizes resource as 'staff or a room', and covers force and confirm_token. Unmentioned params such as party, notes, answers, and plugin_id remain undocumented anywhere, so it is helpful but not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Adds a booking') and immediately narrows scope to owner-taken bookings (phone, walk-in), which distinguishes it from the customer-facing booking flow and from edit_booking/approve_booking siblings. The clause listing service, start, customer details, weekly series, and staff/room resource tells an agent exactly what kind of record is created.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use ('a booking the owner took (phone, walk-in)') and names two conditional paths: clashes return 409 and force:true overrides it, and emailing the customer requires confirm_token first. It does not explicitly say when to prefer edit_booking or get_free_slots instead, so it stops short of full when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_domainConnect a domainAInspect
Connects the user's own domain to a site (owner; paid plans; www is easiest): returns the DNS records, a one-click apply_url when the DNS host supports it, and share_url for whoever runs the DNS; again: its status. claim: true proves a reserved domain or one another account holds by a TXT record.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| claim | No | true: prove a reserved domain or one another account holds with a DNS TXT record; call again to check | |
| domain | No | Same as hostname | |
| hostname | No | The domain, e.g. www.example.com (no https://) | |
| confirm_root | No | true: the root domain anyway (not www) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing what the call produces (DNS records, one-click apply_url, share_url for the DNS operator) and the re-call-to-check-status pattern, which is consistent with idempotentHint=false. It also surfaces the owner/paid-plan precondition and the claim workflow. Missing only failure modes (what happens on an unverified or conflicting domain).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, which is good, but the body is a dense semicolon chain with terse fragments like "again: its status" and "claim: true proves..." that read like notes rather than prose. Every clause carries information, but the structure makes it harder to parse than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values needn't be spelled out, yet the description helpfully names the key artifacts (DNS records, apply_url, share_url). Prerequisites, the www default and the claim loop are all covered. A brief note on failure/conflict behavior would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so the schema already documents claim, hostname, domain and confirm_root; the description restates the claim semantics and hints at the www-vs-root choice. It adds no clarification of the domain/hostname duplication or of confirm_root specifically, so it neither compensates for nor meaningfully exceeds the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: "Connects the user's own domain to a site." The parenthetical adds scope (owner, paid plans, www is easiest), making the action distinguishable from remove_domain or get_domains. It stops short of explicitly naming the sibling tools, so it's clear but not maximally differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real usage context: only the site owner can do this, it requires a paid plan, and www is the easiest hostname form. The claim=true branch is scoped to reserved domains or domains held by another account. There are no explicit exclusions or named alternatives (e.g. use get_domains to inspect first), which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_list_itemsAdd list itemsAInspect
Adds items to a list (up to 500); the site shows them within seconds. from copies a form reply: a preview first, then consent and confirm_token after the person's yes.
| Name | Required | Description | Default |
|---|---|---|---|
| copy | No | {field: form reply field} | |
| from | No | Or copy this form reply (itm_…) | |
| list | Yes | ||
| site | Yes | ||
| items | No | {field: value} each | |
| consent | No | The person agreed to be shown | |
| position | No | Insert at (1 = first; default: end) | |
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| change_id | No | |
| agent_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It adds crucial behavioral context beyond annotations, specifying functional limits (up to 500 items), performance characteristics ('within seconds'), and the complex business logic of using form replies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is dense but highly efficient, packing functional limits, performance metrics, and a specific usage workflow into two succinct sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (8 parameters, nested objects), the description provides enough operational logic and workflow constraints for an agent to confidently determine when and how to execute the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at 63%, the description significantly helps define the usage of complex fields, particularly clarifying that parameters like 'copy' and 'from' relate to form replies and their required workflow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the primary function (adding items to a list). While it doesn't explicitly define the scope relative to all other list manipulation tools, the verb 'Adds' distinguishes it from delete or update operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a highly specific workflow guideline for usage, detailing the necessary sequence of events involving form replies: preview, consent, and confirmation token required after user agreement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_peopleAdd peopleBDestructiveInspect
Gives people access, or sets a workspace person's role (Owner or Admin). developer (workspace: a seat), viewer, admin, custom+group, member (users). Returns approve_url.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | developer, viewer, member, admin or custom. An audience (students, clients) is member | |
| site | Yes | ||
| group | No | ||
| emails | No | Emails; for member also company domains (required unless confirm_token) | |
| notify | No | member: email each new address (default true) | |
| permissions | No | Ticks, personal site | |
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is a destructive, non-idempotent, open-world mutation. The description adds some role context and mentions returning approve_url, but it does not explain approval flow, notification behavior, or what access changes entail beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. However, the role list is dense and somewhat cryptic, especially 'developer (workspace: a seat)' and 'custom+group'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive access-granting tool with seven parameters, the description is minimally adequate. It covers the core purpose and role values, but omits key usage distinctions and parameter details, even though the output schema covers return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 57%, so the description must help with the undocumented parameters. It clarifies role values such as developer, viewer, admin, custom+group, and member, but leaves site, group, emails, notify, permissions, and confirm_token largely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: giving people access or setting a workspace person's role. It is clear what the tool does, but it does not explicitly differentiate itself from sibling tools such as invite_users or remove_people.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Gives people access, or sets a workspace person's role' implies the usage context, but there is no explicit when-to-use guidance, no exclusions, and no comparison to alternatives like invite_users.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_pluginAdd a pluginAInspect
Adds a plugin to a site (paid plans): kind and settings (list_plugins settings_help), or forms or form_html (kind forms). Forms and booking: the first call returns setup_summary; confirm_token saves it and returns snippet_html; then test_plugin.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| lang | No | The page's <html lang>, e.g. de (one snippet per language) | |
| name | No | e.g. "Contact form" | |
| site | Yes | ||
| forms | No | Typed: fields, success_message, redirect, submit_label, notify, store, auto_reply | |
| settings | No | As list_plugins settings_help | |
| form_html | No | Forms: the page's <form> | |
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| plugin_id | No | |
| snippet_html | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this is a non-read-only, open-world, non-destructive, non-idempotent operation. The description adds meaningful behavior beyond annotations: the first call returns setup_summary, confirm_token is what saves the plugin, and snippet_html is returned after confirmation. It does not cover error cases, token expiry, or permissions beyond the paid-plan note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core action and paid-plan scope. The parenthetical and semicolon-heavy phrasing is terse and slightly cryptic, but it packs substantial workflow information without wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with nested objects and an output schema, the description covers the essential add-plugin workflow and confirmation behavior. It leaves some gaps around the payments kind and the relationship to update_plugin, but the schema and annotations carry much of the remaining detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 63% schema description coverage, the description compensates well for the most important gaps: it explains the kind/settings/forms/form_html branching and gives confirm_token special meaning. It still does not clarify lang, name, or the payments/booking-specific parameter expectations beyond the high-level workflow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action and resource: 'Adds a plugin to a site (paid plans)'. It also signals variant behavior for settings versus forms/form_html, though it does not explicitly distinguish this tool from update_plugin or remove_plugin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful usage context: paid plans, a reference to list_plugins settings_help for settings, the forms/form_html path when kind is forms, and the multi-step setup_summary/confirm_token/test_plugin flow. It lacks an explicit statement of when to use this instead of update_plugin, but the add-versus-update distinction is relatively clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_bookingApprove a bookingADestructiveIdempotentInspect
Approves a booking request and emails the customer. A class waitlist entry_id (wl_…) as item_id books that person in now and emails them.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| item_id | Yes | ||
| message | No | A note for the customer | |
| plugin_id | No | Default: booking page |
Output Schema
| Name | Required | Description |
|---|---|---|
| item_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description adds the customer email side effect and the waitlist-conversion behavior, but says nothing about reversibility (whether an approval can be undone via cancel_booking), failure modes, or what the plugin_id toggle changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the core action and its side effect front-loaded and the special-case input mode immediately after. Every clause carries information an agent cannot get from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations cover safety. What remains thin is recovery behavior (can an approved booking be reverted?) and the effect of plugin_id defaulting to the booking page, both relevant for a destructive mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema description coverage, the description meaningfully compensates for item_id by revealing it also accepts wl_ waitlist entry ids — a non-obvious format constraint. It says nothing about the required site parameter or the message field beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (approve a booking) plus its immediate side effect (emails the customer), and clarifies a second mode where a waitlist entry_id is accepted as item_id. It is clearly distinguishable from add_booking, cancel_booking and edit_booking by name semantics, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The waitlist sentence gives a concrete usage context that an agent would otherwise not infer: passing a wl_… id books that person in immediately rather than performing a plain approval. What is missing is an exclusion rule against nearby siblings such as edit_booking or set_booking_outcome, so routing depends partly on inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bind_listMake page content a listADestructiveInspect
Turns repeated blocks on a page (a menu) into a list: the first call previews items and markup; with confirm_token it creates the list, adds the items and publishes the page.
| Name | Required | Description | Default |
|---|---|---|---|
| list | Yes | ||
| path | Yes | Page, e.g. menu.html | |
| site | Yes | ||
| fields | Yes | {field: selector in a block; "": the block} | |
| import | No | Add items to a list that has some | |
| selector | Yes | Repeated blocks, e.g. ".menu li" | |
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| blocks | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint, non-idempotent and open-world, so safety is partly covered; the description adds the crucial two-step behavior (first call only previews items and markup, repeat with confirm_token to actually create and publish). That is real context beyond the annotations, though it does not say whether the publish step is reversible or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence front-loads the core transformation, then the two-mode behavior, with no filler. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the preview/confirm flow plus publish side effect are disclosed. Still, for a destructive 7-parameter mutation, it omits what the preview returns, whether the publish can be undone (undo_list_change exists), and the role of import/list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 57%; selector, fields and path are documented in the schema, and the description adds the meaning of confirm_token (triggering creation rather than preview). But list, import and site get no explanation in either place, so it does not fully compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and outcome: turns repeated blocks (a menu) on a page into a list, and names the exact input shape (repeated blocks). The two-phase preview/confirm behavior further distinguishes it from list-creation siblings like save_list or add_list_items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when it applies (only when content is repeated blocks such as a menu) and explains the confirm_token sequence, which is useful usage context. However, it never explicitly contrasts with add_list_items, import_list_items, or save_list, so an agent must infer which list tool to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bring_back_sitesBring sites back to a workspaceBDestructiveInspect
Lists the sites that left a workspace when it froze and, once it is paid again, brings the chosen ones back (confirm: true returns approve_url).
| Name | Required | Description | Default |
|---|---|---|---|
| sites | No | ||
| confirm | No | ||
| decline | No | ||
| workspace | Yes | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| sites | No | |
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true and non-idempotent, so the safety profile is covered structurally. The description adds genuinely new context: a confirmation flow where 'confirm: true returns approve_url'. It omits what happens without confirmation, what approve_url is for, and how confirm_token is obtained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the listing behavior before the restore action. Nothing is padding, though the parenthetical about approve_url is slightly buried at the end where it matters most.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. Given five parameters and a destructive, open-world mutation, the description covers the essential scenario and the confirmation mechanism; the remaining gaps (decline semantics, token sourcing) are real but secondary for a correct first call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load. It explains 'confirm' and implies 'sites' (the chosen ones), but leaves 'decline', 'confirm_token' and 'workspace' entirely undocumented in both schema and text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names both a list operation and a restore operation on 'sites that left a workspace', which is more specific than the title but conflates two behaviors into one tool. It never states which sibling to use instead (move_sites, transfer_site, get_site), so the boundary is only inferrable from the frozen-workspace scenario.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a triggering condition ('when it froze' / 'once it is paid again'), which implies when the tool applies. But it never says when not to use it, and it doesn't tell the agent to call it once to list versus again to restore.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_bookingCancel a bookingADestructiveInspect
Cancels a booking or declines a request (two steps; then the customer is emailed). A waitlist entry_id (wl_…) takes that person off; a class_id (cl_…) cancels the class, one email each. A paid booking is refunded in full unless refund says otherwise (approve_url).
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| refund | No | Paid booking; default full | |
| series | No | "this" (default) or "rest" (this date and every later one) | |
| item_id | Yes | ||
| message | No | A note for the customer | |
| plugin_id | No | Default: booking page | |
| confirm_token | No | ||
| notify_customer | No | Email the customer (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the destructive, non-idempotent, open-world profile, so the bar is lower; the description still adds real context — that cancellation is a two-step flow that emails the customer, one email per action, and that a paid booking is refunded in full by default. It stops short of spelling out irreversibility or permission requirements, but the side effects are well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and front-loaded — the core action and its two branches lead, with consequences trailing. The trailing '(approve_url)' is cryptic and slightly muddies the close, keeping it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent mutation with 8 params, the description covers the consequences an agent most needs (email side effect, refund policy, two-step flow), and an output schema exists so return values needn't be explained. Minor gaps remain around series scope and the confirm_token purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 63%, and the description compensates for the biggest gap by explaining that item_id accepts either a waitlist wl_ id or a class cl_ id and what each does. It also confirms the refund default, though it leaves series, message, plugin_id, and confirm_token unaddressed beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Cancels a booking or declines a request') and immediately qualifies the resource variants: a wl_ entry_id removes a waitlist person, a cl_ class_id cancels the class. That level of specificity lets an agent distinguish this from edit_booking or approve_booking without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives conditional behavior tied to item_id prefixes, which implicitly tells the agent which mode applies, but it never names an alternative tool or states when to prefer approve_booking, refuse_order, or edit_booking instead. Usage is inferable rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_transferCancel a transferADestructiveIdempotentInspect
Cancels a site's pending transfer: the recipient's link stops working and nothing changes on the site.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true. The description adds useful behavioral context beyond those flags: the recipient's link stops working and the site itself is unchanged, clarifying the scope of the destructive effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the operation and then states the effect. Every clause adds useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema and rich annotations, the description provides the key operational context and effect. The main remaining gap is input parameter format, which is a minor deficiency rather than a fundamental omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one required parameter ('site') with 0% schema description coverage, so the description must compensate but does not. It does not explain whether 'site' expects an ID, domain, or name, leaving the input format ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Cancels a site's pending transfer') and implicitly distinguishes itself from sibling 'transfer_site'. It also states the target condition ('pending transfer'), so an agent can identify the operation 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is clear from the phrase 'pending transfer', which indicates the applicable state, and the effect clarifies the intended operation. It does not explicitly name alternatives such as transfer_site or state when not to use it, but the context is sufficiently clear for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_siteCheck a siteARead-onlyIdempotentInspect
Checks a live site: measured problems by area, most serious first, each with pages, why and fix; plus a checklist to judge by reading.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | One page | |
| site | Yes | ||
| areas | No | Any of: seo, ai_search, links, accessibility, speed, privacy_security, features, basics. | |
| site_token | No | From an anonymous deploy (secret) |
Output Schema
| Name | Required | Description |
|---|---|---|
| more | No | |
| total | No | |
| checks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, idempotent, read-only operation, so the description's added value is the output contract: severity ordering, per-problem pages/why/fix, and a readable checklist. What it omits is operational behaviour — that it fetches the live site (latency, possible failures) and when site_token is required for anonymous deploys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the verb and resource, then enumerates the output shape without filler. Every clause carries information an agent needs to decide to call it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return values needn't be re-explained, and the description is adequate on scope. It is still thin for a live-site fetch: no note about cost/latency, authentication via site_token, or how a single-page path interacts with the area-based scan.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the schema largely documents the parameters. 'Measured problems by area' loosely ties to the areas enum list, but the description adds no meaning for path (single-page scoping) or site_token (secret for anonymous deploys) beyond what the schema already states — the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Checks a live site') followed by a precise account of the returned artifact: problems by area, severity-ordered, with pages, rationale and fix, plus a checklist. This clearly separates it from retrieval siblings like get_site or get_analytics, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'live site' and 'checklist to judge by reading', suggesting an audit of a deployed site rather than stored metadata. There is no explicit when-to-use/when-not statement and no pointer to alternatives such as get_site or get_analytics for plain data retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_upload_linkGet an upload linkADestructiveInspect
Returns a 1-hour link where the user uploads photos and files into a site folder; each upload goes live at once as a new version (get_site lists them). replace_site, only when the user asks: a zip that replaces every file.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| folder | No | Target folder (default images); not with replace_site | |
| site_token | No | From an anonymous deploy (secret) | |
| replace_site | No | true: a one-use link for a whole-site zip |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructive and open-world annotations, it discloses the 1-hour link expiry, immediate publishing as a new version, and that replace_site uses a zip that replaces every file. These are important behavioral consequences that help the agent reason about destructive scope and timing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior, expiry, immediate-version effect, and replace_site caveat are front-loaded and waste no words. The parenthetical get_site reference earns its place by clarifying where uploaded versions appear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations declaring destructive/open-world behavior, an output schema, and strong schema descriptions, the description supplies the remaining context an agent needs: timing, immediate versioning, and the replace_site condition. No essential decision information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers 75% of parameters, and the description adds useful meaning for replace_site and its relationship to folder behavior. It does not explain site_token, but that parameter is documented in the schema, so the description adds value without needing to duplicate everything.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and action: a 1-hour link for uploading photos/files into a site folder, with a distinct replace_site mode. It clearly distinguishes upload-link behavior from listing via get_site and from whole-site replacement, so an agent can identify the tool 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit conditional rule for replace_site: use it only when the user asks. It also implies the default upload-link use case and references get_site for listing versions, though it does not enumerate other alternatives beyond the two modes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_listDelete a listCDestructiveInspect
Deletes a list and its items (a list with items: two steps).
| Name | Required | Description | Default |
|---|---|---|---|
| list | Yes | ||
| site | Yes | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| pages | No | |
| change_id | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as destructive and non-idempotent. The description adds useful context that deleting a list also deletes its items, implying a cascade, but it does not explain the confirm_token, irreversibility, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no wasted text. The parenthetical is awkward, but the core destructive action is stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with an undocumented confirm_token and zero parameter descriptions, the description is too sparse. The output schema means return values need not be explained, but safety and parameter requirements are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters. It does not clarify what 'site' or 'list' should contain, and it completely omits the presence and purpose of 'confirm_token'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: it deletes a list and its items. That distinguishes it from save_list and remove_list_items, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives no guidance on when to use this tool versus remove_list_items, undo_list_change, or save_list. The parenthetical '(a list with items: two steps)' is cryptic and does not clarify the usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_siteDelete siteADestructiveInspect
Deletes a site permanently: returns approve_url, where the user types the site address. Again with confirm_token: its status.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| site_token | No | From an anonymous deploy (secret) | |
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: deletion is permanent and requires an approve_url/confirm_token confirmation round-trip. The second sentence is grammatically unclear, which keeps it from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short, but the second sentence ('Again with confirm_token: its status.') is cryptic and poorly structured. It is concise without being clear, which is a structural flaw rather than excess length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained in depth, and the annotations cover the destructive profile. Still, for a destructive open-world tool with low schema coverage, the description should more clearly explain the confirmation flow, site_token usage, and what happens on a failed or missing confirmation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description must carry more weight. It partially explains confirm_token (used on a second call to get status) and implies the 'site' value is the site address typed by the user, but it never mentions site_token, which is documented only in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Deletes a site permanently'), and the word 'permanently' signals scope beyond a generic delete. It does not explicitly contrast with the sibling 'bring_back_sites', so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies a two-step procedure: first call returns approve_url for the user to type the site address, then call again with confirm_token to get status. However, it never states when to choose this tool over alternatives or what prerequisites must be met before starting the flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deployPublish siteADestructiveInspect
Publishes a new static site or version. New: every file, or a template. Update: site and base_revision with every file, or patch: true with changed files and deleted paths.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | ||
| files | No | ||
| patch | No | true: only the changed files | |
| deleted | No | patch: paths to remove | |
| preview | No | true: save a private preview, not live | |
| staging | No | ||
| template | No | Template, e.g. "brasa" (files sent replace its paths) | |
| workspace | No | New sites: workspace id or name, or "private" | |
| site_token | No | From an anonymous deploy (secret) | |
| base_revision | No | Update: the live revision id last read | |
| confirm_token | No | ||
| idempotency_key | No | New sites: a UUID (retries replay) |
Output Schema
| Name | Required | Description |
|---|---|---|
| site | No | |
| revision | No | |
| claim_url | No | |
| site_token | No | |
| agent_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, and idempotentHint=false, so safety burden is partly covered. The description adds behavioral context by implying that an update requires base_revision (a concurrency guard) and that patch mode needs deleted paths, but it never states that publishing overwrites the live site, how conflicts are handled, or what preview/staging do. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, and zero filler. The telegraphic 'New: ... Update: ...' phrasing is dense but readable, though a couple of fragments are cryptic enough to cost a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter destructive publish tool with an output schema present, the description covers the mode selection that actually determines whether a call succeeds. The remaining gaps (auth requirements, conflict semantics on base_revision mismatch) are genuine but modest given annotations and an output schema. If strict, a 4 could be argued, but the mode routing is the load-bearing information and it is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 12 parameters and only 67% schema coverage, the description earns credit for tying parameters into coherent bundles ('Update: site and base_revision', 'patch: true with changed files and deleted paths'), which the schema does not express. It leaves patch/preview/staging/workspace/site_token/confirm_token relationships largely unexplained, so it is not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Publishes a new static site or version') and splits the operation into New vs Update modes, which is more precise than the title 'Publish site'. It does not name any sibling (rollback, list_versions, delete_site) to differentiate itself, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit conditional guidance for choosing between invocation modes: 'New: every file, or a template' and 'Update: site and base_revision with every file, or patch: true with changed files and deleted paths.' That is real when-to-use guidance, but it is scoped to internal modes and says nothing about when to prefer this over rollback, preview_as_user, or list_versions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_bookingChange a bookingADestructiveInspect
Changes one booking: customer details, or start (and resource) to move it. A class_id (cl_…) as item_id: start moves the class; waitlist closes or re-opens it. A move or a change that emails someone asks first (confirm_token); force: true books a clash.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| site | Yes | ||
| No | |||
| force | No | ||
| notes | No | ||
| party | No | ||
| phone | No | ||
| start | No | New local time, e.g. "2026-10-15T14:00" | |
| answers | No | {question id: answer} ("" removes one) | |
| item_id | Yes | ||
| message | No | A note for the customer | |
| resource | No | With start: staff or room | |
| waitlist | No | Class time or wl_ entry: close (bookings stay; those waiting are emailed) or re-open | |
| plugin_id | No | Default: booking page | |
| confirm_token | No | ||
| notify_customer | No | Email the customer (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| bookings | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, openWorldHint=true. On top of that the description discloses the two-step confirm_token confirmation flow for moves/emailing changes and the clash-override behavior of force:true, which are meaningful behavioral facts not in the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences covering the main purpose first, then edge cases. Extremely dense but nearly every clause carries information; only the compressed phrasing of the confirm_token sentence borders on cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema and annotations are rich, lowering the burden, and the description handles the tricky interactions. But for a 16-parameter mutation tool with 44% schema coverage, several parameters still lack any documented semantics, leaving the definition short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 44%, so the description must compensate. It adds real meaning for item_id's cl_ convention, the start+resource pairing, confirm_token, and force, but leaves customer-detail fields (name, email, phone, notes, party, site) unexplained, so compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Changes one booking') and enumerates what can change: customer details, or start+resource to move. It also disambiguates item_id (a cl_ prefix means a class). Sibling routing (vs add_booking, cancel_booking, set_booking_outcome) is implied but never named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives invocation-level guidance for tricky parameters ('A move or a change that emails someone asks first (confirm_token); force: true books a clash'), which is real when-to-use context. However, it does not state when to choose this over cancel_booking or set_booking_outcome, leaving the main routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_usersDraft an email to app usersADestructiveInspect
Drafts an email to the app's users (all or one plan). Returns approve_url: nothing is sent until the Site Owner approves.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Plain text | |
| plan | No | Plan id; default all | |
| site | Yes | ||
| subject | Yes | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | No | |
| recipients | No | |
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds important behavior beyond the annotations: it returns approve_url and nothing is sent until the Site Owner approves. This approval workflow is valuable context. The only gap is that it does not reconcile the draft-only behavior with the destructiveHint annotation or explain permissions beyond Site Owner approval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded, with no wasted text. The scope and approval constraint are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema means return values need not be fully explained, and the annotations cover the safety profile. Still, for a 5-parameter mutation-style tool with low schema coverage, the description should explain the confirm_token and site parameters more fully to be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, so the description should compensate. It clarifies that plan can mean all users or one plan, but it leaves site, subject, and especially confirm_token unexplained, even though confirm_token is likely central to the approval flow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: drafts an email to the app's users, with scope limited to all users or one plan. This is clear and specific enough for an agent to distinguish it from unrelated sibling tools such as invite_users or remove_user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It indicates that the tool creates a draft and that sending requires Site Owner approval, which is useful usage context. However, it does not explain when to choose this over alternatives, nor does it mention prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_app_dataExport app dataADestructiveInspect
Emails the owner a one-use link to a zip (CSV and files) of one list or all, valid 24 hours, signed in only; the link never comes back here.
| Name | Required | Description | Default |
|---|---|---|---|
| list | No | ||
| site | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| export_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already flag the operation as non-read-only, non-idempotent, open-world, and destructive, but the description adds substantial behavioral detail beyond that: the result is emailed to the owner, the link is one-use and valid for 24 hours, the archive contains CSV and files, and the link is not returned through this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that front-loads the action and outcome. Every clause adds useful information: delivery method, link lifetime, archive contents, scope, authentication, and the fact that the link is not returned here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description does not need to document return values. Annotations cover the safety profile, and the description covers delivery, link validity, contents, and scope. The main gap is the unexplained required 'site' parameter, but otherwise the definition is rich enough to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for both parameters. It explains the optional 'list' scope ('one list or all') but does not explain the required 'site' parameter at all. With only half of the small parameter set clarified, the description leaves a meaningful gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and outcome: emails the owner a one-use link to a zip export of one list or all. It clearly distinguishes this tool from direct data retrieval siblings like get_app_data by emphasizing the emailed link and the fact that the link never comes back through this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an implicit use case (requesting an emailed export link) and a prerequisite ('signed in only'), but it does not explicitly say when to use this instead of get_app_data, create_upload_link, or other export-related siblings. The agent can infer the intended use, but alternatives are not addressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_visitor_recordsFind a person's recordsARead-onlyIdempotentInspect
Finds one person's records by email (a privacy request), with copies shown on the site. Export and erase are in the app.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | ||
| Yes | |||
| limit | No | ||
| scope | No | No site: all, personal or workspace:<id> | |
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds crucial operational context beyond the annotations. Mentioning that the results are 'with copies shown on the site' and that it functions as a 'privacy request' adds necessary behavioral context for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and efficiently communicates the tool's main function and constraints in a single, well-structured sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is clearly defined as read-only, it is not contextually complete for an AI agent because it fails to clarify how the filtering parameters (site, scope) affect the output or the search behavior. The low parameter coverage requires the description to do more work than it does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite having 5 parameters defined in the schema, the description only mentions the primary identifier ('email'). Given the low schema description coverage (20%), the description fails to provide any semantic meaning or context for the filtering parameters like 'site', 'scope', 'limit', or 'cursor'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: finding records based on an email address. It distinguishes its scope by specifying that this is related to a 'privacy request,' which helps differentiate it from general record retrieval tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides helpful constraints regarding the tool's scope by noting that functions like 'Export and erase' are explicitly handled by the dedicated application, guiding the agent toward correct tool selection for mutation tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fulfil_orderMark an order sentBDestructiveInspect
Marks an order sent and emails the customer, with an optional note (two steps).
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| item_id | Yes | ||
| message | No | A note for the customer, e.g. tracking | |
| plugin_id | Yes | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare a destructive, non-idempotent, open-world write operation. The description adds useful context by naming the external side effect (emails the customer) and the optional note, though it does not explain irreversibility or the meaning of the two-step/confirm_token flow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no wasted words. The parenthetical '(two steps)' is slightly cryptic without follow-up, but the overall brevity is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema and rich annotations reduces what the description must cover. However, for a destructive five-parameter mutation with 20% schema coverage, the description leaves important gaps around confirm_token and the required identifiers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description should compensate for undocumented parameters. It mentions only the optional note, which the schema already describes, and leaves site, plugin_id, item_id, and especially confirm_token unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it marks an order sent and emails the customer. That is clearly distinguishable from sibling operations like refund_order and refuse_order, though it does not explicitly route the agent away from those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies the tool is for fulfilling an order, but gives no explicit guidance on when to use it versus refund_order, refuse_order, or other order-related siblings. There are no stated preconditions, exclusions, or alternative-selection rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountGet sites and planBRead-onlyIdempotentInspect
Returns the signed-in account: plan, workspaces, sites (20 at a time, searchable), notices, new-item counts, programs (student, startup).
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Any of: billing, usage, storage, downgrade, notifications, all. Extra sections | |
| sites_limit | No | Sites per call (default 20) | |
| sites_query | No | Filter by name, title or workspace | |
| sites_cursor | No | next_sites_cursor from the last call |
Output Schema
| Name | Required | Description |
|---|---|---|
| new | No | |
| sites | No | |
| notices | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered. The description adds one genuinely new fact, that sites are returned 20 at a time and are searchable, but says nothing about the cursor round-trip or what 'notices' and 'new-item counts' actually contain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, with the payload list packed into parenthetical groups. No filler, though the comma-separated enumeration is dense and slightly hard to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich output schema and full param coverage, the description does not need to explain return values, and it doesn't. What is missing is routing context, i.e. why an agent would pick this over the many narrower sibling getters, which matters for a tool whose payload overlaps several of them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, documenting `include` values, `sites_limit` default 20, `sites_query` filter fields, and `sites_cursor`. The description's '20 at a time, searchable' merely restates the limit and query params without adding format or interaction detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the signed-in account') and enumerates the payload sections (plan, workspaces, sites, notices, counts, programs). It is clearly distinguishable from single-resource siblings like get_site or get_domains, though it never names those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus get_site, get_activity, or get_domains, and no signal about when the extra `include` sections are worth requesting. The agent must infer that this is the 'everything about my account' entry point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_activityRead the activity logARead-onlyIdempotentInspect
Returns the activity log, newest first: who did what (publishing, rollbacks, people, domains, settings, protection, visitor data, AI apps, billing), where and when. Personal account (paid plans), or a workspace: Owner all, Admin all but billing, others their own.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | ||
| type | No | ||
| limit | No | Default 50 | |
| before | No | next_before from the last call | |
| person | No | Email or id | |
| workspace | No | Workspace id or name (default: own account) |
Output Schema
| Name | Required | Description |
|---|---|---|
| entries | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive safety. The description adds real context beyond them: newest-first ordering and role-based visibility (Owner sees all, Admin all but billing, others only their own) plus the paid-plan prerequisite.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense, front-loaded sentences with no filler; the scope/permission detail follows the core purpose. Slightly compressed ('who did what ... where and when') but readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only log tool with annotations and an output schema, the description supplies the key non-schema facts: ordering, event categories, and per-role visibility. Remaining gaps (site/person filter semantics) are covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% with an output schema present. The description usefully maps the `type` enum categories (publishing, rollbacks, people, domains, settings, protection, visitor data, AI apps, billing) and the newest-first ordering clarifies how `before` pagination works, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Returns the activity log') and enumerates the event categories it covers, so an agent knows this is the audit/event feed rather than analytics. No explicit distinction from siblings like get_analytics, keeping it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains access scoping (personal paid account vs. workspace roles) which implies when results differ, but it gives no explicit when-to-use-this-vs-alternatives guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analyticsGet visitor numbersARead-onlyIdempotentInspect
Returns cookieless visitor numbers (views, visitors, contacts; paid plans: taps on buttons and links, top pages, sources, countries, devices) for the days the plan keeps. Taps outside the UK aren't counted (taps_not_counted).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Days back, today included (default 7) | |
| site | Yes | ||
| recent | No | Also counts per event, last 30 minutes | |
| compare | No | Also the previous period (paid plans) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely non-obvious behavioral context: the data is cookieless, retention is limited by plan ('for the days the plan keeps'), some metrics are paid-plan-only, and taps outside the UK are excluded (taps_not_counted). These are real caveats that affect interpretation of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the headline result and then the metric inventory and the caveats. The nested parenthetical is dense but every element (metrics, plan gating, UK exclusion) carries information. Slightly heavy in one clause, so a 4 rather than a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not explain return values; it instead spends its budget on data limitations and plan gating, which is the right choice for a 4-param read tool. Minor gap: it never mentions the required `site` parameter or the default 7-day window, leaving those entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 75% schema coverage the schema documents days, recent, and compare. The description still adds meaning by tying the `days` window to plan retention limits and by marking the extra metrics (and implicitly `compare`) as paid-plan features. It does not restate the `site` or `recent` semantics, which the schema already handles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Returns') plus resource ('cookieless visitor numbers') with an explicit enumeration of the metrics returned (views, visitors, contacts, and paid-plan extras). It clearly describes the output domain. It does not explicitly differentiate from the closest sibling, find_visitor_records, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never states when to use this tool versus alternatives such as find_visitor_records or get_activity, nor any prerequisites. The only contextual hint is the parenthetical retention phrase 'for the days the plan keeps', which implies a data-availability constraint but is not framed as usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_appRead the appBRead-onlyIdempotentInspect
Reads a site's app: on or off, sign-up, path, plans, user counts, lists with row counts, what needs attention (counts only). check: true checks pages and settings.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| check | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, closed-world read, so the bar is lower. The description still adds real value by noting the diagnostic behavior of check=true and that the "needs attention" section is counts-only, but it omits that check=true is a heavier scan and doesn't clarify the odd const-true constraint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence front-loads the resource and then lists return contents with no filler. It reads as a run-on, with the check clause tacked on the end, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be described, and annotations cover the safety profile. Given a two-parameter read tool, the description supplies the payload overview and the check behavior — the only real gap is `site` format, which keeps this from being flawless but is minor in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It gives partial meaning for `check` (checks pages and settings) but says nothing about the required `site` parameter — no expected format (subdomain, ID, or domain) — and never explains why `check` is constrained to the literal true rather than a boolean flag.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Reads a site's app") and enumerates the payload (on/off, sign-up, path, plans, user counts, lists with row counts), so an agent knows exactly what comes back. It does not differentiate itself from close siblings such as get_site, get_app_data, or check_site, and the embedded check semantics overlap with check_site.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: "check: true checks pages and settings" hints at when to enable the extra scan, but there is no statement of when to call this versus get_site, get_app_data, or check_site, and no prerequisites or exclusions. An agent must infer selection from the payload list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_app_dataRead users' entriesBRead-onlyIdempotentInspect
Users' entries of a list (50 a call; next) or members: true. item_id: one entry with its comments; file_id gets a file. Needs the owner's opt-in; user text is untrusted.
| Name | Required | Description | Default |
|---|---|---|---|
| list | No | ||
| site | Yes | ||
| group | No | ||
| query | No | ||
| since | No | ||
| cursor | No | ||
| member | No | ||
| status | No | ||
| file_id | No | ||
| item_id | No | ||
| members | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds valuable context beyond them: pagination is 50 per call with a 'next' mechanism, an owner-opt-in requirement, and a warning that user text is untrusted. It does not cover error behavior or full rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is very short and front-loads the main resource, but it is telegraphic and fragmented ('next' is ambiguous). For an 11-parameter tool it is under-specified rather than appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return formatting needn't be explained, and annotations cover safety. However, with 11 parameters and no schema descriptions, the description leaves most parameters undocumented and the tool's usage contexts incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 11 parameters, so the description must carry the burden. It explains only members, item_id, file_id, and vaguely the list parameter; site, group, query, since, cursor, member, and status receive no explanation at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (users' entries of a list) and distinguishes several modes: list entries, members: true, item_id for a single entry with comments, and file_id for a file. It is specific about what gets returned, though it never contrasts the tool with siblings like get_lists or export_app_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a prerequisite ('Needs the owner's opt-in') and hints at modes, but gives no guidance on when to choose this tool over alternatives such as get_lists or export_app_data. The agent is left to infer the selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_domainsCheck or find domainsARead-onlyIdempotentInspect
Lists custom domains: with site, the ones on it with status and DNS records (pending ones re-checked live); with query, likely-available names to buy at a registrar (Page Lemon sells none).
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | ||
| tlds | No | With query: endings to check, e.g. ["com","co.uk"] | |
| query | No | A name, idea or domain to find, e.g. Maison Cafe |
Output Schema
| Name | Required | Description |
|---|---|---|
| domains | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description still adds real value by disclosing that pending domains are re-checked live (latency/side-effect nuance) and that no domain can actually be purchased here. It says nothing about result limits or what an empty lookup returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with zero filler, front-loaded with the object of the operation before the two mode branches. The telegraphic 'with site, the ones on it' phrasing is efficient but slightly clipped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description still flags status and DNS records as payload. For a three-param, no-required-param read tool this is nearly sufficient; only the tlds interaction and multi-param combination behavior are left open.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description gives meaning to 'site' (which the schema leaves undocumented) and to 'query'. However it never mentions 'tlds', the third parameter, so the agent must infer from the schema that it only applies alongside 'query' and what happens if both 'site' and 'query' are supplied. With 67% schema coverage this is roughly baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists custom domains') and immediately splits the tool into its two distinct modes, tied to the 'site' and 'query' parameters. An agent can tell this apart from the mutation siblings add_domain/remove_domain 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: pass 'site' to inspect domains already on a site, pass 'query' to discover names available to buy. The parenthetical '(Page Lemon sells none)' heads off a wrong assumption about purchasing. It does not name the mutation siblings it should be paired with when the intent is to add or remove.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_free_slotsFind free booking timesARead-onlyIdempotentInspect
Finds the free booking times for a service on a date (default: the first with any), as customers see them.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD | |
| site | Yes | ||
| party | No | ||
| service | Yes | Id or name | |
| resource | No | Staff or room | |
| plugin_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description still adds real behavioral value beyond them: 'as customers see them' signals that returned slots respect customer-facing booking rules rather than an admin view, and the default-date behavior is not encoded anywhere in the schema. Remaining gaps (timezone, whether slots are live, result granularity) are partly mitigated by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and scope first and the default behavior parenthetically appended. No filler, nothing redundant with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and annotations remove the burden of describing return values and safety, and the core query is explained. But for a six-parameter tool, the required 'site' parameter is never mentioned and the party/resource filters — which materially alter availability — are left completely unexplained, leaving the agent to infer their effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: site, party, resource and plugin_id carry no descriptions. The description only speaks to service and date, and never explains that party size or resource (staff/room) meaningfully change which slots are returned — the most important semantic for an availability query. It does not compensate for the gaps the schema leaves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Finds the free booking times') scoped to a service and a date, which is far more precise than the title alone. It implicitly distinguishes itself from the mutation siblings (add_booking, edit_booking, cancel_booking) by being the read-side availability lookup, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(default: the first with any)' explains what happens when date is omitted, which is useful usage guidance. However, there is no statement of when to prefer this tool over a direct booking attempt, no prerequisite context (e.g. check availability before calling add_booking), and no guidance on when to pass party or resource filters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listsRead listsBRead-onlyIdempotentInspect
Reads Lists: a site's lists (menu, team; shown on its pages) and its form replies and bookings (private). No site: counts for every site. With list: its items, filtered. Marks nothing read.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Text anywhere | |
| to | No | ||
| sum | No | Numbers: {op, field, by} | |
| from | No | ||
| list | No | Its items | |
| site | No | ||
| view | No | Saved filter | |
| limit | No | ||
| scope | No | No site: all, personal, workspace:<id> | |
| since | No | ||
| state | No | Bookings: upcoming|…|all | |
| where | No | {column: value} | |
| cursor | No | ||
| expand | No | Linked items' fields | |
| export | No | A download link | |
| status | No | Form replies: new|read|spam|archived|binned|all | |
| service | No | ||
| resource | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| next_cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive), so the bar is lower, and the description still adds two real behavioral traits: entity visibility ('shown on its pages' vs 'private') and 'Marks nothing read', which tells the agent this read has no side effects on form-reply status, distinguishing it from mark_form_replies. Pagination and filtering behavior are still undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loads the resource, but the sentence-fragment style ('No site: counts for every site.', 'Marks nothing read.') sacrifices parseability for brevity. For an 18-parameter polymorphic tool it is under-specified rather than efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape needn't be explained, but the tool has 18 optional parameters and multiple modes, and the description omits pagination, filtering (where/view/q), export formats, and how mode interacts with scope. An agent could not reliably compose a valid call from this text alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 56%, so the schema documents roughly half the parameters and the description must carry more weight. It adds meaning for site, list, and scope ('No site: all, personal, workspace:<id>' pattern) and ties status/state to form replies and bookings, but says nothing about q, where, sum, expand, export, limit/cursor, or service/resource, leaving roughly a dozen parameters semantically thin.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description does state the resource (lists, form replies, bookings) and encodes three distinct modes: no site -> per-site counts, site -> that site's lists, list -> its items. However, the telegraphic phrasing ('Reads Lists: a site's lists (menu, team; shown on its pages)') forces the agent to decode intent, and no sibling is named or excluded (e.g. get_site, export_app_data, save_list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides mode-selection conditions ('No site: counts for every site', 'With list: its items, filtered'), which is genuine routing guidance for a polymorphic tool. But it never states when to prefer this over overlapping siblings, and prerequisites or required parameter combinations per mode are left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_siteRead siteARead-onlyIdempotentInspect
Reads a site: status and files (200 at a time); path: one file, paths: several; as_of or version: older copies; with site_token, whether it was claimed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | One file (live unless as_of or version) | |
| site | Yes | ||
| as_of | No | With path(s): as live at this ISO date-time | |
| paths | No | Up to 20 files, 512 KB in all | |
| cursor | No | ||
| prefix | No | ||
| staging | No | ||
| version | No | With path(s): from this version number | |
| download | No | true: 1-hour zip links (one per GB) | |
| site_token | No | From an anonymous deploy (secret) |
Output Schema
| Name | Required | Description |
|---|---|---|
| files | No | |
| content | No | |
| live_revision | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, non-destructive operation. The description adds useful context such as files being returned 200 at a time and older copies being available via as_of/version, but it does not explain pagination via cursor or other operational behavior beyond what the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with front-loaded purpose and semicolon-separated clauses for the main modes. There is essentially no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover safety. Still, for a 10-parameter read tool with only 60% schema description coverage, the description leaves important operational concepts such as cursor-based pagination, prefix, and staging unclear, so it is only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, and the description adds some meaning for path, paths, as_of, version, and site_token. However, several parameters, notably cursor, prefix, staging, and the required site parameter, receive no useful semantic explanation in either the description or schema, leaving notable gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: it “reads a site” and enumerates status, files, single-file mode, multi-file mode, older copies, and claim status. This is clear enough for an agent to know what the tool does, though it does not explicitly distinguish itself from nearby siblings such as check_site or list_versions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains mode selection within the tool — path for one file, paths for several, as_of/version for older copies, site_token for claimed status. However, it gives no guidance on when to use this tool instead of alternatives like check_site or list_versions, and includes no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_list_itemsImport list itemsADestructiveInspect
Imports CSV or rows into a list: the first call previews; with confirm_token it saves as one change.
| Name | Required | Description | Default |
|---|---|---|---|
| csv | No | With a header row | |
| list | Yes | ||
| rows | No | Or {field: value} each (id: change it) | |
| site | Yes | ||
| confirm_token | No | ||
| create_missing | No | Link fields: add unknown names |
Output Schema
| Name | Required | Description |
|---|---|---|
| add | No | |
| added | No | |
| preview | No | |
| change_id | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true, openWorld=true, and non-idempotency. The description adds important behavioral context beyond annotations: the first call is a preview, and confirm_token commits the import as one change, which partially mitigates the destructive profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It conveys purpose and the most important two-phase behavior immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and annotations carry return values and safety signals, and the description covers the essential preview/confirm flow. Still, for a destructive six-parameter import tool, key parameters such as site, list, and create_missing remain unexplained, leaving meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 50% schema description coverage, the description clarifies that csv and rows are alternative input formats and that confirm_token switches from preview to save. It does not explain site, list, or create_missing, so it only partially compensates for the schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Imports CSV or rows into a list.' This clearly distinguishes bulk import from sibling tools like add_list_items or update_list_items, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the two-step preview/confirm workflow, which is useful invocation guidance. However, it does not say when to use this tool instead of add_list_items, update_list_items, or save_list, so usage is implied rather than fully framed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invite_usersInvite app usersBDestructiveInspect
Invites people to a site's app (up to 50 a call); each gets an invitation email. Naming someone who asked to join approves them (two steps). Returns invited, already and refused.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | No | A plan id the invite is for | |
| site | Yes | ||
| emails | Yes | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| requests | No | |
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive=true, non-idempotent, open-world. The description adds real behavioral context beyond them: a 50-recipient cap per call, that invitation emails are dispatched, that it can serve as approval for pending join requests, and the three result buckets returned. It does not mention permission/authorization requirements, which keeps it from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact clauses with the core action front-loaded and no filler; the 50-item cap and return buckets each earn their space. Slightly terse to the point of leaving key parameters unaddressed, but structurally sound.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is optional and the brief 'returns invited, already and refused' is a bonus. However, for a destructive, non-idempotent mutation with 4 params at 25% coverage, the missing explanation of site, emails, and especially confirm_token leaves an agent under-informed about correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%: site and emails are undocumented, and confirm_token — an unexplained, behaviorally significant parameter for a mutation — is never addressed in the description either. Only 'plan' is documented, and only in the schema. The description does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource (invite people to a site's app) and adds scope detail (up to 50 per call, invitation email sent). It does not differentiate itself from the close sibling add_people or email_users, which could plausibly overlap, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The one usage-like statement — naming someone who asked to join approves them in two steps — is genuinely useful context about an alternate effect. But there is no explicit guidance on when to prefer this over add_people or email_users, and no prerequisites or exclusions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leave_workspaceLeave a workspace planBDestructiveInspect
Prepares the end of a workspace plan: which sites move to the personal plan, who stays as Site Developer, bookings, before the workspace freezes (14 days after the plan ends). Without confirm: the questions. confirm: true returns approve_url.
| Name | Required | Description | Default |
|---|---|---|---|
| take | No | ||
| offer | No | ||
| confirm | No | ||
| bookings | No | ||
| workspace | Yes | ||
| keep_editors | No | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| sites | No | |
| questions | No | |
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true and readOnly=false, so the safety profile is covered. The description adds meaningful behavior beyond annotations: the workspace freezes 14 days after the plan ends, and confirm: true returns approve_url. It still omits auth requirements and does not explicitly discuss irreversibility, but it adds solid operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the purpose before the confirm behavior. The phrase 'Without confirm: the questions' is terse to the point of ambiguity, but overall there is little wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with 7 parameters and no schema descriptions, the definition leaves substantial gaps: it does not adequately explain the parameters or the distinction between take, offer, keep_editors, and confirm_token. The output schema reduces the need to explain return values, and the freeze/confirm notes help, but the parameter documentation is not complete enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with 7 parameters, so the description must carry the burden of explaining them. It gestures at concepts such as site migration, editor retention, bookings, and confirm, but does not map those concepts to the actual parameter names take, offer, keep_editors, confirm_token, or workspace clearly enough for reliable use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource and action: preparing to end a workspace plan, including site migration, editor retention, bookings, and the post-plan freeze. It does not explicitly differentiate this tool from siblings such as save_plan, move_sites, or transfer_site, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains a two-step confirm flow: call without confirm to get questions, then use confirm: true to receive approve_url. That is useful invocation guidance, but it does not state when to choose this tool over alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_peopleList peopleBRead-onlyIdempotentInspect
Lists who has access to a site: people with roles (owner, Site Developers, Site Viewers), pending invites, users, a pending transfer and protection.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| people | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds value by naming what the listing surfaces (roles, pending invites, pending transfer, protection), but says nothing about access requirements for the call or how large result sets are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, with the enumeration of contents following. Slightly list-heavy but no wasted clauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape needn't be described, and the tool is low complexity with one parameter. The remaining gap is the site identifier format and any prerequisite access level, which the description leaves unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain what form the 'site' value takes (ID vs. domain vs. workspace-qualified name), which is the one thing an agent could get wrong here. With a single undocumented required parameter, the description had the burden and did not carry it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lists) and resource (who has access to a site) and enumerates the contents: roles, pending invites, users, pending transfer, protection. That distinguishes it from sibling mutations like add_people, remove_people, and invite_users, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives such as get_site, invite_users, or remove_people. An agent must infer from the verb 'lists' that this is the read path and the others are the write paths.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pluginsList pluginsARead-onlyIdempotentInspect
Lists a site's plugins and what can be added (settings_help per kind); without site, those on each site; with plugin_id, that plugin in full (settings, snippet_html, test_steps, recipients, payouts, checkout_fee).
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | The page's <html lang>, e.g. de (one snippet per language) | |
| site | No | ||
| plugin_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| plugins | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds mode-dependent behavior and enumerates return contents for the plugin_id case, but does not discuss pagination, limits, or permissions; with an output schema present, the return-field list adds less unique value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that conveys several modes efficiently. The semicolon-separated clauses are dense but each carries meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given annotations covering safety and an existing output schema, the description supplies the main missing context: the three query modes and the richer return shape when plugin_id is supplied. Minor gaps around pagination or auth are acceptable here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, with site and plugin_id undocumented in the schema. The description compensates well for those two parameters by explaining what omitting site does and what plugin_id retrieves; lang is left to the schema, which does document it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (lists plugins) and distinguishes modes by site/plugin_id. It does not explicitly contrast with siblings like add_plugin or update_plugin, but the purpose is clear from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the parameter-driven modes (no site = per-site listing, plugin_id = full detail) which implies when each form is useful. It does not say when to use this versus alternatives such as update_plugin or remove_plugin, so guidance remains implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_versionsList versionsARead-onlyIdempotentInspect
Lists a site's versions, newest first, 200 at a time: number, time, who published and which files changed.
| Name | Required | Description | Default |
|---|---|---|---|
| by | No | By this person (part of name or email) | |
| site | Yes | ||
| since | No | After this ISO date-time | |
| before | No | Older than this version number | |
| since_days | No | ||
| site_token | No | From an anonymous deploy (secret) |
Output Schema
| Name | Required | Description |
|---|---|---|
| versions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety traits: readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description adds useful behavioral context beyond annotations: newest-first ordering, a page size of 200, and which fields are returned. It stops short of explaining authentication or pagination continuation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It puts the core action first, then adds ordering, pagination, and return-field detail efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only listing tool with rich annotations and an output schema, so the description does not need to explain return values in depth. It is nearly complete, though it omits how the optional filters and pagination are meant to be used.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, so the schema carries most parameter meaning for 'by', 'since', 'before', and 'site_token'. The description adds no filter semantics beyond the implicit site scope, and 'since_days' plus the required 'site' parameter remain undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Lists a site's versions,' and adds scope, ordering, and returned fields. It is clear what the tool does, but it does not explicitly distinguish itself from the related sibling rollback tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool returns but gives no explicit guidance on when to use it versus alternatives such as rollback. There are no stated exclusions, prerequisites, or workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_form_repliesMark inbox itemsBDestructiveIdempotentInspect
Marks form replies or bookings (mark; bin: deleted after 30 days). With mark read, also account notice ids (nt_…), or all: every notice, or every new form reply, booking or order (optionally one site); only when the user asks.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | With mark read: every notice (yours) or every new item of that kind | |
| mark | Yes | ||
| site | No | Not needed for notice ids or all | |
| item_ids | No | From get_lists, or notice ids (nt_…) from get_account | |
| plugin_id | No | Found from item_ids |
Output Schema
| Name | Required | Description |
|---|---|---|
| updated | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is known. The description adds the critical detail that 'bin' means deletion after 30 days, which annotations do not convey, giving an agent real consequence information before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, but it is a dense semicolon chain that is hard to parse. The first sentence is front-loaded with the core action, but the second sentence crams several conditional behaviors into one run-on clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema and annotations cover return values and safety, and the description supplies the 30-day deletion note. It still leaves ambiguity about parameter combinations, such as whether item_ids are required for all mark values and how plugin_id relates, so an agent may hesitate on edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the schema already documents most parameters. The description adds combinational semantics such as 'with mark read, also account notice ids' and 'all: every notice, or every new form reply', but these are terse and partially redundant with the enum descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first clause states a specific verb and resource ('Marks form replies or bookings'), but the scope quickly expands to notices, orders, and account notice ids, making the actual domain muddled. An agent can infer it is a bulk-marking tool, but the jargon ('mark', 'bin', 'nt_…') obscures the precise purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'only when the user asks' gives one explicit guardrail, and the description implies use with specific mark values. However, it names no alternatives and does not state when not to use this versus other mutation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_sitesMove sites to a workspaceBDestructiveInspect
Moves the person's personal sites and their Site Developers into a paid workspace. Without confirm: the questions, a recommendation and move_url (the plan is set up in the Dashboard). Then confirm: true (approve_url). Site Developers not invited lose access at once.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| plan | No | ||
| sites | No | ||
| people | No | Site Developer emails to invite | |
| confirm | No | ||
| workspace | No | A paid workspace id; omit for a new one | |
| confirm_token | No | ||
| personal_plan | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| move_url | No | |
| questions | No | |
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as destructive, open-world, and non-idempotent, and the description adds important behavioral detail: the two-step confirmation flow and the immediate access loss for Site Developers who are not invited. It does not cover auth or rate-limit behavior, but it does disclose the key destructive consequence beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and front-loads the core action before explaining the confirmation flow and access-loss warning. The phrasing around 'Without confirm: the questions...' is somewhat compressed, but there is little wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 8-parameter destructive tool, it covers purpose, confirmation behavior, and the critical access-loss effect, and an output schema exists. Still, the low schema coverage and absence of alternative guidance or parameter explanations leave meaningful gaps for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 8 parameters and only 25% schema description coverage, the description must compensate but largely does not. It mentions confirm: true and implies people/sites handling, but leaves mode, plan, personal_plan, confirm_token, workspace, and site-selection semantics unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it moves personal sites and their Site Developers into a paid workspace. The scope is clear enough to distinguish it from generic site operations, but it does not name related siblings like transfer_site or bring_back_sites.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives procedural guidance for the confirmation flow: without confirm it returns questions, a recommendation, and move_url, then confirm: true uses approve_url. However, it does not say when to choose this tool over alternatives such as transfer_site or bring_back_sites, nor does it state prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_as_userPreview as a userAInspect
Makes a one-hour test user (never counted; its rows and files are deleted after) and returns signin_url to see the app as a user.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | No | ||
| site | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation profile (readOnlyHint false, destructiveHint false), but the description adds meaningful behavior beyond them: the test user is one-hour, is never counted, and its rows and files are deleted afterward. It does not cover permissions or rate limits, but the ephemeral lifecycle and cleanup are well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficiently structured sentence that front-loads the action and uses a concise parenthetical for the important lifecycle caveats. No sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return value needn't be fully explained, but the description still helpfully names signin_url. However, for a two-parameter tool with 0% schema description coverage, the missing meaning of 'site' and 'plan' leaves a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are two parameters with 0% schema description coverage, so the description carries the full burden of explaining them. It does not define what 'site' identifies or what 'plan' controls; it only describes the tool's overall effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Makes a one-hour test user') plus the outcome ('returns signin_url to see the app as a user'). It is clearly distinct from read/list tools, but it does not explicitly name alternatives such as invite_users to rule them out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to see the app as a user' implies the use case, but there is no explicit when-to-use guidance, no exclusions, and no comparison against sibling tools like invite_users or email_users. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
protectProtect siteADestructiveInspect
Protects a site or one path (owner): passcode (protect_url, where the user sets it, never in chat) or members ("/": invite-only, users via add_people; a path: the emails who may see it). list_people shows it.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Required unless confirm_token | |
| path | No | "/" (default, whole site) or a part such as /students | |
| site | Yes | ||
| emails | No | members on a path: everyone who may see it (omit: the site's list) | |
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| protected | No | |
| approve_url | No | |
| members_only | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is known. The description adds important operational context: passcodes are set via protect_url and never in chat, and member lists are managed through add_people. It does not explain the 'internal' mode, but overall adds value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with nested parentheses and semicolons; it is front-loaded and contains no filler, but the structure is cramped and harder to parse than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a destructive mutation with annotations covering safety and an output schema, the description covers the main modes and security-sensitive passcode handling. However, the unexplained 'internal' mode and confirm_token leave the agent with gaps for a 5-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60% and the description clarifies the mode choices (passcode vs members) and the meaning of path ('/' whole site or a part) and emails. It omits the 'internal' mode and the confirm_token parameter, leaving gaps that the schema also does not fully cover.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Protects') and resource ('site or one path'), and distinguishes the passcode and members modes with concrete constraints. It does not explicitly contrast with the sibling 'unprotect', but the purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains when to choose passcode (set via protect_url, never in chat) vs members (invite-only via add_people on '/', or emails on a path), and points to list_people for verification. Lacks explicit when-not guidance, but mode selection is well covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refund_orderRefund an orderBDestructiveInspect
Refunds an order, in full or amount, once the owner approves the money on approve_url; confirm_token then gives its status.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| amount | No | Smallest unit (default all) | |
| item_id | Yes | ||
| message | No | A note for the customer | |
| restock | No | Put stock back (default true) | |
| plugin_id | Yes | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds real value by disclosing the asynchronous owner-approval step and status token, but omits practical behavior such as what happens if approval is never granted or whether an approval expires.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with the operation stated first and the workflow caveat second; no filler. It is dense but not padded, though 'in full or amount' reads slightly awkwardly and references approve_url, which is not a parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the approval flow is surfaced. Still, for a destructive money-moving tool the description leaves the required identifiers and the approval lifecycle vague, which is the main remaining hole.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, and the description compensates for just two fields: amount (full vs. partial) and confirm_token (status lookup). The three required identifiers site, plugin_id and item_id are explained nowhere, which is a material gap for an agent constructing a call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Refunds an order') plus the scope nuance of full vs. partial amount. It does not distinguish itself from the closely related siblings fulfil_order and refuse_order, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete precondition — the refund only resolves once the owner approves the money on approve_url — and explains what confirm_token is for. It says nothing about when to prefer this over refuse_order or fulfil_order, so no explicit alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refuse_orderRefuse an orderADestructiveInspect
Refuses an order and refunds it in full once the owner approves the money on approve_url; confirm_token then gives its status.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| item_id | Yes | ||
| message | No | A note for the customer | |
| restock | No | Put stock back (default true) | |
| plugin_id | Yes | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive=true, idempotent=false and openWorld=true; the description adds genuinely new behavioral context: the refund is full, it is gated on owner approval at approve_url, and status is later checked via confirm_token. It stops short of saying what happens if approval never arrives or whether the order becomes unrecoverable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the action, then the approval gate, then the status check. No filler and nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the approval flow is covered. Still, for a destructive multi-site mutation with three required but undocumented identifiers, the description leaves the agent guessing how to supply site/plugin_id/item_id and what state the order ends in.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 33%, with message and restock self-documented, and the description clarifies the role of confirm_token (status check). But site, plugin_id and item_id are unexplained, and approve_url is referenced as if it were a parameter although it is absent from the schema, which can confuse the caller.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb and resource ('Refuses an order') and adds the refund consequence, so the effect is unambiguous. It does not explicitly contrast with the sibling refund_order or cancel_transfer, so differentiation is partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The workflow is implied ('once the owner approves the money on approve_url'), which tells the agent this is a multi-step, non-immediate action. However, it never states when to pick this over refund_order or how to handle an unapproved order, leaving exclusions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_app_webhookRemove an app webhookBDestructiveIdempotentInspect
Removes an app-event webhook at once; its pending deliveries are dropped.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | mwh_ id | |
| site | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds genuinely new behavioral context — that removal is immediate and that pending deliveries are discarded — which an agent cannot derive from annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact clause with no filler; the destructive consequence is placed directly after the action so it is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations carry the safety profile, so return values and reversibility need not be spelled out. However, the undocumented 'site' parameter leaves a real gap that the description does not close.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: 'id' is documented as an 'mwh_ id' but 'site' has no description anywhere. The description adds nothing about either parameter, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Removes an app-event webhook'), which cleanly separates it from the sibling add_app_webhook. It does not explicitly name the counterpart, but the add/remove pairing makes intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives, no prerequisites or permission requirements, and no mention of what to do instead if the webhook should merely be disabled. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_domainDisconnect a domainBDestructiveInspect
Disconnects a custom domain from a site (two steps). The domain stays with its registrar.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| hostname | Yes | e.g. www.example.com | |
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is known. The description adds useful context that the domain remains with its registrar and that the operation takes two steps, but it does not explain what those two steps are, whether site downtime occurs, or what confirmation is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no wasted wording. The core action is front-loaded, followed by the key caveat that the domain stays with its registrar.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. For a destructive three-parameter mutation, the description gives the high-level effect and one important caveat, but it omits the two-step confirmation process and confirm_token semantics, leaving key operational details to be inferred.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, with only hostname having a description. The description adds no meaning for site or confirm_token, and does not explain how confirm_token relates to the 'two steps' despite that being the most important parameter for a destructive operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: disconnecting a custom domain from a site. It is clearly distinct from add_domain and get_domains, though it does not explicitly contrast with transfer_site or other domain-related siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'disconnects a custom domain from a site' and the note that the domain stays with its registrar, which suggests retaining ownership while detaching from the site. However, it does not explicitly say when to use this versus transfer_site or other alternatives, nor does it state prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_list_itemsRemove list itemsADestructiveInspect
Removes items from a list by id; the site shows it within seconds (undo_list_change takes it back).
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| list | Yes | ||
| site | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| change_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description adds genuinely new behavior: the change surfaces on the site within seconds (propagation delay) and is reversible via undo_list_change. Permissions and partial-failure behavior remain undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the action front-loaded and the two most decision-relevant facts (latency, undo path) appended. No filler, nothing repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (3 required scalars), an output schema exists so return values need no prose, and annotations cover the destructive/idempotent profile. The remaining gap is failure semantics — what happens when an id does not exist — which is minor for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for three required parameters. It implies that `ids` are list-item identifiers and that `list` scopes them, but the `site` parameter is never mentioned and it never says multiple ids can be passed in one call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Removes items from a list") plus the lookup key ("by id"), which cleanly separates it from add_list_items, update_list_items and delete_list. It does not name those siblings explicitly, but the remove-vs-add/update distinction is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical points to undo_list_change as the recovery path, which is a genuine usage signal, but there is no statement of when to prefer this over update_list_items or delete_list, and no prerequisites. Usage is implied by the verb rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_peopleRemove peopleADestructiveInspect
Removes people from a site (owner; two steps): Site Developers and Viewers lose access (a workspace Viewer: every workspace site), users are signed out. Others may remove only themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| entries | Yes | Emails or company domains | |
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructive annotation, the description discloses concrete effects: Site Developers and Viewers lose access, workspace Viewers lose access to every workspace site, and users are signed out. It also clarifies the permission boundary that non-owners can only remove themselves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted framing. It is slightly dense due to nested parentheses and the compressed '(owner; two steps)' phrase, which could be easier to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the destructive consequences and permission model well, and output-schema richness means return values need not be explained. But for a destructive two-step operation, it leaves confirm_token and the confirmation workflow unexplained, which is a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%. The description implies the site target but does not explain entries or confirm_token, and 'two steps' does not clarify how confirm_token is used. Most parameter meaning must be inferred from the schema, which itself documents only entries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Removes people from a site.' The site scope and role effects distinguish it from siblings such as remove_user, leave_workspace, and add_people without needing to name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear permission context: owners can remove people, while others may remove only themselves. However, it does not explicitly name alternative tools or state when not to use this versus remove_user or leave_workspace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_pluginRemove a pluginBDestructiveInspect
Removes a plugin from a site (two steps). Its data stays exportable in the app for 30 days.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| plugin_id | Yes | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| agent_message | No | |
| confirm_token | No | |
| upcoming_bookings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and non-idempotent behavior, so the description adds valuable context: the two-step nature of the operation and the 30-day exportable data retention. It does not cover permissions or error behavior, but the added details are meaningful beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-load the action and then add a key behavioral note. Every sentence earns its place with no unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core action, the two-step process, and data retention, which are important for a destructive tool. However, with no parameter descriptions and no explanation of how the confirm_token fits into the two steps, an agent lacks enough information to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the three parameters. It mentions 'two steps' but never clarifies the roles of 'site', 'plugin_id', or 'confirm_token', leaving the agent without any semantic guidance for constructing the call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Removes a plugin from a site.' This clearly distinguishes it from add_plugin, update_plugin, and list_plugins, though it does not explicitly name alternatives or scope constraints for the site.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies a two-step removal process and notes that data remains exportable for 30 days, giving some context for when and how to use it. However, it provides no explicit guidance on when to use this tool versus update_plugin or other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_userRemove an app userBDestructiveInspect
Removes a user once the Site Owner confirms on approve_url; a paid membership ends with its period. A pending join request is declined instead (they are emailed; two steps).
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| Yes | |||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and non-idempotent behavior. The description adds meaningful context beyond annotations: removal requires Site Owner confirmation via approve_url, paid memberships end with their period, and pending join requests are declined instead with an email flow. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action. The second sentence packs useful behavioral details, though phrases like 'they are emailed; two steps' are slightly cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return values need not be described. However, the description leaves gaps in parameter semantics and does not clarify how this tool differs from remove_people. It is adequate for behavioral context but incomplete for a destructive tool with a confirmation token.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters. The description hints at a confirmation flow via 'approve_url,' but it does not explain what site, email, or confirm_token mean or how confirm_token is obtained. It does not compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Removes a user.' It is clear what the tool does, but it does not explicitly distinguish this from sibling tools like remove_people, leaving some ambiguity about which user-removal tool applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through conditions like 'once the Site Owner confirms on approve_url' and 'a pending join request is declined instead,' but it does not explicitly state when to use this tool versus remove_people or other alternatives. Usage guidance is present but indirect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollbackRestore a version or previewADestructiveInspect
Makes an earlier version or a preview live as a new version (versions are never deleted); a conflict if the site changed since base_revision. discard: true deletes a preview.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| discard | No | With a preview id: delete it | |
| revision | Yes | Revision id or version number (list_versions), or a preview id (get_site previews) | |
| site_token | No | From an anonymous deploy (secret) | |
| base_revision | Yes | The live revision id you last saw |
Output Schema
| Name | Required | Description |
|---|---|---|
| revision | No | |
| agent_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true. The description adds valuable non-obvious behavior: versions are never deleted, a conflict occurs if the site changed since base_revision, and discard=true deletes a preview. This is meaningful context beyond the annotations, though auth details for site_token are left to the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no wasted words. The core mutation and non-deletion guarantee are front-loaded, followed by the two operational caveats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent mutation with an output schema and annotations, the description supplies the key behavioral facts an agent needs: non-deletion, conflict semantics, and preview discard. It does not cover the site_token secret or return format, but the output schema and parameter schema reduce the need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 80%, so the baseline is 3. The description still adds consequence-level semantics for base_revision ('conflict if the site changed since base_revision') and for discard ('deletes a preview'), which goes beyond the schema's terse parameter notes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Makes ... live as a new version') and resource ('an earlier version or a preview'), clearly distinguishing rollback from list_versions or get_site. It does not explicitly name a sibling alternative, which keeps it just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage via the conflict condition ('a conflict if the site changed since base_revision') and the discard flag for previews. However, it does not state when to choose rollback versus deploy, preview_as_user, or list_versions, leaving alternatives unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_app_ai_promptSave an AI promptCDestructiveIdempotentInspect
Saves an AI block prompt (a block of that name changes at once); it runs on the owner's AI key (added in the Dashboard) or a small trial for the owner and test users. Returns markup.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| name | Yes | ||
| site | Yes | ||
| field | No | ||
| lists | No | ||
| scope | No | ||
| period | No | ||
| audience | No | ||
| template | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true and openWorld=true, and the description adds useful context: the block changes at once, execution uses the owner's AI key or a trial, and the result is markup. This complements the annotations without contradicting them. It stops short of richer details such as permissions or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loads the action, and adds behavioral context without wasted sentences. The phrasing 'a block of that name changes at once' is slightly awkward but still purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nine-parameter mutation tool, the definition leaves required fields like site, kind, and template unexplained and gives no semantics for optional parameters. The output schema and annotations reduce some burden, but the description does not fill the schema-description gap an agent needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across nine parameters, and the description does not explain site, name, kind, template, field, lists, scope, period, or audience. The phrase 'block of that name' weakly hints at the name parameter, but this is far from enough to compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: saves an AI block prompt. The parenthetical about the named block changing at once further clarifies the object. It does not explicitly distinguish itself from sibling save_* tools, but the AI-block wording is enough to identify the core operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It does not say when to use this tool instead of siblings such as save_app_list or save_list, nor does it state when not to use it. The AI-key/trial note is execution context, not routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_app_listCreate or change an app listBDestructiveInspect
Creates an app list or replaces its fields. Each user sees only their own rows, unless share: group (their group too; two steps). Returns the list and add-form markup.
| Name | Required | Description | Default |
|---|---|---|---|
| list | Yes | App list name, e.g. expenses | |
| scan | No | Scan actions: {label, values} adds a row; {label, redeem: n} uses n; form: a list | |
| site | Yes | ||
| label | No | ||
| reply | No | ||
| share | No | ||
| fields | Yes | 1-30 of {name, type, label, required, options}; types text, long_text, number, date, choice (options), photo | |
| comments | No | ||
| group_read | No | ||
| plan_rules | No | {add:[plan],fields:{f:[plan]},limit:{plan:n},per} | |
| group_write | No | ||
| lead_status | No | ||
| confirm_token | No | ||
| status_options | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | No | |
| people | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and non-idempotent. The description adds visibility semantics (own rows vs group) and notes it returns markup, which is useful context beyond the annotations. However it does not warn about what 'replaces its fields' destroys on an existing list, which is the critical destructive behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler, and the create/replace behavior is front-loaded. The parenthetical 'their group too; two steps' is dense but not wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter, destructive, non-idempotent mutation tool, the description leaves most parameters and their interactions unexplained. An output schema exists, so return-value explanation is not required, but the input side is significantly under-documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 29% of the 14 parameters have schema descriptions. The description covers only share partially and adds nothing about the many undocumented params: scan, plan_rules, group_read, group_write, lead_status, confirm_token, status_options, reply, comments, label. At this coverage level the description needed to compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Creates an app list or replaces its fields.' That distinguishes it from delete_list, get_lists, and add_app_row. It does not explicitly differentiate it from the sibling save_list, which is the closest overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives behavioral context about per-user rows and share: group, and mentions 'two steps' for group sharing, which implies sequencing. But it never says when to call this versus save_list or save_app_ai_prompt, and the 'two steps' hint is too vague to act on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_groupSave a workspace groupCDestructiveInspect
Saves a workspace group (group: change; delete: true). Owner or Admin. Returns approve_url.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| site | Yes | ||
| group | No | ||
| sites | No | ||
| delete | No | ||
| people | No | ||
| permissions | No | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is partly covered. The description adds real value by stating the Owner/Admin requirement and that an approve_url is returned, implying an approval flow, but it never explains what deletion actually destroys, whether confirm_token is required for it, or why the operation is non-idempotent. Consistent with annotations, no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and the purpose leads, which is good, but the parenthetical notation is compressed to the point of ambiguity and a sentence of real explanation is missing. Brevity here trades against usability rather than trimming waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not needed, but for a destructive, non-idempotent, 8-parameter write with zero schema coverage the description is far too thin. The approval/confirm_token mechanic and the effect of delete=true are the critical missing pieces.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 parameters, and the description only gestures at two of them (group, delete) in shorthand. name, site, sites, people, permissions, and especially confirm_token are entirely undocumented anywhere, leaving the agent to guess at required semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Saves a workspace group" gives a clear verb and resource, but the parenthetical "(group: change; delete: true)" is cryptic and the description never distinguishes this from the sibling save_user_group, which an agent will almost certainly confuse it with. An agent can guess the purpose but not the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Owner or Admin" is a useful precondition, but there is no guidance on when to use this instead of save_user_group, delete_site, or the various save_list/save_plan siblings. Nothing is said about when the delete flag should be set versus calling a dedicated delete tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_listCreate or change a listCDestructiveInspect
Creates a list or replaces its fields (pages show it with data-pl-list and data-pl-field). Form or bookings list: only the owner's own columns (notes, tags).
| Name | Required | Description | Default |
|---|---|---|---|
| list | Yes | ||
| site | Yes | ||
| forms | No | Form list: plugin ids filling it | |
| label | No | Name shown in the app | |
| fields | No | All fields in order (one left out loses its values): {name, type, label, options, list, from (old name)}; type text, long_text, number, price, date, image, link, yes_no, rich_text, reference(s), choice; internal also choices, email, phone, person, money, file; internal: rules | |
| internal | No | ||
| public_json | No | Public JSON feed {fields, where}; null: off |
Output Schema
| Name | Required | Description |
|---|---|---|
| fields | No | |
| agent_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true, openWorld=true, and idempotent=false, so the safety bar is lower. The description adds useful replacement semantics ('replaces its fields') and an owner-column constraint, but it does not explain what destruction means for existing values or list items beyond what the schema notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in two short sentences. However, 'pages show it with data-pl-list and data-pl-field' is implementation detail that does not help an agent invoke the tool, and the second sentence is terse to the point of ambiguity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex, destructive mutation tool with seven parameters, nested objects, and an output schema. The description omits create-vs-update behavior, the meaning of site/list/internal/public_json, and how list items are affected, leaving significant gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 57%, and the description does not clarify the required 'site' and 'list' parameters or the nested 'internal' object. The brief mention of owners' columns relates loosely to 'fields' but adds little executable meaning beyond the schema's own field documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Creates a list or replaces its fields.' It is clear what the tool does at a high level, but the resource 'list' is ambiguous in this API and there is no explicit differentiation from siblings such as save_app_list or get_lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Apart from a narrow scope restriction for form or bookings lists ('only the owner's own columns'), it offers no guidance on when to use this versus save_app_list, delete_list, or update_list_items. The agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_planCreate or change an app planADestructiveInspect
Creates or changes an app plan: free, or a monthly or yearly price (paid through the owner's own Stripe). archive retires it. Returns stripe: ready, needs_onboarding (onboarding_url) or coming_soon.
| Name | Required | Description | Default |
|---|---|---|---|
| free | No | ||
| name | No | As users see it | |
| plan | Yes | Plan id, e.g. monthly | |
| site | Yes | ||
| price | No | {amount (cents or pence), currency gbp|usd|eur, interval month|year} | |
| archive | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| plan | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond the annotations: payment is processed through the owner's own Stripe, archive permanently retires the plan (consistent with destructiveHint=true), and the call returns one of three stripe states including an onboarding_url. That last detail is useful routing information an agent could not infer from readOnlyHint=false / destructiveHint=true alone. It stops short of explaining what happens to existing subscribers when a price changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences that front-load the action and the modes, with zero filler. The telegraphic fragments ('archive retires it') trade a little readability for density, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so the brief return note is a bonus rather than a requirement, and the mutation semantics are signaled by annotations. Still, for a destructive, non-idempotent billing tool with a nested price object, the description omits the required site/plan inputs and any statement about the effect on already-subscribed users or how to proceed after needs_onboarding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, and the description does clarify the intent of three params: free (the free plan), price (paid via the owner's Stripe, monthly or yearly), and archive (retires the plan). But the required 'site' and 'plan' parameters and 'name' get no elaboration, and the cents-vs-pence currency unit hint lives only in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb pair ('creates or changes') plus a specific resource ('an app plan'), enumerating the three plan shapes (free, monthly/yearly price, archive). It is clearly distinct from near-name siblings like save_list, save_group, and save_app_list because the resource is named, though it never explicitly contrasts with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the enumerated modes (free plan, priced plan, archive to retire), which lets an agent infer roughly when to call it. There is no explicit when-to-use/when-not-to-use statement, no prerequisite or permission guidance, and no named alternative for related operations such as setup_app.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_user_groupSave a user groupCDestructiveInspect
Saves a user group: name, add, remove, leads (emails; leads is the whole list), or delete: true. Adding and deleting are two-step.
| Name | Required | Description | Default |
|---|---|---|---|
| add | No | ||
| name | No | ||
| site | Yes | ||
| group | Yes | e.g. north | |
| leads | No | ||
| delete | No | ||
| remove | No | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | No | |
| people | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the bar is lower. The description does add genuine context beyond that — 'leads is the whole list' warns of replacement semantics, and 'two-step' warns that add/delete are not single-call — but it never explains the confirm_token parameter that presumably carries the second step, leaving the destructive flow underspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and kept to a single sentence, so it is efficient. But the telegraphic field list ('name, add, remove, leads ..., or delete: true') reads as an unordered run-on and sacrifices clarity for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a destructive, non-idempotent, 8-parameter mutation with a confirmation handshake and a near-duplicate sibling, and the definition leaves the two-step mechanics, the required site argument, and the sibling choice all unaddressed. The output schema is present, so return values need not be covered, but the input-side gaps are substantial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 13%, so the description must carry the parameter burden. It clarifies leads and delete and lists add/remove/name, but omits the required 'site' parameter entirely, gives no format for 'group', never clarifies that add/remove take emails (only leads is annotated as 'emails'), and leaves the critical confirm_token completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Saves a user group') and enumerates the mutable fields, so an agent can tell it is a membership/group write operation. It never differentiates itself from the sibling tool 'save_group', leaving the agent to guess which of the two near-identically named tools to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus 'save_group', 'save_list', or 'remove_user', and no prerequisites or exclusions. The only guidance-like sentence ('Adding and deleting are two-step') hints at a workflow but does not say how to complete it or when to prefer add/remove over re-sending the whole group.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_booking_outcomeMark a booking done or missedADestructiveIdempotentInspect
Records how a booking that has started went: completed (done) or no_show. Emails nobody; it can be changed between the two.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| item_id | Yes | ||
| outcome | Yes | ||
| plugin_id | No | Default: booking page |
Output Schema
| Name | Required | Description |
|---|---|---|
| item_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=true, idempotent=true, closed-world, and the description adds genuinely new context: no notification emails are sent, and the value is switchable between the two states. That side-effect and reversibility disclosure is exactly what an agent needs before mutating a booking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with a colon-separated enumeration; the operation and its two outcomes are front-loaded and every clause carries information. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and annotations plus the 'emails nobody / changeable' note cover the safety profile. Still missing is any explanation of the required site/item_id identifiers and what precisely counts as 'started', which is where an agent is most likely to call this wrongly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only plugin_id is documented as defaulting to the booking page). The description explains the outcome enum semantics ('completed (done) or no_show'), but says nothing about what 'site' and 'item_id' identify or their accepted formats, leaving the two most important required parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Records how a booking ... went') plus the two allowed end states, so it is clearly distinct from approve_booking/cancel_booking/edit_booking in intent. It does not explicitly name those siblings, but the scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'a booking that has started' sets a usable precondition that implicitly excludes future/pending bookings. However, it never says what to use instead for pending bookings (approve_booking, edit_booking, cancel_booking) or what happens if the booking hasn't started yet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_appSet up an appADestructiveInspect
Sets up an app: user sign-in, private records under one path, lists from a template. Returns markup and approve_url (the Site Owner turns it on). retention (shorter erases), sign_out_all and ai_read (this AI reads entries) ask first. Owner only; Free plan: testing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | App pages path (default /app) | |
| site | Yes | ||
| signup | No | invite, open, or request (owner approves) | |
| ai_read | No | {lists: up to 10 names or "all", members}; answers approve_url | |
| template | No | Makes its app lists and plans | |
| retention | No | Kept after a user leaves: member (not), 1y, 2y, 5y; shorter erases | |
| plan_switch | No | Users switch plans | |
| request_note | No | ||
| sign_out_all | No | true: signs every user out | |
| confirm_token | No | ||
| display_field | No | Profile field shown to group peers | |
| notify_members | No | {status,reply,comments}: bool | |
| profile_fields | No | Sign-up fields {name, type, label, required, options}; types text, long_text, number, date, choice, phone, url |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive=true and openWorld=true, but the description adds genuinely non-obvious context: it returns markup plus an approve_url that a Site Owner must act on, and that retention shortening erases data and sign_out_all / ai_read require asking first. That approval-gated disclosure adds real value beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loaded: the core action comes first, then the return value, then the risky options, then constraints. The telegraphic phrasing ("retention (shorter erases)... ask first") is dense and slightly cryptic but consistently information-bearing with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter destructive mutation the description covers the return/approval flow well, and an output schema exists so return values needn't be explained. But the "ask first" confirmation mechanic is not tied to confirm_token, and several optional params are silent, leaving the agent to infer how to complete a call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 77%, so most params are already documented. The description reinforces the highest-risk ones (retention erasing data, sign_out_all, ai_read, template-driven lists) but adds little mechanics, and several params (confirm_token, request_note, notify_members) get no mention anywhere. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("Sets up an app") and enumerates the three things it provisions: user sign-in, private records under one path, and lists from a template. This clearly distinguishes it from data-manipulation siblings like add_app_row or save_app_list, though it does not name any sibling tool explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Owner only; Free plan: testing" gives audience and plan constraints, and it notes the Site Owner must turn it on via approve_url. However, there is no explicit guidance on when to choose this over alternatives (e.g., get_app, preview_as_user) or what prerequisites must exist first, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
site_settingsChange site settingsCDestructiveInspect
Changes a kept site: title; Site Owner: workspace, name, sender_name, ai_invites (approve_url), archived, notifications, analytics, search, time_zone, staging (promote: live)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New address; old one stops | |
| rows | No | ||
| site | Yes | ||
| title | No | App label (null: the page <title>) | |
| search | No | ai_training, ai_answers (allow|block), primary_domain, domain_redirect, review_url, steps | |
| instead | No | Site to freeze instead | |
| staging | No | ||
| archived | No | true: offline, two steps | |
| analytics | No | Click counting: clicks, kinds, labels, hidden | |
| time_zone | No | ||
| workspace | No | Move a private site in: workspace id, name or "new" | |
| ai_invites | No | ||
| sender_name | No | ||
| base_revision | No | promote: staging revision | |
| confirm_token | No | ||
| notifications | No | Own emails: forms, bookings, health (auto, daily, off, {email, in_app}); domain_live, domain_reminder, product_news; count_usage; scope site|all | |
| sender_address | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, and non-idempotent, so the safety bar is lower; the description adds little beyond that. Fragments like 'archived: true - offline, two steps' and 'New address; old one stops' hint at consequences but are terse schema echoes, and there is no mention of permissions, confirm_token being required for destructive changes, or irreversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but not concise in the useful sense: a single run-on fragment list with inconsistent semicolons and parentheses that obscures the one thing an agent needs first (what changes and what the risks are). The information is present but poorly structured and front-loaded with a confusing 'kept site' phrase.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter destructive mutation with nested objects and an open-world hint, the description says almost nothing about side effects, required permissions, or confirm_token/base_revision flow. An output schema exists so return values need not be explained, but the mutation's behavior is significantly under-described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 53% with 17 parameters, so some compensation is needed, and the description does enumerate most parameter names plus small clues like '(approve_url)' and 'promote: staging revision'. However, it largely restates parameter names without explaining the nested objects (search, notifications, analytics) or undocumented fields like rows, instead, sender_address, or confirm_token.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Changes a kept site" gives a verb and resource, and the following list signals the mutable settings, but the phrase "kept site" is unexplained jargon and the mangled punctuation makes it hard to read as a purpose statement. It does not explicitly distinguish itself from siblings like get_site, move_sites, or transfer_site, even though workspace moving overlaps with move_sites.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (permissions, ownership), and no mention of alternatives. The parenthetical hints like 'staging (promote: live)' hint at a workflow but do not say when an agent should pick this tool over move_sites, transfer_site, or delete_site.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sort_list_itemsSort list itemsBDestructiveInspect
Sorts a list's items by a field or in the order of the given ids; the site shows it within seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Or item ids, first to last (the rest follow) | |
| list | Yes | ||
| site | Yes | ||
| sort_by | No | ||
| descending | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| change_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety bar is lower. The description adds a genuinely useful behavioral detail — the change is visible on the site within seconds — but never warns that existing ordering is overwritten or clarifies what happens when both sort_by and ids are supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the 'site shows it within seconds' clause earns its place as timing context. Minor ambiguity in 'the site' keeps it short of perfect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values need no explanation. But with 5 parameters at 20% schema coverage, a destructive, non-idempotent tool should do more: descending direction and sort_by value domain are unaddressed, and the overwrite of prior ordering isn't stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20%, so the description does real work by explaining the key mutual-exclusion semantics (sort items by a field versus by given ids) and by noting the 'rest follow' behavior. However, it says nothing about 'descending', how 'sort_by' values are named, or what site/list expect, leaving several parameters undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Sorts a list's items') and explains the two ordering modes: by a field or by explicit ids. That distinguishes it reasonably from update_list_items and add_list_items, though it never names those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: you infer you'd use it when you want a custom or field-based order. There is no explicit when-to-use versus update_list_items, no statement about what happens if ids don't cover all items (beyond 'the rest follow'), and no preconditions such as needing existing list permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_pluginTest a pluginAInspect
Sends one test submission to a form or booking page (not payments; never counted or emailed; kept as a test item) and says whether it worked and which published pages carry it.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| plugin_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| plugin_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this as non-read-only, non-idempotent and non-destructive, and the description adds substance to that: the call creates one persisted test item, is excluded from counts and emails, and returns a pass indication plus affected pages. What it does not say is whether test items accumulate or how to clean them up after repeated calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the action front-loaded and qualifications trailing. It is slightly run-on but every clause (scope, side effects, return signal) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The write-side effects and the shape of the result are conveyed, and an output schema exists to cover return details. However, for a mutation tool whose two required identifiers are completely undocumented, the description leaves a real gap an agent cannot fill from structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both required parameters, so the description must carry the burden — but it never mentions 'site' or 'plugin_id' or their expected format (site name vs. domain, plugin slug vs. numeric id). An agent must guess parameter values from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (sends one test submission to a form or booking page) plus the outcome (reports success and which published pages carry it). The parenthetical 'not payments; never counted or emailed; kept as a test item' separates it from real-submission siblings like add_booking and add_people.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear context for use — verify a plugin works and see where it is live — and explicitly excludes payment plugins from scope. It stops short of naming a sibling to use instead (e.g., add_booking for a real submission, update_plugin for configuration), so the alternative path is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_siteTransfer siteADestructiveInspect
Offers a site to a new Site Owner by email, who accepts and picks where it lives. Returns approve_url and recipient (what the site needs beyond Free, the same for any address); the sender's bill doesn't change. keep_editor (default true): the sender stays Site Developer. A workspace site goes to its Site Owner or someone in it.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| No | The new Site Owner's email (required unless confirm_token) | ||
| keep_editor | No | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| recipient | No | |
| approve_url | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations that already flag destruction, open-world behavior, and non-idempotency, the description discloses the invitation/acceptance workflow, return fields, unchanged billing for the sender, the keep_editor default, and workspace eligibility constraints. These are meaningful behavioral details an agent would not get from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core action and workflow before details. The parenthetical about what the site needs beyond Free is slightly dense, but every sentence contributes relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and annotations covering safety and return behavior, the description supplies the operational context an agent needs for the main flow. The remaining gap is confirm_token's conditional purpose, which is not explained even though the schema makes it relevant when email is omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description must compensate. It usefully explains keep_editor's default and effect, and implies email's role, but it leaves the site parameter and especially confirm_token unexplained, so the coverage gap is only partly filled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — offering a site to a new Site Owner by email — plus the acceptance flow where the recipient chooses where the site lives. This clearly separates it from immediate operations like move_sites and is understandable 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: the site is offered to a new owner who must accept, and workspace sites can only go to the Site Owner or someone in the workspace. It does not explicitly name alternatives such as move_sites or cancel_transfer, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undo_list_changeUndo a list changeCDestructiveInspect
Takes back one list change (change_id from its reply).
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| change_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| change_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds one genuinely useful behavioral detail beyond that — that change_id must be taken from the original change's reply — but it does not warn that the undo itself is non-idempotent, irreversible, or what happens if the change is stale.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the action. It is efficient, though the brevity borders on under-specification for a destructive two-parameter tool rather than being genuinely tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, but for a destructive, non-idempotent operation the description should at minimum explain 'site' and state the reversal preconditions. As written, an agent knows only the vague action and one parameter's provenance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load. It clarifies where change_id comes from ('from its reply'), which is real added meaning, but the required 'site' parameter is completely unexplained in both schema and description, leaving half the parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb phrase "takes back one list change" conveys an undo of a single list mutation, which is more specific than the title alone and implies a scoped, single-item reversal. However, 'takes back' is loose wording, and the description does not distinguish this from the sibling tool 'rollback' or from 'update_list_items' / 'remove_list_items'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus the 'rollback' sibling, no prerequisites, and no note that only the most recent (or a specific) change can be reverted. The only hint is that change_id comes from a prior reply, which is about provenance rather than usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unprotectRemove protectionADestructiveInspect
Removes the passcode or invite-only setting from a whole site or the protection from one path (owner; returns approve_url). Each protected path opens on its own.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | "/" (default, whole site) or a protected part such as /students | |
| site | Yes | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| protected | No | |
| approve_url | No | |
| members_only | No | |
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the description only needs to add context — it does: owner-level auth is required and an approve_url is returned, implying the removal may go through an approval flow rather than applying instantly. It stops short of stating whether the removed passcode is recoverable or what happens to already-authenticated visitors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the action front-loaded and the scope/auth/return facts packed in. 'Each protected path opens on its own' is slightly telegraphic and could be phrased more plainly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, open-world mutation with only 33% schema coverage, key operational facts are absent: the origin of confirm_token, whether the returned approve_url must be visited to complete the change, and whether the operation is reversible. The output schema exists, so return-value detail is not required here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description must compensate. It does explain the path/site dichotomy (whole site vs. one protected part, matching the '/'-default in the schema), but confirm_token — arguably the most opaque parameter — is never mentioned, leaving the agent to guess how it is obtained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('removes') and object ('passcode or invite-only setting' / 'protection from one path'), and clarifies two scopes: whole site vs. a single path. It does not explicitly reference the inverse sibling 'protect' or 'site_settings', which would have made the differentiation airtight.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'(owner; ...)' states the permission prerequisite, and 'Each protected path opens on its own' warns the agent that unprotecting the site will not clear per-path protection, so repeated per-path calls may be required. No explicit when-not or named alternative is given, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_app_rowsUpdate app entriesBDestructiveInspect
Sets status, reply, note, group, assign ("" clears) or comments; never users' values. Two-step if it emails or widens.
| Name | Required | Description | Default |
|---|---|---|---|
| list | Yes | ||
| note | No | ||
| site | Yes | ||
| group | No | ||
| reply | No | Emailed to the user | |
| assign | No | ||
| status | No | ||
| comment | No | ||
| item_ids | Yes | ||
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| agent_message | No | |
| confirm_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as destructive, open-world, and non-idempotent, so the safety profile is covered. The description adds meaningful context beyond annotations: it says users' values are never changed, describes the two-step trigger for emailing or widening, and notes that an empty assign clears the field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the field-setting behavior before the two-step constraint. It is somewhat telegraphic, but every clause carries useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a 10-parameter destructive mutation with email side effects and a confirm_token parameter, but the description does not explain how the two-step flow works or what confirm_token is for. The output schema covers return values, but the invocation-critical context is still incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 10%, so the description needs to carry most parameter meaning. It names several optional fields and explains that assign with an empty string clears the field, but it omits the semantics of required site, list, and item_ids, and does not explain confirm_token or the two-step flow concretely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and enumerates the row fields it sets (status, reply, note, group, assign, comment), so the purpose is clear. It does not explicitly distinguish this from sibling tools such as update_list_items, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Two-step if it emails or widens' gives a conditional usage rule, which is useful, but there is no explicit guidance on when to use this tool versus update_list_items or other update/add siblings. Usage is implied rather than fully routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_list_itemsChange list itemsADestructiveInspect
Changes list items by id; the site shows it within seconds. On form replies and bookings: only the owner's own columns (not undoable).
| Name | Required | Description | Default |
|---|---|---|---|
| list | Yes | ||
| site | Yes | ||
| items | Yes | Given fields change; null clears. {id, values, if_updated_at; internal: was} |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| change_id | No | |
| agent_message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotency=false, but the description adds useful context: changes propagate in seconds and form-reply/booking updates are limited to owner columns and are not undoable. It does not fully explain broader destructive behavior or permissions, but it meaningfully supplements the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, moving from core behavior to propagation and restrictions without filler. Every clause adds information relevant to invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema available and annotations covering safety, the description supplies the key behavioral notes: propagation timing and restrictions for form replies/bookings. It could say more about site/list parameters or general undo behavior, but it is mostly complete for this mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, and the description adds little parameter detail beyond 'by id'. It does not explain the 'site' or 'list' parameters and only partially clarifies the items payload, leaving the low schema coverage uncompensated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Changes list items by id'. It is clearly distinct from siblings like add_list_items, remove_list_items, and sort_list_items, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Changes list items by id' and the note about form replies and bookings. However, it gives no explicit when-to-use guidance versus siblings such as update_app_rows or undo_list_change.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_pluginChange a pluginADestructiveInspect
Changes a plugin: name, settings (whole), patch (merged), form_html, status active or paused, or recipients {add: email} (an extra inbox for every site on the plan). A changed form or booking setup returns setup_summary first; a new inbox or AI-set reply_to_email, approve_url.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | The page's <html lang>, e.g. de (one snippet per language) | |
| name | No | ||
| site | Yes | ||
| forms | No | Forms: as settings | |
| patch | No | Merged onto the settings, e.g. {"approval":"always"}; null removes a key, arrays are replaced | |
| status | No | ||
| settings | No | The whole object, as list_plugins settings_help (forms too) | |
| form_html | No | ||
| plugin_id | Yes | ||
| recipients | No | {add: email} (needs Manage) | |
| confirm_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| approve_url | No | |
| agent_message | No | |
| confirm_token | No | |
| setup_summary | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose destructive, non-idempotent, open-world behavior, so the description usefully adds operational context: settings are replaced wholesale, patch is merged, recipients adds an inbox per site, and certain changes return setup_summary, reply_to_email, or approve_url. It does not contradict the annotations, though it does not explain confirm_token or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core operation before covering field behavior and return effects. The semicolon-heavy second half is dense and slightly awkward, but every clause carries useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter destructive update tool, the description covers the main mutation semantics and some output behavior. It still leaves meaningful gaps around confirm_token, permissions/confirmation expectations, and less central parameters like lang and forms, though the output schema and annotations reduce the overall burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 45% schema description coverage, the description partially compensates by clarifying the important distinction between settings (whole) and patch (merged), the recipients semantics, and the status values. However, parameters such as lang, forms, confirm_token, site, and plugin_id remain undocumented in the description beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Changes a plugin'. It also enumerates the main mutable fields, making clear this tool modifies an existing plugin rather than adding, removing, or listing one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by 'Changes a plugin' and the listed fields, but there is no explicit guidance on when to choose this over siblings like add_plugin, remove_plugin, or list_plugins. It lacks when-not-to-use or prerequisite guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
- Changed
add_domain1 field changed- added
Input schema / properties / claimAdded value: +{ + "description": "true: prove a reserved domain or one another account holds with a DNS TXT record; call again to check", + "type": "boolean" +}
- Changed
deploy1 field changed- changed
Input schema / properties / idempotency_key / descriptionPrevious value: -"New sites: a UUID; a retry replays the result"New value: +"New sites: a UUID (retries replay)"
- Changed
get_lists3 fields changed- added
Input schema / properties / sumAdded value: +{ + "description": "Numbers: {op, field, by}", + "type": "object" +} - added
Input schema / properties / where / anyOfAdded value: +[ + { + "type": "object" + }, + { + "type": "string" + } +] - removed
Input schema / properties / where / typeRemoved value: -"object"
- Changed
get_site4 fields changed- removed
Input schema / properties / cursor / descriptionRemoved value: -"next_cursor from the last call" - changed
Input schema / properties / download / descriptionPrevious value: -"true: 1-hour zip links to the live site (one per GB)"New value: +"true: 1-hour zip links (one per GB)" - changed
Input schema / properties / paths / descriptionPrevious value: -"Up to 20 files, 512 KB in all (the rest say not_read)"New value: +"Up to 20 files, 512 KB in all" - removed
Input schema / properties / prefix / descriptionRemoved value: -"Only files under this path"
- Changed
protect1 field changed- changed
Input schema / properties / mode / enumPrevious value: -[ - "passcode", - "members" -]New value: +[ + "passcode", + "members", + "internal" +]
- Changed
save_list2 fields changed- changed
Input schema / properties / fields / descriptionPrevious value: -"All fields, first to last (one left out loses its values): {name, type, label, options, list (reference), from (old name)}; type text, long_text, number, price, date, image, link, yes_no, rich_text, reference(s), choice"New value: +"All fields in order (one left out loses its values): {name, type, label, options, list, from (old name)}; type text, long_text, number, price, date, image, link, yes_no, rich_text, reference(s), choice; internal also choices, email, phone, person, money, file; internal: rules" - added
Input schema / properties / internalAdded value: +{ + "type": "object" +}
- Changed
setup_app1 field changed- added
Input schema / properties / plan_switchAdded value: +{ + "description": "Users switch plans", + "type": "boolean" +}
- Changed
update_list_items1 field changed- changed
Input schema / properties / items / descriptionPrevious value: -"Given fields change; null clears. {id, values, if_updated_at}"New value: +"Given fields change; null clears. {id, values, if_updated_at; internal: was}"
30 tool updates
- Changed
add_app_row1 field changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +}
- Changed
add_app_webhook3 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / eventsAdded value: +{ + "type": "array" +} - added
Output schema / properties / url_hostAdded value: +{ + "type": "string" +}
- Changed
add_people2 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +}
- Changed
bind_list2 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / blocksAdded value: +{ + "type": "number" +}
- Changed
bring_back_sites3 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +} - added
Output schema / properties / sitesAdded value: +{ + "type": "array" +}
- Changed
delete_list4 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / change_idAdded value: +{ + "type": "string" +} - added
Output schema / properties / itemsAdded value: +{ + "type": "number" +} - added
Output schema / properties / pagesAdded value: +{ + "type": "array" +}
- Changed
delete_site2 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +}
- Changed
edit_booking2 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / bookingsAdded value: +{ + "type": "number" +}
- Changed
email_users4 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +} - added
Output schema / properties / daysAdded value: +{ + "type": "number" +} - added
Output schema / properties / recipientsAdded value: +{ + "type": "number" +}
- Changed
fulfil_order1 field changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +}
- Changed
import_list_items5 fields changed- added
Output schema / properties / addAdded value: +{ + "type": "number" +} - added
Output schema / properties / addedAdded value: +{ + "type": "number" +} - added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / change_idAdded value: +{ + "type": "string" +} - added
Output schema / properties / previewAdded value: +{ + "type": "boolean" +}
- Changed
invite_users3 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +} - added
Output schema / properties / requestsAdded value: +{ + "type": "number" +}
- Changed
leave_workspace4 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +} - added
Output schema / properties / questionsAdded value: +{ + "type": "array" +} - added
Output schema / properties / sitesAdded value: +{ + "type": "array" +}
- Changed
move_sites4 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +} - added
Output schema / properties / move_urlAdded value: +{ + "type": "string" +} - added
Output schema / properties / questionsAdded value: +{ + "type": "array" +}
- Changed
protect4 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +} - added
Output schema / properties / members_onlyAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / protectedAdded value: +{ + "type": "boolean" +}
- Changed
refund_order2 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +}
- Changed
refuse_order2 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +}
- Changed
remove_domain1 field changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +}
- Changed
remove_people1 field changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +}
- Changed
remove_plugin2 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / upcoming_bookingsAdded value: +{ + "type": "number" +}
- Changed
remove_user2 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +}
- Changed
save_app_list4 fields changed- changed
Input schema / properties / list / descriptionPrevious value: -"Member list name, e.g. expenses"New value: +"App list name, e.g. expenses" - added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / peopleAdded value: +{ + "type": "number" +} - added
Output schema / properties / rowsAdded value: +{ + "type": "number" +}
- Changed
save_group2 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +}
- Changed
save_plan1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"As members see it"New value: +"As users see it"
- Changed
save_user_group3 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / peopleAdded value: +{ + "type": "number" +} - added
Output schema / properties / rowsAdded value: +{ + "type": "number" +}
- Changed
setup_app5 fields changed- changed
Input schema / properties / path / descriptionPrevious value: -"Member pages path (default /app)"New value: +"App pages path (default /app)" - changed
Input schema / properties / template / descriptionPrevious value: -"Makes its member lists and plans"New value: +"Makes its app lists and plans" - added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +} - added
Output schema / properties / statusAdded value: +{ + "type": "string" +}
- Changed
transfer_site3 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +} - added
Output schema / properties / recipientAdded value: +{ + "type": "object" +}
- Changed
unprotect4 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +} - added
Output schema / properties / members_onlyAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / protectedAdded value: +{ + "type": "boolean" +}
- Changed
update_app_rows1 field changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +}
- Changed
update_plugin3 fields changed- added
Output schema / properties / agent_messageAdded value: +{ + "type": "string" +} - added
Output schema / properties / approve_urlAdded value: +{ + "type": "string" +} - added
Output schema / properties / setup_summaryAdded value: +{ + "type": "array" +}
25 tool updates
- Changed
add_domain1 field changed- changed
Input schema / properties / confirm_root / descriptionPrevious value: -"true: connect a root domain anyway (after add_domain recommended www)"New value: +"true: the root domain anyway (not www)"
- Changed
add_list_items2 fields changed- changed
Input schema / properties / copy / descriptionPrevious value: -"{field: message field}"New value: +"{field: form reply field}" - changed
Input schema / properties / from / descriptionPrevious value: -"Or copy this message (itm_…)"New value: +"Or copy this form reply (itm_…)"
- Changed
add_people1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"From the first call (site only): approval status"
- Changed
cancel_booking1 field changed- changed
Input schema / properties / refund / descriptionPrevious value: -"A paid booking (default full; returns a refund approve link)"New value: +"Paid booking; default full"
- Changed
check_site1 field changed- added
Input schema / properties / site_token / descriptionAdded value: +"From an anonymous deploy (secret)"
- Changed
create_upload_link2 fields changed- changed
Input schema / properties / replace_site / descriptionPrevious value: -"true: a one-use link for a zip that replaces the whole site"New value: +"true: a one-use link for a whole-site zip" - added
Input schema / properties / site_token / descriptionAdded value: +"From an anonymous deploy (secret)"
- Changed
delete_site1 field changed- added
Input schema / properties / site_token / descriptionAdded value: +"From an anonymous deploy (secret)"
- Changed
deploy4 fields changed- added
Input schema / properties / base_revision / descriptionAdded value: +"Update: the live revision id last read" - changed
Input schema / properties / idempotency_key / descriptionPrevious value: -"New sites: a random UUID; a retry with the same files replays the result"New value: +"New sites: a UUID; a retry replays the result" - added
Input schema / properties / site_token / descriptionAdded value: +"From an anonymous deploy (secret)" - changed
Input schema / properties / workspace / descriptionPrevious value: -"New sites: workspace id or name, or \"private\" (omitted with several, the reply asks)"New value: +"New sites: workspace id or name, or \"private\""
- Changed
find_visitor_records1 field changed- added
Input schema / properties / scope / descriptionAdded value: +"No site: all, personal or workspace:<id>"
- Changed
get_account2 fields changed- changed
Input schema / properties / include / descriptionPrevious value: -"Any of: billing, usage, storage, downgrade, notifications, referrals, all. Extra sections (\"all\": every one but referrals). referrals: the person's own invite link and seats left, only when they ask for it; never suggest it"New value: +"Any of: billing, usage, storage, downgrade, notifications, all. Extra sections" - changed
Input schema / properties / sites_query / descriptionPrevious value: -"Only sites whose name, title or workspace contains this"New value: +"Filter by name, title or workspace"
- Changed
get_activity1 field changed- changed
Input schema / properties / workspace / descriptionPrevious value: -"Workspace id or name; leave out for the person's own account"New value: +"Workspace id or name (default: own account)"
- Changed
get_analytics3 fields changed- changed
Input schema / properties / compare / descriptionPrevious value: -"Also return the previous period of the same length (paid plans)"New value: +"Also the previous period (paid plans)" - changed
Input schema / properties / days / descriptionPrevious value: -"Days back from today, today included (default 7)"New value: +"Days back, today included (default 7)" - changed
Input schema / properties / recent / descriptionPrevious value: -"Also recent_events: counts per event, last 30 minutes (to check a test tap)"New value: +"Also counts per event, last 30 minutes"
- Changed
get_domains1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"Finding one: a name, idea or domain, e.g. Maison Cafe or maisoncafe.co.uk"New value: +"A name, idea or domain to find, e.g. Maison Cafe"
- Changed
get_lists2 fields changed- removed
Input schema / properties / site / descriptionRemoved value: -"None: every site, counts only" - changed
Input schema / properties / status / descriptionPrevious value: -"Messages: new|read|spam|archived|binned|all"New value: +"Form replies: new|read|spam|archived|binned|all"
- Changed
get_site3 fields changed- removed
Input schema / properties / checkRemoved value: -{ - "enum": [ - "accessibility" - ], - "type": "string" -} - changed
Input schema / properties / download / descriptionPrevious value: -"true: 1-hour links to the whole live site as zips (one per GB)"New value: +"true: 1-hour zip links to the live site (one per GB)" - added
Input schema / properties / site_token / descriptionAdded value: +"From an anonymous deploy (secret)"
- Changed
list_versions1 field changed- added
Input schema / properties / site_token / descriptionAdded value: +"From an anonymous deploy (secret)"
- Changed
mark_form_replies1 field changed- changed
Input schema / properties / plugin_id / descriptionPrevious value: -"Optional: found from item_ids"New value: +"Found from item_ids"
- Changed
protect1 field changed- changed
Input schema / properties / emails / descriptionPrevious value: -"members on a path: the full list who may see it (shared plans: omit to reuse the site's list)"New value: +"members on a path: everyone who may see it (omit: the site's list)"
- Changed
rollback2 fields changed- changed
Input schema / properties / discard / descriptionPrevious value: -"With a preview id: deletes that preview instead"New value: +"With a preview id: delete it" - added
Input schema / properties / site_token / descriptionAdded value: +"From an anonymous deploy (secret)"
- Changed
save_app_list1 field changed- changed
Input schema / properties / scan / descriptionPrevious value: -"Scan actions: {label, values} adds a row; {label, redeem: n} uses n; form: a list (guide #scan)"New value: +"Scan actions: {label, values} adds a row; {label, redeem: n} uses n; form: a list"
- Changed
setup_app2 fields changed- changed
Input schema / properties / retention / descriptionPrevious value: -"member, 1y, 2y, 5y"New value: +"Kept after a user leaves: member (not), 1y, 2y, 5y; shorter erases" - added
Input schema / properties / sign_out_all / descriptionAdded value: +"true: signs every user out"
- Changed
share_file1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"With content: file name with extension, e.g. menu.pdf"New value: +"With content: e.g. menu.pdf"
- Changed
site_settings6 fields changed- added
Input schema / properties / archived / descriptionAdded value: +"true: offline, two steps" - added
Input schema / properties / base_revision / descriptionAdded value: +"promote: staging revision" - added
Input schema / properties / name / descriptionAdded value: +"New address; old one stops" - changed
Input schema / properties / search / descriptionPrevious value: -"ai_training, ai_answers (allow or block), primary_domain, domain_redirect, review_url, steps"New value: +"ai_training, ai_answers (allow|block), primary_domain, domain_redirect, review_url, steps" - changed
Input schema / properties / title / descriptionPrevious value: -"Shown in the app (null: the page <title>)"New value: +"App label (null: the page <title>)" - changed
Input schema / properties / workspace / descriptionPrevious value: -"Moves a private site in: workspace id or name, or \"new\""New value: +"Move a private site in: workspace id, name or \"new\""
- Changed
update_app_rows1 field changed- added
Input schema / properties / reply / descriptionAdded value: +"Emailed to the user"
- Changed
update_plugin3 fields changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"After the person's yes to setup_summary, or for the approve_url status" - changed
Input schema / properties / recipients / descriptionPrevious value: -"{add: an extra inbox, for every site on the plan (needs Manage)}"New value: +"{add: email} (needs Manage)" - changed
Input schema / properties / settings / descriptionPrevious value: -"The whole settings object, shaped as list_plugins settings_help (forms too)"New value: +"The whole object, as list_plugins settings_help (forms too)"
13 tool updates
- Changed
approve_booking1 field changed- removed
Input schema / properties / item_id / descriptionRemoved value: -"From get_lists"
- Changed
cancel_booking1 field changed- removed
Input schema / properties / item_id / descriptionRemoved value: -"From get_lists"
- Added
check_site - Changed
edit_booking1 field changed- removed
Input schema / properties / item_id / descriptionRemoved value: -"From get_lists"
- Changed
fulfil_order2 fields changed- removed
Input schema / properties / item_id / descriptionRemoved value: -"From get_lists" - removed
Input schema / properties / plugin_id / descriptionRemoved value: -"From list_plugins"
- Changed
get_site1 field changed- removed
Input schema / properties / check / descriptionRemoved value: -"The full Accessibility check of the live pages (problems, fixes)"
- Changed
list_plugins1 field changed- removed
Input schema / properties / plugin_id / descriptionRemoved value: -"From list_plugins"
- Changed
refund_order2 fields changed- removed
Input schema / properties / item_id / descriptionRemoved value: -"From get_lists" - removed
Input schema / properties / plugin_id / descriptionRemoved value: -"From list_plugins"
- Changed
refuse_order2 fields changed- removed
Input schema / properties / item_id / descriptionRemoved value: -"From get_lists" - removed
Input schema / properties / plugin_id / descriptionRemoved value: -"From list_plugins"
- Changed
remove_plugin1 field changed- removed
Input schema / properties / plugin_id / descriptionRemoved value: -"From list_plugins"
- Changed
set_booking_outcome1 field changed- removed
Input schema / properties / item_id / descriptionRemoved value: -"From get_lists"
- Changed
test_plugin1 field changed- removed
Input schema / properties / plugin_id / descriptionRemoved value: -"From list_plugins"
- Changed
update_plugin1 field changed- removed
Input schema / properties / plugin_id / descriptionRemoved value: -"From list_plugins"
59 tool updates
- Changed
add_app_row1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
add_app_webhook1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
add_domain1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
add_list_items1 field changed- removed
Input schema / properties / list / descriptionRemoved value: -"List name"
- Changed
add_people1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
approve_booking1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "item_id": { + "type": "string" + } + }, + "type": "object" +}
- Changed
bind_list2 fields changed- removed
Input schema / properties / list / descriptionRemoved value: -"List name" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
bring_back_sites1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
cancel_transfer1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
create_upload_link1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
delete_list2 fields changed- removed
Input schema / properties / list / descriptionRemoved value: -"List name" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
delete_site2 fields changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"From the first call: the deletion status" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
edit_booking1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
email_users1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
export_app_data1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "export_id": { + "type": "string" + } + }, + "type": "object" +}
- Changed
find_visitor_records1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
fulfil_order1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
get_account3 fields changed- changed
Input schema / properties / include / descriptionPrevious value: -"Extra sections (\"all\": every one but referrals). referrals: the person's own invite link and seats left, only when they ask for it; never suggest it"New value: +"Any of: billing, usage, storage, downgrade, notifications, referrals, all. Extra sections (\"all\": every one but referrals). referrals: the person's own invite link and seats left, only when they ask for it; never suggest it" - removed
Input schema / properties / include / items / enumRemoved value: -[ - "billing", - "usage", - "storage", - "downgrade", - "notifications", - "referrals", - "all" -] - removed
Output schema / properties / notices / items / propertiesRemoved value: -{}
- Changed
get_activity3 fields changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - removed
Input schema / properties / type / descriptionRemoved value: -"Kind of action" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "entries": { + "type": "array" + } + }, + "type": "object" +}
- Changed
get_analytics1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
get_app2 fields changed- removed
Input schema / properties / check / descriptionRemoved value: -"Setup checks" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
get_app_data1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
get_domains1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "domains": { + "type": "array" + } + }, + "type": "object" +}
- Changed
get_free_slots1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
import_list_items2 fields changed- removed
Input schema / properties / list / descriptionRemoved value: -"List name" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
invite_users1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
leave_workspace1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
list_people1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "people": { + "type": "array" + } + }, + "type": "object" +}
- Changed
list_plugins1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "plugins": { + "type": "array" + } + }, + "type": "object" +}
- Changed
list_versions2 fields changed- removed
Input schema / properties / since_days / descriptionRemoved value: -"The last N days" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "versions": { + "type": "array" + } + }, + "type": "object" +}
- Changed
mark_form_replies1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "updated": { + "type": "number" + } + }, + "type": "object" +}
- Changed
move_sites1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
preview_as_user1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
protect1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
refund_order1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
refuse_order1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
remove_app_webhook1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
remove_domain1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
remove_list_items2 fields changed- removed
Input schema / properties / list / descriptionRemoved value: -"List name" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "change_id": { + "type": "string" + } + }, + "type": "object" +}
- Changed
remove_people1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
remove_plugin1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
remove_user1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
save_app_ai_prompt1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
save_app_list1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
save_group1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
save_list1 field changed- removed
Input schema / properties / list / descriptionRemoved value: -"List name"
- Changed
save_plan1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "plan": { + "type": "string" + } + }, + "type": "object" +}
- Changed
save_user_group1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
set_booking_outcome1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "item_id": { + "type": "string" + } + }, + "type": "object" +}
- Changed
setup_app1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
share_file1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "type": "object" +}
- Changed
sort_list_items3 fields changed- removed
Input schema / properties / list / descriptionRemoved value: -"List name" - removed
Input schema / properties / sort_by / descriptionRemoved value: -"A field to sort by" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "change_id": { + "type": "string" + } + }, + "type": "object" +}
- Changed
test_plugin1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "plugin_id": { + "type": "string" + } + }, + "type": "object" +}
- Changed
transfer_site2 fields changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"From the first call: approval status" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
undo_list_change1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "change_id": { + "type": "string" + } + }, + "type": "object" +}
- Changed
unprotect1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
update_app_rows1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
update_list_items1 field changed- removed
Input schema / properties / list / descriptionRemoved value: -"List name"
- Changed
update_plugin1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
30 tool updates
- Added
add_app_row - Added
add_app_webhook - Removed
add_member_row - Removed
add_member_webhook - Removed
email_members - Added
email_users - Added
export_app_data - Removed
export_member_data - Added
get_app - Added
get_app_data - Removed
get_member_app - Removed
get_member_data - Removed
invite_members - Added
invite_users - Added
mark_form_replies - Removed
mark_messages - Removed
preview_as_member - Added
preview_as_user - Added
remove_app_webhook - Removed
remove_member - Removed
remove_member_webhook - Added
remove_user - Added
save_app_list - Removed
save_member_group - Removed
save_member_list - Added
save_user_group - Added
setup_app - Removed
setup_member_app - Added
update_app_rows - Removed
update_member_rows
2 tool updates
- Changed
add_domain1 field changed- removed
Input schema / properties / confirm_tokenRemoved value: -{ - "description": "After the user's yes (hostname optional then)", - "type": "string" -}
- Changed
add_list_items1 field changed- added
Input schema / properties / confirm_tokenAdded value: +{ + "type": "string" +}
27 tool updates
- Changed
add_booking2 fields changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"After the user's yes" - changed
Input schema / properties / plugin_id / descriptionPrevious value: -"Default: the booking page"New value: +"Default: booking page"
- Changed
add_member_webhook1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"From the first call"
- Changed
add_plugin3 fields changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"After the user's yes" - changed
Input schema / properties / kind / enumPrevious value: -[ - "forms", - "booking" -]New value: +[ + "forms", + "payments", + "booking" +] - changed
Input schema / properties / lang / descriptionPrevious value: -"The snippet page's <html lang>, e.g. de (one snippet per language)"New value: +"The page's <html lang>, e.g. de (one snippet per language)"
- Changed
approve_booking1 field changed- changed
Input schema / properties / plugin_id / descriptionPrevious value: -"Default: the booking page"New value: +"Default: booking page"
- Changed
bind_list1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"From the first call"
- Changed
cancel_booking3 fields changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"After the user's yes" - changed
Input schema / properties / plugin_id / descriptionPrevious value: -"Default: the booking page"New value: +"Default: booking page" - added
Input schema / properties / refundAdded value: +{ + "description": "A paid booking (default full; returns a refund approve link)", + "enum": [ + "full", + "deposit_kept", + "none" + ], + "type": "string" +}
- Changed
delete_list1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"From the first call"
- Changed
deploy1 field changed- changed
Input schema / properties / workspace / descriptionPrevious value: -"New sites: workspace id or name, or \"private\"; omitted with several places, the reply asks which"New value: +"New sites: workspace id or name, or \"private\" (omitted with several, the reply asks)"
- Changed
edit_booking2 fields changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"After the user's yes" - changed
Input schema / properties / plugin_id / descriptionPrevious value: -"Default: the booking page"New value: +"Default: booking page"
- Changed
email_members1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"From the first call"
- Added
fulfil_order - Changed
get_account1 field changed- changed
Input schema / properties / include / descriptionPrevious value: -"Extra sections (\"all\": every one but referrals). referrals: the person's own invite link (and invite seats left), only when they ask for it; never suggest it"New value: +"Extra sections (\"all\": every one but referrals). referrals: the person's own invite link and seats left, only when they ask for it; never suggest it"
- Changed
import_list_items1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"From the first call"
- Changed
invite_members1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"From the first call"
- Changed
list_plugins1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"The snippet page's <html lang>, e.g. de (one snippet per language)"New value: +"The page's <html lang>, e.g. de (one snippet per language)"
- Changed
mark_messages1 field changed- changed
Input schema / properties / all / enumPrevious value: -[ - "notices", - "forms", - "bookings" -]New value: +[ + "notices", + "forms", + "bookings", + "orders" +]
- Changed
protect1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"From the first call"
- Added
refund_order - Added
refuse_order - Changed
remove_domain1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"After the user's yes"
- Changed
remove_member1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"From the first call"
- Changed
remove_people1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"After the user's yes"
- Changed
remove_plugin1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"After the user's yes"
- Changed
set_booking_outcome1 field changed- changed
Input schema / properties / plugin_id / descriptionPrevious value: -"Default: the booking page"New value: +"Default: booking page"
- Changed
site_settings1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"From the first call"
- Changed
unprotect1 field changed- removed
Input schema / properties / confirm_token / descriptionRemoved value: -"From the first call"
- Changed
update_plugin1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"The snippet page's <html lang>, e.g. de (one snippet per language)"New value: +"The page's <html lang>, e.g. de (one snippet per language)"
17 tool updates
- Added
add_member_row - Added
add_member_webhook - Added
email_members - Added
export_member_data - Added
get_member_app - Added
get_member_data - Added
invite_members - Added
preview_as_member - Added
remove_member - Added
remove_member_webhook - Added
save_app_ai_prompt - Added
save_member_group - Added
save_member_list - Added
save_plan - Added
setup_member_app - Changed
site_settings1 field changed- added
Input schema / properties / sender_addressAdded value: +{ + "type": "string" +}
- Added
update_member_rows
43 tool updates
- Changed
add_booking2 fields changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "agent_message": { + "type": "string" + }, + "confirm_token": { + "type": "string" + }, + "item_id": { + "type": "string" + } + }, + "type": "object" +}
- Changed
add_domain1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
add_list_items2 fields changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "agent_message": { + "type": "string" + }, + "change_id": { + "type": "string" + }, + "items": { + "items": { + "properties": { + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
add_people7 fields changed- changed
Input schema / properties / emails / descriptionPrevious value: -"Email addresses; for visitor also company domains, e.g. acme.com (required unless confirm_token)"New value: +"Emails; for member also company domains (required unless confirm_token)" - added
Input schema / properties / groupAdded value: +{ + "type": "string" +} - changed
Input schema / properties / permissions / descriptionPrevious value: -"collaborator: exactly these ticks; for existing collaborators, changes theirs"New value: +"Ticks, personal site" - removed
Input schema / properties / permissions / items / enumRemoved value: -[ - "edit_site", - "members_view", - "members_edit", - "ai_key", - "scan" -] - changed
Input schema / properties / role / descriptionPrevious value: -"Required unless confirm_token. An audience (students, clients) is member. viewer also sees versions and people"New value: +"developer, viewer, member, admin or custom. An audience (students, clients) is member" - removed
Input schema / properties / role / enumRemoved value: -[ - "editor", - "collaborator", - "viewer", - "visitor", - "member", - "workspace_visitor", - "workspace_viewer" -] - removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
add_plugin3 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"The <html lang> of the snippet's page (e.g. de); one snippet per language"New value: +"The snippet page's <html lang>, e.g. de (one snippet per language)" - removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "agent_message": { + "type": "string" + }, + "confirm_token": { + "type": "string" + }, + "plugin_id": { + "type": "string" + }, + "snippet_html": { + "type": "string" + } + }, + "type": "object" +}
- Changed
approve_booking1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
bind_list2 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: approval status"New value: +"From the first call" - removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
cancel_booking2 fields changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "agent_message": { + "type": "string" + }, + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
cancel_transfer1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
create_upload_link2 fields changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - removed
Input schema / properties / site_token / descriptionRemoved value: -"From the first deploy (no account)"
- Changed
delete_list2 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: approval status"New value: +"From the first call" - removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
delete_site2 fields changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - removed
Input schema / properties / site_token / descriptionRemoved value: -"From the first deploy (no account)"
- Changed
deploy4 fields changed- added
Input schema / properties / confirm_tokenAdded value: +{ + "type": "string" +} - removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - removed
Input schema / properties / site_token / descriptionRemoved value: -"From the first deploy (no account)" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "agent_message": { + "type": "string" + }, + "claim_url": { + "type": "string" + }, + "revision": { + "properties": { + "id": { + "type": "string" + }, + "number": { + "type": "number" + } + }, + "type": "object" + }, + "site": { + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "site_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
edit_booking1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
find_visitor_records1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
get_account8 fields changed- removed
Output schema / properties / agent_messageRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / confirm_tokenRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / errorRemoved value: -{ - "description": "On failure (isError): {code, message}" -} - added
Output schema / properties / new / additionalPropertiesAdded value: +{ + "type": "number" +} - removed
Output schema / properties / new / descriptionRemoved value: -"Counts of new items needing attention, by kind" - removed
Output schema / properties / new / propertiesRemoved value: -{} - removed
Output schema / properties / notices / descriptionRemoved value: -"Problems and unread notices (at most 10); mention a problem first; reading marks nothing" - added
Output schema / properties / sitesAdded value: +{ + "items": { + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" +}
- Changed
get_analytics1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
get_domains1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
get_free_slots1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
get_lists1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "items": { + "items": { + "properties": { + "id": { + "type": "string" + }, + "values": { + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "next_cursor": { + "type": "string" + } + }, + "type": "object" +}
- Changed
get_site3 fields changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - removed
Input schema / properties / site_token / descriptionRemoved value: -"From the first deploy (no account)" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "content": { + "type": "string" + }, + "files": { + "items": { + "properties": { + "path": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "live_revision": { + "properties": { + "id": { + "type": "string" + }, + "number": { + "type": "number" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
import_list_items2 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: approval status"New value: +"From the first call" - removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
list_people1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
list_plugins2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"The <html lang> of the snippet's page (e.g. de); one snippet per language"New value: +"The snippet page's <html lang>, e.g. de (one snippet per language)" - removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
list_versions2 fields changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - removed
Input schema / properties / site_token / descriptionRemoved value: -"From the first deploy (no account)"
- Changed
move_sites2 fields changed- removed
Input schema / properties / members_readRemoved value: -{ - "description": "New workspace: every member reads form messages", - "type": "boolean" -} - changed
Input schema / properties / people / descriptionPrevious value: -"Site Collaborator emails to invite"New value: +"Site Developer emails to invite"
- Changed
protect2 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: approval status"New value: +"From the first call" - removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
remove_domain1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
remove_list_items1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
remove_people1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
remove_plugin1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
rollback3 fields changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - removed
Input schema / properties / site_token / descriptionRemoved value: -"From the first deploy (no account)" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "agent_message": { + "type": "string" + }, + "revision": { + "properties": { + "id": { + "type": "string" + }, + "number": { + "type": "number" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Added
save_group - Changed
save_list2 fields changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "agent_message": { + "type": "string" + }, + "fields": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
set_booking_outcome1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
site_settings4 fields changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - added
Input schema / properties / time_zoneAdded value: +{ + "type": "string" +} - changed
Input schema / properties / workspace / descriptionPrevious value: -"Moves a private site in: a workspace id or name, or \"new\""New value: +"Moves a private site in: workspace id or name, or \"new\"" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "agent_message": { + "type": "string" + }, + "approve_url": { + "type": "string" + }, + "confirm_token": { + "type": "string" + } + }, + "type": "object" +}
- Changed
sort_list_items1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
test_plugin1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
transfer_site1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
undo_list_change1 field changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
unprotect2 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: approval status"New value: +"From the first call" - removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
- Changed
update_list_items2 fields changed- removed
Input schema / properties / site / descriptionRemoved value: -"Site name" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "agent_message": { + "type": "string" + }, + "change_id": { + "type": "string" + }, + "items": { + "items": { + "properties": { + "id": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
update_plugin2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"The <html lang> of the snippet's page (e.g. de); one snippet per language"New value: +"The snippet page's <html lang>, e.g. de (one snippet per language)" - removed
Input schema / properties / site / descriptionRemoved value: -"Site name"
1 tool update
- Changed
site_settings1 field changed- changed
Input schema / properties / notifications / descriptionPrevious value: -"Own emails: forms, bookings, health (auto, daily, off or {email, in_app}); domain_live, domain_reminder, product_news; scope (site or all)"New value: +"Own emails: forms, bookings, health (auto, daily, off, {email, in_app}); domain_live, domain_reminder, product_news; count_usage; scope site|all"
47 tool updates
- Changed
add_booking15 fields changed- removed
Input schema / properties / answers / additionalPropertiesRemoved value: -{ - "maxLength": 500, - "type": "string" -} - changed
Input schema / properties / answers / descriptionPrevious value: -"{question id: answer} for the settings' questions (\"\" removes one)"New value: +"{question id: answer} (\"\" removes one)" - changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call, after the user's yes"New value: +"After the user's yes" - removed
Input schema / properties / email / maxLengthRemoved value: -254 - removed
Input schema / properties / force / descriptionRemoved value: -"Book even if it clashes" - removed
Input schema / properties / name / maxLengthRemoved value: -100 - removed
Input schema / properties / notes / maxLengthRemoved value: -1000 - changed
Input schema / properties / notify_customer / descriptionPrevious value: -"Email the customer (default true when there is an email)"New value: +"Email the customer (default true)" - removed
Input schema / properties / phone / maxLengthRemoved value: -40 - changed
Input schema / properties / plugin_id / descriptionPrevious value: -"Default: the site's booking page"New value: +"Default: the booking page" - removed
Input schema / properties / resource / maxLengthRemoved value: -60 - changed
Input schema / properties / series / descriptionPrevious value: -"Weekly repeat: count or until (YYYY-MM-DD); on_clash \"skip\" leaves out the dates that clash"New value: +"Weekly repeat: {every: week|fortnight, count 2-52 or until YYYY-MM-DD, on_clash: \"skip\"}" - removed
Input schema / properties / series / propertiesRemoved value: -{ - "count": { - "maximum": 52, - "minimum": 2, - "type": "integer" - }, - "every": { - "enum": [ - "week", - "fortnight" - ], - "type": "string" - }, - "on_clash": { - "const": "skip", - "type": "string" - }, - "until": { - "type": "string" - } -} - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
add_domain4 fields changed- changed
Input schema / properties / confirm_root / descriptionPrevious value: -"true: connect a root domain (example.com) anyway, after add_domain recommended www"New value: +"true: connect a root domain anyway (after add_domain recommended www)" - changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call, once the user said yes (hostname may then be left out)"New value: +"After the user's yes (hostname optional then)" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
add_list_items4 fields changed- removed
Input schema / properties / items / items / additionalPropertiesRemoved value: -{} - removed
Input schema / properties / items / maxItemsRemoved value: -500 - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
add_people6 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: re-call with it (site only) for the approval status"New value: +"From the first call (site only): approval status" - removed
Input schema / properties / emails / maxItemsRemoved value: -50 - added
Input schema / properties / permissionsAdded value: +{ + "description": "collaborator: exactly these ticks; for existing collaborators, changes theirs", + "items": { + "enum": [ + "edit_site", + "members_view", + "members_edit", + "ai_key", + "scan" + ], + "type": "string" + }, + "type": "array" +} - changed
Input schema / properties / role / descriptionPrevious value: -"Required unless confirm_token. collaborator (old name editor): a Site Collaborator, edits. An audience (students, clients) is member (old name visitor; a Site Member): sees only the invite-only site. viewer: a Site Viewer, also sees versions and people. workspace_viewer (old name workspace_visitor): a Workspace Viewer, views every site of the workspace in the app, read-only"New value: +"Required unless confirm_token. An audience (students, clients) is member. viewer also sees versions and people" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
add_plugin27 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call, after the user's yes"New value: +"After the user's yes" - changed
Input schema / properties / form_html / descriptionPrevious value: -"Forms: the page's <form>; declares the fields"New value: +"Forms: the page's <form>" - removed
Input schema / properties / form_html / maxLengthRemoved value: -204800 - removed
Input schema / properties / forms / additionalPropertiesRemoved value: -false - changed
Input schema / properties / forms / descriptionPrevious value: -"Typed settings for a forms plugin (implies kind forms)"New value: +"Typed: fields, success_message, redirect, submit_label, notify, store, auto_reply" - removed
Input schema / properties / forms / properties / auto_replyRemoved value: -{ - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - }, - "subject": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" -} - added
Input schema / properties / forms / properties / fields / descriptionAdded value: +"1-30 of: name, type, label, required, options, max_length, required_if {field, value}" - removed
Input schema / properties / forms / properties / fields / items / additionalPropertiesRemoved value: -false - removed
Input schema / properties / forms / properties / fields / items / properties / labelRemoved value: -{ - "maxLength": 100, - "minLength": 1, - "type": "string" -} - removed
Input schema / properties / forms / properties / fields / items / properties / max_lengthRemoved value: -{ - "minimum": 1, - "type": "integer" -} - removed
Input schema / properties / forms / properties / fields / items / properties / optionsRemoved value: -{ - "items": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "maxItems": 50, - "minItems": 1, - "type": "array" -} - removed
Input schema / properties / forms / properties / fields / items / properties / requiredRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / forms / properties / fields / items / properties / required_ifRemoved value: -{ - "additionalProperties": false, - "properties": { - "field": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ] - } - }, - "required": [ - "field", - "value" - ], - "type": "object" -} - removed
Input schema / properties / forms / properties / fields / maxItemsRemoved value: -30 - removed
Input schema / properties / forms / properties / fields / minItemsRemoved value: -1 - removed
Input schema / properties / forms / properties / notifyRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / forms / properties / redirectRemoved value: -{ - "maxLength": 300, - "pattern": "^\\/(?![/\\\\])[^\\s\\\\]*$", - "type": "string" -} - removed
Input schema / properties / forms / properties / storeRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / forms / properties / submit_labelRemoved value: -{ - "maxLength": 40, - "minLength": 1, - "type": "string" -} - removed
Input schema / properties / forms / properties / success_messageRemoved value: -{ - "maxLength": 300, - "minLength": 1, - "type": "string" -} - removed
Input schema / properties / kind / descriptionRemoved value: -"Which plugin (forms is implied by forms)" - changed
Input schema / properties / lang / descriptionPrevious value: -"The <html lang> of the page the snippet goes on (e.g. de): snippet_html then speaks it. One snippet per language on a multilingual site"New value: +"The <html lang> of the snippet's page (e.g. de); one snippet per language" - changed
Input schema / properties / name / descriptionPrevious value: -"A name for the owner, e.g. \"Contact form\""New value: +"e.g. \"Contact form\"" - removed
Input schema / properties / settings / additionalPropertiesRemoved value: -{} - changed
Input schema / properties / settings / descriptionPrevious value: -"Shaped as list_plugins settings_help for the kind (booking too)"New value: +"As list_plugins settings_help" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
approve_booking4 fields changed- removed
Input schema / properties / message / maxLengthRemoved value: -500 - changed
Input schema / properties / plugin_id / descriptionPrevious value: -"Default: the site's booking page"New value: +"Default: the booking page" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
bind_list4 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: re-call with it for the approval status"New value: +"From the first call: approval status" - removed
Input schema / properties / selector / maxLengthRemoved value: -200 - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
bring_back_sites3 fields changed- removed
Input schema / properties / decline / maxItemsRemoved value: -250 - removed
Input schema / properties / sites / maxItemsRemoved value: -250 - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
cancel_booking7 fields changed- removed
Input schema / additionalPropertiesRemoved value: -{} - changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call, after the user's yes"New value: +"After the user's yes" - removed
Input schema / properties / message / maxLengthRemoved value: -500 - changed
Input schema / properties / notify_customer / descriptionPrevious value: -"Email the customer (default true when there is an email)"New value: +"Email the customer (default true)" - changed
Input schema / properties / plugin_id / descriptionPrevious value: -"Default: the site's booking page"New value: +"Default: the booking page" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
cancel_transfer2 fields changed- changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
create_upload_link3 fields changed- changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Input schema / properties / site_token / descriptionPrevious value: -"site_token from the first deploy (anonymous sites only)"New value: +"From the first deploy (no account)" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
delete_list3 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: re-call with it for the approval status"New value: +"From the first call: approval status" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
delete_site3 fields changed- changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Input schema / properties / site_token / descriptionPrevious value: -"site_token from the first deploy (anonymous sites only)"New value: +"From the first deploy (no account)" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
deploy13 fields changed- changed
Input schema / properties / deleted / descriptionPrevious value: -"patch only: paths to remove"New value: +"patch: paths to remove" - changed
Input schema / properties / files / items / properties / encoding / descriptionPrevious value: -"utf8 (default) for text, base64 for images and other binaries"New value: +"utf8 (default), or base64 for binaries" - changed
Input schema / properties / files / items / properties / path / descriptionPrevious value: -"Relative path, e.g. index.html or assets/app.js"New value: +"e.g. img/a.png" - changed
Input schema / properties / idempotency_key / descriptionPrevious value: -"New sites: a fresh random value (e.g. a UUID); a retry with the same key and files replays the first result"New value: +"New sites: a random UUID; a retry with the same files replays the result" - removed
Input schema / properties / idempotency_key / maxLengthRemoved value: -128 - changed
Input schema / properties / patch / descriptionPrevious value: -"true: files are only the changed ones"New value: +"true: only the changed files" - added
Input schema / properties / previewAdded value: +{ + "description": "true: save a private preview, not live", + "type": "boolean" +} - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Input schema / properties / site_token / descriptionPrevious value: -"site_token from the first deploy (anonymous sites only)"New value: +"From the first deploy (no account)" - added
Input schema / properties / stagingAdded value: +{ + "type": "boolean" +} - changed
Input schema / properties / template / descriptionPrevious value: -"Template name, e.g. \"brasa\": its files become the site (files given replace those paths); then patch-deploy edits"New value: +"Template, e.g. \"brasa\" (files sent replace its paths)" - changed
Input schema / properties / workspace / descriptionPrevious value: -"New sites: this workspace (id or name from get_account) or \"private\" (the person's own personal site). Omitted: the only place the site can go; when it could be personal or in a workspace (or one of several), nothing is published and the reply asks the user which"New value: +"New sites: workspace id or name, or \"private\"; omitted with several places, the reply asks which" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
edit_booking18 fields changed- removed
Input schema / additionalPropertiesRemoved value: -{} - removed
Input schema / properties / answers / additionalPropertiesRemoved value: -{ - "maxLength": 500, - "type": "string" -} - changed
Input schema / properties / answers / descriptionPrevious value: -"{question id: answer} for the settings' questions (\"\" removes one)"New value: +"{question id: answer} (\"\" removes one)" - changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call, after the user's yes"New value: +"After the user's yes" - removed
Input schema / properties / email / maxLengthRemoved value: -254 - removed
Input schema / properties / force / descriptionRemoved value: -"Book even if it clashes" - removed
Input schema / properties / message / maxLengthRemoved value: -500 - removed
Input schema / properties / name / maxLengthRemoved value: -100 - removed
Input schema / properties / notes / maxLengthRemoved value: -1000 - changed
Input schema / properties / notify_customer / descriptionPrevious value: -"Email the customer (default true when there is an email)"New value: +"Email the customer (default true)" - removed
Input schema / properties / phone / maxLengthRemoved value: -40 - changed
Input schema / properties / plugin_id / descriptionPrevious value: -"Default: the site's booking page"New value: +"Default: the booking page" - changed
Input schema / properties / resource / descriptionPrevious value: -"With start: staff or room id or name"New value: +"With start: staff or room" - removed
Input schema / properties / resource / maxLengthRemoved value: -60 - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Input schema / properties / start / descriptionPrevious value: -"A new time: local \"2026-10-15T14:00\" (booking time zone)"New value: +"New local time, e.g. \"2026-10-15T14:00\"" - changed
Input schema / properties / waitlist / descriptionPrevious value: -"A class time (cl_…) or wl_ entry: close its waitlist (bookings stay; the people waiting are emailed) or re-open it"New value: +"Class time or wl_ entry: close (bookings stay; those waiting are emailed) or re-open" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
find_visitor_records3 fields changed- removed
Input schema / properties / limit / maximumRemoved value: -50 - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
get_account5 fields changed- removed
Input schema / properties / sites_limit / maximumRemoved value: -100 - removed
Input schema / properties / sites_query / maxLengthRemoved value: -100 - removed
Output schema / additionalPropertiesRemoved value: -{} - removed
Output schema / properties / new / additionalPropertiesRemoved value: -{} - removed
Output schema / properties / notices / items / additionalPropertiesRemoved value: -{}
- Changed
get_activity5 fields changed- removed
Input schema / properties / limit / maximumRemoved value: -100 - removed
Input schema / properties / person / maxLengthRemoved value: -320 - removed
Input schema / properties / site / maxLengthRemoved value: -100 - removed
Input schema / properties / workspace / maxLengthRemoved value: -100 - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
get_analytics4 fields changed- removed
Input schema / properties / days / maximumRemoved value: -1095 - changed
Input schema / properties / recent / descriptionPrevious value: -"Also return recent_events, counts per event over the last 30 minutes (to check a test tap)"New value: +"Also recent_events: counts per event, last 30 minutes (to check a test tap)" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
get_domains2 fields changed- changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
get_free_slots2 fields changed- changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
get_lists3 fields changed- removed
Input schema / properties / limit / maximumRemoved value: -1000 - removed
Input schema / properties / where / additionalPropertiesRemoved value: -{} - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
get_site6 fields changed- changed
Input schema / properties / check / descriptionPrevious value: -"accessibility: the full Accessibility check of the live pages (problems, where, how to fix)"New value: +"The full Accessibility check of the live pages (problems, fixes)" - removed
Input schema / properties / paths / maxItemsRemoved value: -20 - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Input schema / properties / site_token / descriptionPrevious value: -"site_token from the first deploy (anonymous sites only)"New value: +"From the first deploy (no account)" - added
Input schema / properties / stagingAdded value: +{ + "type": "boolean" +} - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
import_list_items6 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: re-call with it for the approval status"New value: +"From the first call: approval status" - removed
Input schema / properties / csv / maxLengthRemoved value: -5000000 - removed
Input schema / properties / rows / items / additionalPropertiesRemoved value: -{} - removed
Input schema / properties / rows / maxItemsRemoved value: -20000 - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
leave_workspace4 fields changed- changed
Input schema / properties / keep_editors / anyOfPrevious value: -[ - { - "enum": [ - "all", - "none" - ], - "type": "string" - }, - { - "items": { - "type": "string" - }, - "maxItems": 250, - "type": "array" - } -]New value: +[ + { + "enum": [ + "all", + "none" + ], + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - removed
Input schema / properties / offer / maxItemsRemoved value: -250 - removed
Input schema / properties / take / maxItemsRemoved value: -250 - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
list_people2 fields changed- changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
list_plugins3 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"The <html lang> of the page the snippet goes on (e.g. de): snippet_html then speaks it. One snippet per language on a multilingual site"New value: +"The <html lang> of the snippet's page (e.g. de); one snippet per language" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
list_versions4 fields changed- removed
Input schema / properties / since_days / maximumRemoved value: -3650 - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Input schema / properties / site_token / descriptionPrevious value: -"site_token from the first deploy (anonymous sites only)"New value: +"From the first deploy (no account)" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
mark_messages2 fields changed- removed
Input schema / properties / item_ids / maxItemsRemoved value: -50 - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
move_sites1 field changed- changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
protect3 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: re-call with it for the approval status"New value: +"From the first call: approval status" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
remove_domain3 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call, once the user said yes"New value: +"After the user's yes" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
remove_list_items3 fields changed- removed
Input schema / properties / ids / maxItemsRemoved value: -500 - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
remove_people4 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call, once the user said yes"New value: +"After the user's yes" - removed
Input schema / properties / entries / maxItemsRemoved value: -50 - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
remove_plugin3 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call, once the user said yes"New value: +"After the user's yes" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
rollback5 fields changed- added
Input schema / properties / discardAdded value: +{ + "description": "With a preview id: deletes that preview instead", + "type": "boolean" +} - changed
Input schema / properties / revision / descriptionPrevious value: -"Revision id or version number (list_versions)"New value: +"Revision id or version number (list_versions), or a preview id (get_site previews)" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Input schema / properties / site_token / descriptionPrevious value: -"site_token from the first deploy (anonymous sites only)"New value: +"From the first deploy (no account)" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
save_list9 fields changed- changed
Input schema / properties / fields / descriptionPrevious value: -"All fields, first to last; one left out loses its values. Form or bookings list: owner columns only"New value: +"All fields, first to last (one left out loses its values): {name, type, label, options, list (reference), from (old name)}; type text, long_text, number, price, date, image, link, yes_no, rich_text, reference(s), choice" - removed
Input schema / properties / fields / itemsRemoved value: -{ - "properties": { - "from": { - "description": "Old name: rename, keeping values", - "type": "string" - }, - "label": { - "maxLength": 80, - "type": "string" - }, - "list": { - "description": "reference(s): linked list", - "type": "string" - }, - "name": { - "description": "data-pl-field name", - "type": "string" - }, - "options": { - "items": { - "type": "string" - }, - "maxItems": 50, - "type": "array" - }, - "type": { - "enum": [ - "text", - "long_text", - "number", - "price", - "date", - "image", - "link", - "yes_no", - "rich_text", - "reference", - "references", - "choice" - ], - "type": "string" - } - }, - "required": [ - "name", - "type" - ], - "type": "object" -} - removed
Input schema / properties / fields / maxItemsRemoved value: -30 - removed
Input schema / properties / label / maxLengthRemoved value: -80 - removed
Input schema / properties / public_json / anyOfRemoved value: -[ - { - "properties": { - "fields": { - "items": { - "type": "string" - }, - "type": "array" - }, - "where": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "fields" - ], - "type": "object" - }, - { - "type": "null" - } -] - changed
Input schema / properties / public_json / descriptionPrevious value: -"Public JSON feed of these fields; null: off"New value: +"Public JSON feed {fields, where}; null: off" - added
Input schema / properties / public_json / typeAdded value: +[ + "object", + "null" +] - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
set_booking_outcome3 fields changed- changed
Input schema / properties / plugin_id / descriptionPrevious value: -"Default: the site's booking page"New value: +"Default: the booking page" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
share_file2 fields changed- removed
Input schema / properties / name / maxLengthRemoved value: -255 - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
site_settings16 fields changed- removed
Input schema / properties / ai_invites / descriptionRemoved value: -"Whether an AI may invite people (default on; each invite needs the owner's approval)" - changed
Input schema / properties / analytics / descriptionPrevious value: -"Click counting (clicks), kinds on or off (contact = phone, email and messaging), labels {event key or name: display name, null removes}, hidden (replaces the list)"New value: +"Click counting: clicks, kinds, labels, hidden" - removed
Input schema / properties / analytics / propertiesRemoved value: -{ - "clicks": { - "type": "boolean" - }, - "hidden": { - "items": { - "type": "string" - }, - "type": "array" - }, - "kinds": { - "properties": { - "contact": { - "type": "boolean" - }, - "downloads": { - "type": "boolean" - }, - "named": { - "type": "boolean" - }, - "outbound": { - "type": "boolean" - } - }, - "type": "object" - }, - "labels": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, - "type": "object" - } -} - added
Input schema / properties / base_revisionAdded value: +{ + "type": "string" +} - changed
Input schema / properties / instead / descriptionPrevious value: -"With archived false on a frozen site: a live site to freeze in its place"New value: +"Site to freeze instead" - changed
Input schema / properties / notifications / descriptionPrevious value: -"The caller's own emails: per category auto (as they come), daily (one summary) or off, or {email, in_app}; health = site alerts: down/up, traffic drop (auto or off); domain_live/domain_reminder (Site Owner); product_news (opt-in); scope site (this site) or all (default)"New value: +"Own emails: forms, bookings, health (auto, daily, off or {email, in_app}); domain_live, domain_reminder, product_news; scope (site or all)" - removed
Input schema / properties / notifications / propertiesRemoved value: -{ - "bookings": { - "anyOf": [ - { - "enum": [ - "auto", - "daily", - "off" - ], - "type": "string" - }, - { - "properties": { - "email": { - "enum": [ - "auto", - "daily", - "off" - ], - "type": "string" - }, - "in_app": { - "type": "boolean" - } - }, - "type": "object" - } - ] - }, - "domain_live": { - "type": "boolean" - }, - "domain_reminder": { - "type": "boolean" - }, - "forms": { - "anyOf": [ - { - "enum": [ - "auto", - "daily", - "off" - ], - "type": "string" - }, - { - "properties": { - "email": { - "enum": [ - "auto", - "daily", - "off" - ], - "type": "string" - }, - "in_app": { - "type": "boolean" - } - }, - "type": "object" - } - ] - }, - "health": { - "anyOf": [ - { - "enum": [ - "auto", - "daily", - "off" - ], - "type": "string" - }, - { - "properties": { - "email": { - "enum": [ - "auto", - "daily", - "off" - ], - "type": "string" - }, - "in_app": { - "type": "boolean" - } - }, - "type": "object" - } - ] - }, - "product_news": { - "type": "boolean" - }, - "scope": { - "enum": [ - "site", - "all" - ], - "type": "string" - } -} - added
Input schema / properties / rowsAdded value: +{ + "type": "boolean" +} - changed
Input schema / properties / search / descriptionPrevious value: -"Search: ai_training, ai_answers (robots.txt requests; default allow), primary_domain (main custom domain; null: first connected), domain_redirect (default false), review_url, steps (Get found ticks)"New value: +"ai_training, ai_answers (allow or block), primary_domain, domain_redirect, review_url, steps" - removed
Input schema / properties / search / propertiesRemoved value: -{ - "ai_answers": { - "enum": [ - "allow", - "block" - ], - "type": "string" - }, - "ai_training": { - "enum": [ - "allow", - "block" - ], - "type": "string" - }, - "domain_redirect": { - "type": "boolean" - }, - "primary_domain": { - "type": [ - "string", - "null" - ] - }, - "review_url": { - "type": [ - "string", - "null" - ] - }, - "steps": { - "properties": { - "apple": { - "type": "boolean" - }, - "bing": { - "type": "boolean" - }, - "gbp": { - "type": "boolean" - }, - "review_link": { - "type": "boolean" - }, - "search_console": { - "type": "boolean" - } - }, - "type": "object" - } -} - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - added
Input schema / properties / stagingAdded value: +{ + "enum": [ + "on", + "off", + "refresh", + "promote" + ], + "type": "string" +} - changed
Input schema / properties / title / anyOfPrevious value: -[ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / title / descriptionPrevious value: -"The title shown in the app (1-120 chars; null: the page <title>)"New value: +"Shown in the app (null: the page <title>)" - changed
Input schema / properties / workspace / descriptionPrevious value: -"Move a private site into this workspace (id or name from get_account), or \"new\""New value: +"Moves a private site in: a workspace id or name, or \"new\"" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
sort_list_items3 fields changed- removed
Input schema / properties / ids / maxItemsRemoved value: -500 - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
test_plugin2 fields changed- changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
transfer_site3 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: re-call with it for the approval status"New value: +"From the first call: approval status" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
undo_list_change2 fields changed- changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
unprotect3 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: re-call with it for the approval status"New value: +"From the first call: approval status" - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
update_list_items7 fields changed- changed
Input schema / properties / items / descriptionPrevious value: -"Given fields change; null clears"New value: +"Given fields change; null clears. {id, values, if_updated_at}" - removed
Input schema / properties / items / items / properties / if_updated_atRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / items / items / properties / values / additionalPropertiesRemoved value: -{} - removed
Input schema / properties / items / maxItemsRemoved value: -500 - removed
Input schema / properties / items / minItemsRemoved value: -1 - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
- Changed
update_plugin12 fields changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: after the person's yes to setup_summary, or the approve_url status"New value: +"After the person's yes to setup_summary, or for the approve_url status" - removed
Input schema / properties / form_html / maxLengthRemoved value: -204800 - removed
Input schema / properties / forms / additionalPropertiesRemoved value: -{} - changed
Input schema / properties / forms / descriptionPrevious value: -"Forms: the whole settings, as add_plugin forms (same as settings)"New value: +"Forms: as settings" - changed
Input schema / properties / lang / descriptionPrevious value: -"The <html lang> of the page the snippet goes on (e.g. de): snippet_html then speaks it. One snippet per language on a multilingual site"New value: +"The <html lang> of the snippet's page (e.g. de); one snippet per language" - removed
Input schema / properties / patch / additionalPropertiesRemoved value: -{} - added
Input schema / properties / recipients / descriptionAdded value: +"{add: an extra inbox, for every site on the plan (needs Manage)}" - removed
Input schema / properties / recipients / propertiesRemoved value: -{ - "add": { - "description": "An extra inbox for this kind of notification, for every site on the plan (needs permission to change access and settings)", - "type": "string" - } -} - removed
Input schema / properties / recipients / requiredRemoved value: -[ - "add" -] - removed
Input schema / properties / settings / additionalPropertiesRemoved value: -{} - changed
Input schema / properties / site / descriptionPrevious value: -"Site name, e.g. brave-otter-4821"New value: +"Site name" - changed
Output schema / (root)Previous value: -{ - "additionalProperties": {}, - "properties": { - "agent_message": { - "type": "string" - }, - "confirm_token": { - "type": "string" - }, - "error": { - "description": "On failure (isError): {code, message}" - } - }, - "type": "object" -}New value: +null
2 tool updates
- Changed
add_people3 fields changed- changed
Input schema / properties / notify / descriptionPrevious value: -"visitor: email each new address (default true)"New value: +"member: email each new address (default true)" - changed
Input schema / properties / role / descriptionPrevious value: -"Required unless confirm_token. An audience (students, clients) is visitor (an invited visitor): sees only the invite-only site. viewer is a collaborator: also sees versions and people. workspace_visitor: views every site of the workspace in the app, read-only"New value: +"Required unless confirm_token. collaborator (old name editor): a Site Collaborator, edits. An audience (students, clients) is member (old name visitor; a Site Member): sees only the invite-only site. viewer: a Site Viewer, also sees versions and people. workspace_viewer (old name workspace_visitor): a Workspace Viewer, views every site of the workspace in the app, read-only" - changed
Input schema / properties / role / enumPrevious value: -[ - "editor", - "viewer", - "visitor", - "workspace_visitor" -]New value: +[ + "editor", + "collaborator", + "viewer", + "visitor", + "member", + "workspace_visitor", + "workspace_viewer" +]
- Changed
move_sites1 field changed- changed
Input schema / properties / people / descriptionPrevious value: -"Site Editor emails to invite"New value: +"Site Collaborator emails to invite"
25 tool updates
- Changed
add_booking2 fields changed- changed
Input schema / properties / plugin_id / descriptionPrevious value: -"From list_plugins"New value: +"Default: the site's booking page" - changed
Input schema / requiredPrevious value: -[ - "site", - "plugin_id" -]New value: +[ + "site" +]
- Added
add_list_items - Changed
add_people2 fields changed- changed
Input schema / properties / role / descriptionPrevious value: -"Required unless confirm_token. An audience (students, clients) is visitor (an invited visitor): sees only the invite-only site. viewer is a collaborator: also sees versions and people"New value: +"Required unless confirm_token. An audience (students, clients) is visitor (an invited visitor): sees only the invite-only site. viewer is a collaborator: also sees versions and people. workspace_visitor: views every site of the workspace in the app, read-only" - changed
Input schema / properties / role / enumPrevious value: -[ - "editor", - "viewer", - "visitor" -]New value: +[ + "editor", + "viewer", + "visitor", + "workspace_visitor" +]
- Changed
approve_booking3 fields changed- changed
Input schema / properties / item_id / descriptionPrevious value: -"From list_plugin_data"New value: +"From get_lists" - changed
Input schema / properties / plugin_id / descriptionPrevious value: -"From list_plugins"New value: +"Default: the site's booking page" - changed
Input schema / requiredPrevious value: -[ - "site", - "plugin_id", - "item_id" -]New value: +[ + "site", + "item_id" +]
- Added
bind_list - Changed
cancel_booking6 fields changed- added
Input schema / additionalPropertiesAdded value: +{} - removed
Input schema / properties / close_waitlistRemoved value: -{ - "description": "A class booking: nobody waiting is offered the place; they are told no place will open", - "type": "boolean" -} - changed
Input schema / properties / item_id / descriptionPrevious value: -"From list_plugin_data"New value: +"From get_lists" - changed
Input schema / properties / plugin_id / descriptionPrevious value: -"From list_plugins"New value: +"Default: the site's booking page" - removed
Input schema / properties / whole_classRemoved value: -{ - "description": "A class booking: cancel this class time for everyone booked in, in one step", - "type": "boolean" -} - changed
Input schema / requiredPrevious value: -[ - "site", - "plugin_id", - "item_id" -]New value: +[ + "site", + "item_id" +]
- Added
delete_list - Changed
edit_booking5 fields changed- added
Input schema / additionalPropertiesAdded value: +{} - changed
Input schema / properties / item_id / descriptionPrevious value: -"From list_plugin_data"New value: +"From get_lists" - changed
Input schema / properties / plugin_id / descriptionPrevious value: -"From list_plugins"New value: +"Default: the site's booking page" - added
Input schema / properties / waitlistAdded value: +{ + "description": "A class time (cl_…) or wl_ entry: close its waitlist (bookings stay; the people waiting are emailed) or re-open it", + "enum": [ + "closed", + "open" + ], + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "site", - "plugin_id", - "item_id" -]New value: +[ + "site", + "item_id" +]
- Added
find_visitor_records - Changed
get_account2 fields changed- changed
Input schema / properties / include / descriptionPrevious value: -"Extra sections"New value: +"Extra sections (\"all\": every one but referrals). referrals: the person's own invite link (and invite seats left), only when they ask for it; never suggest it" - changed
Input schema / properties / include / items / enumPrevious value: -[ - "billing", - "usage", - "storage", - "downgrade", - "all" -]New value: +[ + "billing", + "usage", + "storage", + "downgrade", + "notifications", + "referrals", + "all" +]
- Added
get_free_slots - Added
get_lists - Changed
get_site1 field changed- added
Input schema / properties / checkAdded value: +{ + "description": "accessibility: the full Accessibility check of the live pages (problems, where, how to fix)", + "enum": [ + "accessibility" + ], + "type": "string" +}
- Added
import_list_items - Removed
list_plugin_data - Changed
mark_messages2 fields changed- changed
Input schema / properties / item_ids / descriptionPrevious value: -"From list_plugin_data, or notice ids (nt_…) from get_account"New value: +"From get_lists, or notice ids (nt_…) from get_account" - changed
Input schema / properties / plugin_id / descriptionPrevious value: -"Not needed for notice ids or all"New value: +"Optional: found from item_ids"
- Added
remove_list_items - Changed
rollback2 fields changed- added
Input schema / properties / revision / anyOfAdded value: +[ + { + "type": "string" + }, + { + "exclusiveMinimum": 0, + "type": "integer" + } +] - removed
Input schema / properties / revision / typeRemoved value: -"string"
- Added
save_list - Changed
set_booking_outcome3 fields changed- changed
Input schema / properties / item_id / descriptionPrevious value: -"From list_plugin_data"New value: +"From get_lists" - changed
Input schema / properties / plugin_id / descriptionPrevious value: -"From list_plugins"New value: +"Default: the site's booking page" - changed
Input schema / requiredPrevious value: -[ - "site", - "plugin_id", - "item_id", - "outcome" -]New value: +[ + "site", + "item_id", + "outcome" +]
- Changed
site_settings12 fields changed- changed
Input schema / properties / notifications / descriptionPrevious value: -"Emails to the account for every site on the plan: auto (as they come, then a daily summary over the plan's daily number), daily or off"New value: +"The caller's own emails: per category auto (as they come), daily (one summary) or off, or {email, in_app}; health = site alerts: down/up, traffic drop (auto or off); domain_live/domain_reminder (Site Owner); product_news (opt-in); scope site (this site) or all (default)" - added
Input schema / properties / notifications / properties / bookings / anyOfAdded value: +[ + { + "enum": [ + "auto", + "daily", + "off" + ], + "type": "string" + }, + { + "properties": { + "email": { + "enum": [ + "auto", + "daily", + "off" + ], + "type": "string" + }, + "in_app": { + "type": "boolean" + } + }, + "type": "object" + } +] - removed
Input schema / properties / notifications / properties / bookings / enumRemoved value: -[ - "auto", - "daily", - "off" -] - removed
Input schema / properties / notifications / properties / bookings / typeRemoved value: -"string" - added
Input schema / properties / notifications / properties / domain_liveAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / notifications / properties / domain_reminderAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / notifications / properties / forms / anyOfAdded value: +[ + { + "enum": [ + "auto", + "daily", + "off" + ], + "type": "string" + }, + { + "properties": { + "email": { + "enum": [ + "auto", + "daily", + "off" + ], + "type": "string" + }, + "in_app": { + "type": "boolean" + } + }, + "type": "object" + } +] - removed
Input schema / properties / notifications / properties / forms / enumRemoved value: -[ - "auto", - "daily", - "off" -] - removed
Input schema / properties / notifications / properties / forms / typeRemoved value: -"string" - added
Input schema / properties / notifications / properties / healthAdded value: +{ + "anyOf": [ + { + "enum": [ + "auto", + "daily", + "off" + ], + "type": "string" + }, + { + "properties": { + "email": { + "enum": [ + "auto", + "daily", + "off" + ], + "type": "string" + }, + "in_app": { + "type": "boolean" + } + }, + "type": "object" + } + ] +} - added
Input schema / properties / notifications / properties / product_newsAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / notifications / properties / scopeAdded value: +{ + "enum": [ + "site", + "all" + ], + "type": "string" +}
- Added
sort_list_items - Added
undo_list_change - Added
update_list_items - Changed
update_plugin1 field changed- added
Input schema / properties / formsAdded value: +{ + "additionalProperties": {}, + "description": "Forms: the whole settings, as add_plugin forms (same as settings)", + "type": "object" +}
2 tool updates
- Changed
cancel_booking1 field changed- added
Input schema / properties / whole_classAdded value: +{ + "description": "A class booking: cancel this class time for everyone booked in, in one step", + "type": "boolean" +}
- Changed
deploy1 field changed- changed
Input schema / properties / workspace / descriptionPrevious value: -"New sites: this workspace (id or name from get_account) or \"private\" (the person's own private site). Omitted: the only paid workspace, else private; required when the person is in several"New value: +"New sites: this workspace (id or name from get_account) or \"private\" (the person's own personal site). Omitted: the only place the site can go; when it could be personal or in a workspace (or one of several), nothing is published and the reply asks the user which"
1 tool update
- Changed
site_settings1 field changed- added
Input schema / properties / searchAdded value: +{ + "description": "Search: ai_training, ai_answers (robots.txt requests; default allow), primary_domain (main custom domain; null: first connected), domain_redirect (default false), review_url, steps (Get found ticks)", + "properties": { + "ai_answers": { + "enum": [ + "allow", + "block" + ], + "type": "string" + }, + "ai_training": { + "enum": [ + "allow", + "block" + ], + "type": "string" + }, + "domain_redirect": { + "type": "boolean" + }, + "primary_domain": { + "type": [ + "string", + "null" + ] + }, + "review_url": { + "type": [ + "string", + "null" + ] + }, + "steps": { + "properties": { + "apple": { + "type": "boolean" + }, + "bing": { + "type": "boolean" + }, + "gbp": { + "type": "boolean" + }, + "review_link": { + "type": "boolean" + }, + "search_console": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" +}
3 tool updates
- Changed
cancel_booking1 field changed- added
Input schema / properties / close_waitlistAdded value: +{ + "description": "A class booking: nobody waiting is offered the place; they are told no place will open", + "type": "boolean" +}
- Changed
get_analytics1 field changed- added
Input schema / properties / recentAdded value: +{ + "description": "Also return recent_events, counts per event over the last 30 minutes (to check a test tap)", + "type": "boolean" +}
- Changed
site_settings1 field changed- added
Input schema / properties / analyticsAdded value: +{ + "description": "Click counting (clicks), kinds on or off (contact = phone, email and messaging), labels {event key or name: display name, null removes}, hidden (replaces the list)", + "properties": { + "clicks": { + "type": "boolean" + }, + "hidden": { + "items": { + "type": "string" + }, + "type": "array" + }, + "kinds": { + "properties": { + "contact": { + "type": "boolean" + }, + "downloads": { + "type": "boolean" + }, + "named": { + "type": "boolean" + }, + "outbound": { + "type": "boolean" + } + }, + "type": "object" + }, + "labels": { + "additionalProperties": { + "type": [ + "string", + "null" + ] + }, + "type": "object" + } + }, + "type": "object" +}
4 tool updates
- Added
bring_back_sites - Added
leave_workspace - Added
move_sites - Changed
update_plugin1 field changed- changed
Input schema / properties / confirm_token / descriptionPrevious value: -"From the first call: the approve_url status"New value: +"From the first call: after the person's yes to setup_summary, or the approve_url status"
Related MCP Connectors
Publish and edit static websites on a free subdomain, just by chatting.
Publish static websites to a live URL from chat. Write HTML/CSS/JS, get a hosted site and edit link.
Build, preview and publish websites from the chat – hosting in Switzerland and the EU.
Build a real website from a chat — then run it: read messages, check traffic, publish changes.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceEnables users to build, publish, share, and manage websites, dashboards, reports, and small web tools through chat, including updating content and design, managing access and custom domains, and restoring deployments.7MIT- AlicenseNot gradedqualityDmaintenancePublish the website you built with AI to a live public URL — straight from chat, no setup. Enables deploying static sites and updating them with edit tokens.1MIT

SnapHostofficial
AlicenseNot gradedqualityBmaintenanceSend a live, private link to a client from Claude. SnapHost publishes what your assistant builds as a shareable website with a stable URL, updates it in place, restricts viewers by email or password, rolls back bad versions, serves custom domains, and stores form and waitlist data with no backend.MIT
RedStudio MCPofficial
AlicenseAqualityCmaintenanceLets AI assistants publish and edit pages, components, media and blog posts on a hosted RedStudio website, with shop, Stripe payments, bookings and event tickets included. Site settings, redirects, booking hours and revisions are all managed through the assistant instead of a separate backend.2924 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.