Skip to main content
Glama

Server Details

MCP server that enables AI assistants like Claude and ChatGPT to retrieve event data and execute event management operations in Nunify event platform.

Ownership verified
Status
Healthy
Uptime
23.4% over 23 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

B3.2/5.0

Scored across 129 tools

Disambiguation4/5

Most tools have clearly distinct resource+action purposes, and the read_* aggregator tools explicitly document their action dispatch. A few boundaries are blurry, especially read_agenda/read_speakers/read_sponsors versus read_event_content, and read_site/read_site_pages/read_site_sections, but descriptions generally resolve them.

Naming Consistency4/5

The tool set overwhelmingly follows snake_case verb_noun naming, with predictable patterns like create_*, read_*, update_*, delete_*, publish_*, and reorder_*. Minor inconsistencies appear in pluralized bulk creates such as create_sessions, create_speakers, and create_locations versus singular single-item creates.

Tool Count1/5

129 tools is an extreme surface for one server, even for a broad event-management platform. The set is likely to overwhelm tool selection and contains many closely related CRUD and site-builder operations that could be consolidated via dispatch actions.

Completeness4/5

Coverage is very broad across events, registration, attendees, tickets, orders, agenda, speakers, sponsors, exhibitors, surveys, polls, mailers, notifications, site building, analytics, and flows. Minor lifecycle gaps remain, such as no update_event/delete_event and limited explicit check-in management, but most core workflows are represented.

Available Tools

129 tools
activate_mailerActivate MailerA
Destructive
Inspect

Activate a mailer. For reminder/promotion/certificate mailers this queues sending to real recipients and cannot be undone.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
mailer_idYesUUID of the mailer to activate.

Output Schema

NameRequiredDescription
hintYes
mailerYes
messageYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and non-idempotent, so the bar is lower; the description still adds real value by disclosing that activation queues delivery to actual recipients and is irreversible. It stops short of noting permissions, whether the mailer can be deactivated afterward, or what a partially-queued state means.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero waste, with the core action first and the risk warning immediately after. Nothing is repeated or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and annotations covering the safety profile, the description supplies the key missing piece: that this triggers real sending and is irreversible. The remaining gap is routing guidance relative to send_test_mailer/deactivate_mailer, which an agent would still have to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both required parameters (event_id, mailer_id) carry their own descriptions, so the schema does the heavy lifting. The description adds no extra meaning about parameter formats or constraints, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Activate a mailer") and the second sentence clarifies the effect (queues sending to real recipients). It implicitly distinguishes itself from send_test_mailer by emphasizing real recipients, but never names the sibling, so differentiation is only partial.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the final, production-sending step for reminder/promotion/certificate mailers, which is useful context. However, it gives no explicit guidance on when to use it versus send_test_mailer, deactivate_mailer, or publish-style siblings, and no preconditions (e.g., preview or test first) are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_attendees_to_groupsAdd Attendees To GroupsAInspect

Add attendees to static groups. Use read_attendees for attendee ids and read_groups for manageable group ids.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
user_group_pairsYes

Output Schema

NameRequiredDescription
addedYes
messageYes
skipped_existingYes
user_group_pairsYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description doesn't need to restate safety. It does add value with the "static groups" constraint and the "manageable" permission hint, but it never says what happens on duplicate membership or with an invalid group id — relevant given idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, with the purpose front-loaded and the id-sourcing guidance following. Nothing could be cut without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be explained, and the description covers purpose, the static-group constraint, and where to source both ids. The remaining gap is duplicate/error behavior on the pair array, which matters for a non-idempotent mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: event_id is documented in the schema, but the nested user_id and group_id fields are bare. The description partially compensates by pointing to read_attendees and read_groups as the id sources, but nothing explains the pair-batch batching semantics or whether pairs must be homogeneous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Add attendees to static groups"), and the word "static" usefully narrows the operation versus dynamic groups or the sibling remove_attendees_from_groups. It does not explicitly name the counterpart tool, so an agent must infer the add/remove pairing from the verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete prerequisite routing: use read_attendees for attendee ids and read_groups for manageable group ids. That is real when-to-use context, but there are no exclusions such as what to do if a group is dynamic or if an attendee is already in the group.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_site_blockAdd Site BlockAInspect

Add a new block to a registration site section. Use get_site_block_schema to see valid block types and their editable properties.

NameRequiredDescriptionDefault
page_idYesPage UUID.
event_idYesEvent UUID returned by search_events.
positionNoTarget position within the section (optional, appended by default).
block_typeYesBlock type name from get_block_schema.
propertiesNoOptional properties to set on the new block (merged on top of defaults).
section_idYesSection UUID.

Output Schema

NameRequiredDescription
hintYes
messageYes
sectionYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and idempotentHint=false, so the agent knows this is a non-idempotent write. The description adds a discovery pointer but says nothing about preconditions (must page/section exist?), failure behavior, or what the returned block looks like; the 'appended by default' behavior is already covered by the position parameter's schema text.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the core action stated first and the prerequisite second. Nothing could be removed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists and annotations plus full schema coverage handle most of the burden, so a short description is defensible for a create operation. The remaining gap is the dangling reference to a schema tool whose name is inconsistent with the parameter description and absent from the sibling list, which is the one thing an agent could trip on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all six parameters, including the nested 'properties' object and the position default, so the schema carries the parameter burden. The description only reinforces block_type semantics by pointing at the schema tool; it adds no format, merge-order, or valid-value detail beyond structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Add a new block to a registration site section,' which is unmistakably distinct from update_site_block, remove_site_block and reorder_site_blocks. It stops short of naming those siblings explicitly, so differentiation is inferred from the verb rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one useful prerequisite: consult the block-schema tool before choosing block_type. However, it offers no guidance on when to use this versus update_site_block or reorder_site_blocks, and the referenced tool name ('get_site_block_schema') neither matches the schema's own reference ('get_block_schema') nor appears in the sibling list, leaving the agent unsure which call to make.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_site_section_presetAdd Site Section PresetAInspect

Add a preset section to a registration site page by preset name. Use list_site_section_presets to see available preset names.

NameRequiredDescriptionDefault
page_idYesPage UUID.
event_idYesEvent UUID returned by search_events.
positionNoTarget position (optional, appended by default).
preset_nameYesPreset name from list_site_section_presets.

Output Schema

NameRequiredDescription
hintYes
messageYes
sectionYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description need not restate safety. However, it adds no context about the non-idempotent behavior (repeated calls create duplicate sections) or what happens if the preset is invalid, leaving gaps the annotations only imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the action front-loaded and the dependency hint following; there is no filler and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full schema coverage, the description needs only purpose and routing, both of which it supplies. It is slightly thin on mutation prerequisites (page state, event/page relationship), but nothing essential to invoking the tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented, including the fact that position defaults to append and that preset_name comes from list_site_section_presets. The description largely repeats the schema's preset_name hint and says nothing extra about position semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (add) and resource (a preset section on a registration site page) and scopes it by preset name. It is clearly distinct from add_site_block and remove_site_section, though it never explicitly contrasts itself with add_site_block, which is the nearest sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use list_site_section_presets to see available preset names" gives an explicit discovery workflow for the required preset_name argument. It does not state when to choose this over add_site_block or what preconditions (draft page, existing page) apply.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

archive_flowArchive Zuno FlowB
Destructive
Inspect

Archive a Zuno flow. It leaves the lists and runs in progress end.

NameRequiredDescriptionDefault
flow_idYesFlow UUID returned by list_flows.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
flowYes
messageYes

TDQS

B3.1/5.0
Behavior3/5

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 profile is covered. The description does add a genuinely useful consequence: the flow leaves lists and in-progress runs end — though the garbled phrasing ('runs in progress end') blunts the disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences is appropriately sized and the purpose is front-loaded. The second sentence is ungrammatical and ambiguous ('runs in progress end'), so brevity comes at the cost of clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full annotations, and complete parameter documentation, the structured fields carry most of the burden. The description is minimally adequate but omits reversibility, permissions, and the archive-vs-unpublish distinction for a destructive mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented with their source tools (list_flows, search_events). The description adds nothing about flow_id or event_id, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Archive a Zuno flow') that is easy to separate from create_flow, update_flow, and delete_* siblings. It does not, however, distinguish archiving from unpublish_flow, which is the closest ambiguous neighbor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to archive instead of unpublish_flow or delete, and no prerequisites or reversibility notes. The agent must infer the choice entirely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ban_attendeeBan AttendeeBInspect

Ban one attendee from the provided event and unsubscribe them from push channels.

NameRequiredDescriptionDefault
user_idYesAttendee user UUID.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
messageYes
attendeeYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the safety profile (non-destructive, non-idempotent, closed-world). The description adds the side effect of unsubscribing from push channels, which is useful behavioral context. However, it does not mention permission requirements, reversibility, or 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with zero waste. It efficiently conveys the core action and key side effect.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that annotations cover safety and an output schema exists, the description is largely complete for an agent to invoke the tool. The addition of the unsubscription side effect is valuable. Minor gaps include not stating whether the ban is reversible or what happens if the attendee is already banned, but these are not critical for a simple mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are fully documented in the schema with descriptions indicating UUIDs and that event_id comes from search_events. The description adds no additional parameter semantics beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (ban) and resource (attendee), specifies the scope ('provided event'), and adds the secondary action of unsubscribing from push channels. It does not explicitly differentiate itself from siblings like unban_attendee or delete_attendee, but the action is clear enough to distinguish.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It merely states what the tool does, leaving the agent to infer the appropriate context from the tool name and other information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

close_pollClose PollA
Destructive
Inspect

Close a published poll so no new answers can be submitted for the provided event. Use reopen_poll to allow answers again.

NameRequiredDescriptionDefault
poll_idYesUUID of the published poll to close.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
pollYes
messageYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and readOnlyHint=false; the description earns credit by adding the actual behavioral consequence (answer submission is blocked) and by pointing at reopen_poll, which signals the change is reversible. It does not address what happens if the poll is already closed or whether an error/rate limit applies, which matters given idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the state-changing effect is front-loaded, and the recovery path follows immediately. Nothing is repeated from the schema or the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Return values are covered by the output schema and both required params are documented, so the definition is essentially callable as written. The only gap is behavior on an already-closed poll, which is relevant given idempotentHint=false.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are described in the schema itself (poll_id as UUID of the published poll, event_id as an Event UUID from search_events). The description adds no additional parameter meaning beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Close a published poll') plus the concrete effect ('so no new answers can be submitted for the provided event'), which lets an agent distinguish it from delete_poll, publish_poll, and the survey equivalents 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative and the condition that selects it ('Use reopen_poll to allow answers again'), giving clear when/when-not guidance. It does not discuss other plausible alternatives such as delete_poll or unpublishing, so it falls short of fully exhaustive routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

close_surveyClose SurveyA
Destructive
Inspect

Close a published survey for the provided event so no new responses can be submitted. Use reopen_survey to allow responses again.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
survey_idYesUUID of the published survey to close.

Output Schema

NameRequiredDescription
hintYes
surveyYes
messageYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds real value beyond them by stating the operational meaning (no new responses accepted) and pointing at the undo path, though it does not clarify whether existing responses are preserved or whether a second call errors despite idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the effect statement front-loaded ahead of the recovery pointer. Nothing could be removed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values need no explanation, and the two required params are fully covered by the schema. For a destructive state-change tool, the description could still say what state the survey lands in and whether existing responses survive, which keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are fully documented in the schema. The description only lightly adds meaning ('published survey' implies a state constraint on survey_id), which is enough for the baseline 3 but nothing more.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource (close a published survey), scopes it to an event, and states the concrete effect: no new responses can be submitted. It also names the inverse sibling reopen_survey, distinguishing it from publish_survey/delete_survey in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent to reopen_survey for the reverse operation, which gives a clear when-to-use-this-instead signal. It lacks any precondition guidance (e.g. what happens if the survey is not published or already closed), so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_additional_user_fieldCreate Additional User FieldAInspect

Create one additional user field for the provided event's default registration flow. Before using this tool, check registration metadata default_fields and existing additional_fields. If the requested field matches a default field such as company, designation, phone, about, external_id, date_of_birth, email, first_name, last_name, or image, use update_default_user_field instead.

NameRequiredDescriptionDefault
nameYesField name.
configNo
optionsNoOptions for non-session option fields.
visibleNoWhether this field is visible on the registration form.
event_idYesEvent UUID returned by search_events.
positionNo
data_typeYesField data-type code. Do not guess: read the valid codes from read_registration action get_registration_form_metadata (additional_field_types).
mandatoryNoWhether this field is mandatory on the registration form.
dependencyNo
session_idsNoRequired for session-select fields. Pass selected session ids here instead of options.
ticket_type_idsNo

Output Schema

NameRequiredDescription
hintYes
fieldYes
messageYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds a valuable prerequisite workflow (read metadata before creating) but says nothing about side effects on the live registration form, whether duplicate names are rejected, or whether the field goes live immediately. Useful addition, but not rich behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action and followed by the prerequisite and the routing rule. The default-field enumeration is long but functional rather than filler; nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter mutation with nested objects, the description covers purpose, precondition and correct alternative, and an output schema exists so return values need no explanation. What's missing is guidance on the complex optional parameters (config, dependency, options vs session_ids) that the schema only partially documents.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 64% and 11 parameters exist, so several (config, position, dependency, ticket_type_ids) are undocumented in both schema and description. The description's main contribution is semantic: it defines which names are reserved default fields, which meaningfully constrains the required `name` parameter. That is real added value, but it does not compensate for the remaining gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (create), resource (additional user field) and scope (the provided event's default registration flow). It also names the sibling it must not be confused with (update_default_user_field) and enumerates the reserved default field names, so the agent can distinguish it from related tools 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit pre-flight step (check registration metadata default_fields and existing additional_fields) and a hard routing rule: if the requested name matches a default field, use update_default_user_field instead. This is exactly the when-to-use/when-not-to-use/alternative structure that scores top marks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_addonCreate AddonAInspect

Create ticket addons in batches of 10 in the provided event. If there are more than 10 addons, create the first 10, then continue with the next 10 until all are created.

NameRequiredDescriptionDefault
addonsYesAddons to create. Include no more than 10 addons here. If there are more than 10 addons total, provide the first 10 here, then continue with the next 10.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
countYes
addonsYes
messageYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations only declare readOnly=false, destructive=false, idempotent=false; the description adds the non-obvious trait that the tool is batch-limited to 10 items and must be called repeatedly for larger sets. That is genuine behavioral context beyond the structured fields. It stops short of covering partial-failure or duplicate-handling behavior, which matters for a non-idempotent write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler, front-loading the core action and then the batching constraint an agent must respect. Nothing could be removed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and the critical batching loop is documented. Remaining gaps are minor but real: the relationship between addons and ticket_type_ids, and what happens if a mid-batch call fails, are left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% at the top level, so the schema carries the parameter documentation and baseline 3 applies. The description adds only the 10-item batching constraint (already mirrored in the addons schema description) and says nothing about nested fields such as amount, quantity, is_enabled, or ticket_type_ids.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Create ticket addons") plus scope ("in the provided event"), which is far more informative than the bare title. It distinguishes itself from update_addon/delete_addon by naming the create action, though it never explicitly contrasts with those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a procedure for the >10 case, which implies when and how to call repeatedly, but it never states prerequisites (event must exist, permissions) or when to prefer update_addon over re-creating. Usage is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_attendeeCreate AttendeeAInspect

Create attendees in batches of 10 in the provided event. If there are more than 10 attendees, create the first 10, then continue with the next 10 until all are created. Use read_attendees to inspect attendees, read_groups for group ids, read_interests action 'list' for interest ids, and read_services action 'list' for service ids.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
attendeesYesAttendees to create. Every attendee must include first_name and the event's unique identifier. If a required value is missing for any attendee, ask the user before proceeding. Never invent missing required values. Include no more than 10 attendees here. If there are more than 10 attendees total, provide the first 10 here, then continue with the next 10.

Output Schema

NameRequiredDescription
hintYes
countYes
messageYes
attendeesYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (not read-only, not destructive, not idempotent), so the bar is lower. The description adds genuinely operational context: the execution loop for >10 attendees, which the agent must implement itself. It doesn't warn that non-idempotent retries of a partially completed batch will duplicate attendees, nor what happens on per-attendee validation failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action, then the batching procedure, then dependency routing. Slight redundancy: the >10 instruction appears here and again in the attendees parameter description, and the 'Provided event' phrasing adds nothing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 2 parameters, full schema coverage, and an output schema covering returns, the description is nearly sufficient. What's missing for a bulk mutation is failure semantics — partial success, duplicate detection, and whether the caller should stop the loop on error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description's 'batches of 10' restates the schema's maxItems constraint, and its id-lookup hints largely duplicate schema text ('Use read_interests action \'list\' to get valid ids'). It adds little semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource+scope: 'Create attendees in batches of 10 in the provided event.' The batching constraint and event scoping distinguish it immediately from update_attendee, delete_attendee, and add_attendees_to_groups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete prerequisite routing — read_attendees for inspection, read_groups for group ids, read_interests/read_services action 'list' for valid ids — so an agent knows what to call first. It stops short of stating when not to use this tool (e.g., adding existing attendees to groups, or updating already-created attendees).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_coupon_codeCreate Coupon CodeAInspect

Create coupon codes in batches of 10 in the provided event. If there are more than 10 coupon codes, create the first 10, then continue with the next 10 until all are created.

NameRequiredDescriptionDefault
couponsYesCoupon codes to create. Include no more than 10 coupon codes here. If there are more than 10 coupon codes total, provide the first 10 here, then continue with the next 10.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
countYes
couponsYes
messageYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare this is a non-readonly, non-idempotent, non-destructive mutation, so the safety profile is covered. The description adds the important batch-of-10 constraint, but it is ambiguous about whether the tool loops internally or the caller must issue repeated calls — the schema implies the caller must, while the description reads as if the tool handles it. That ambiguity is exactly the kind of behavior an agent needs disambiguated for a repeat-invocation pattern.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and scope, then the batching rule. No filler, no repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 mutation semantics are covered by annotations. What is missing is the one thing that actually determines correct invocation behavior: who performs the batching — the tool or the agent issuing successive calls — and what happens if a coupon code already exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents event_id, the coupon object fields, and the maxItems=10 cap. The description restates the 10-item batch limit but adds no meaning about the per-coupon fields (discount_type, quantity, ticket_type_ids) beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create coupon codes') plus a scope ('in the provided event'), which cleanly separates it from update_coupon_code and delete_coupon_code. It does not explicitly name those siblings, so differentiation relies on the reader's inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The batching rule ('create the first 10, then continue with the next 10') is genuine operational guidance for using the tool. However, there is no statement of when to choose this over update_coupon_code, no prerequisite that event_id comes from search_events (that lives only in the schema), and no guidance on duplicate codes or how to handle partial failure.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_eventCreate EventAInspect

Create a new event in one of your teams. The event code is auto-generated from the name, and provisioning sets up the full default event (registration form, ticketing, configs). Pass template_id to copy an existing accessible event's layout and content instead - that content copy runs asynchronously after the event is created. team_id is only needed when you belong to multiple teams; team ids appear as team.id in search_events results.

NameRequiredDescriptionDefault
kindNoEvent kind. Defaults to event.
nameYesEvent name. The event code is generated from it.
team_idNoTeam UUID to create the event in. Optional when you belong to exactly one team; team ids appear as team.id in search_events results.
timezoneNoIANA timezone name for the event, e.g. Europe/Berlin. Defaults to Asia/Kolkata.
start_dateNoEvent start date (YYYY-MM-DD) in the event timezone. Defaults to 14 days from now.
template_idNoOptional event UUID to copy from: an app template or an event you can access. Also how an existing event is duplicated.
copy_contentNoWith template_id: copy the template's content. Defaults to true.
copy_collaboratorsNoWith template_id: copy the template's collaborators. Defaults to false.

Output Schema

NameRequiredDescription
hintYes
eventYes
messageYes

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false, non-idempotent), the description adds meaningful behavioral context: the event code is auto-generated from the name, default provisioning includes registration form, ticketing, and configs, and template content copying runs asynchronously after creation. These details help an agent understand side effects and timing, though it doesn't cover failure modes 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and efficiently packs key behavioral notes into four well-structured sentences. Every sentence contributes essential information without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters) and the presence of an output schema, the description covers all essential aspects an agent needs to invoke it correctly: default provisioning, template copying behavior (including async), and team context. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds value by explaining the async nature of template content copying and clarifying the 'instead' semantics of template_id (replacing default provisioning). It also succinctly restates the team_id condition, though other parameters rely on the schema for details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Create') and resource ('event'), and specifies scope ('in one of your teams'). It distinguishes this tool from other create_* siblings by focusing on events and explains the unique auto-generation of event code, leaving no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to pass template_id (to copy an existing event's layout and content instead) and when team_id is needed (only when belonging to multiple teams). It stops short of explicitly stating when not to use this tool or naming a direct alternative for event creation, which is reasonable given no sibling performs the same core action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_exhibitorCreate ExhibitorBInspect

Create exhibitors in batches of 10 in the provided event. If there are more than 10 exhibitors, create the first 10, then continue with the next 10 until all are created.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
exhibitorsYesExhibitors to create. Include no more than 10 exhibitors here. If there are more than 10 exhibitors total, provide the first 10 here, then continue with the next 10.

Output Schema

NameRequiredDescription
hintYes
countYes
messageYes
exhibitorsYes
feature_selection_idYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-idempotent, non-destructive write, so the safety profile is covered. The description adds genuinely useful behavior about the 10-item batch limit and iterative continuation, but says nothing about duplicate handling, partial-failure behavior, or required permissions for a creation tool that is explicitly non-idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action and the batch constraint. The second sentence partially restates what the schema's maxItems description already says, which is mild redundancy, but there is no wasted prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% parameter documentation, the definition is callable as written. However, for a non-idempotent bulk-create tool it omits what an agent would want: duplicate-name behavior, what happens if a batch partially fails, and whether the caller must re-invoke with remaining batches after an error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema itself already documents event_id lookup via search_events, the required name rule, UUID sources for interests/services, and the maxItems=10 continuation pattern. The description repeats the batching constraint but adds no format or validation detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create exhibitors') scoped to a provided event, which clearly separates it from create_exhibitor_category, create_sponsor, and update_exhibitor. It doesn't explicitly name those siblings, but the resource noun is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: add new exhibitors to an event. No guidance is given about when to use create_exhibitor versus update_exhibitor, how to check for existing exhibitors first, or what prerequisites (event must exist) are required. The batching instruction is a procedure, not a selection guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_exhibitor_categoryCreate Exhibitor CategoryBInspect

Create exhibitor categories in batches of 10 in the provided event. If there are more than 10 categories, create the first 10, then continue with the next 10 until all are created.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
categoriesYesExhibitor categories to create. Include no more than 10 categories here. If there are more than 10 categories total, provide the first 10 here, then continue with the next 10.

Output Schema

NameRequiredDescription
hintYes
countYes
messageYes
categoriesYes
feature_selection_idYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent mutation, so safety is covered. The description adds the batching protocol, which is genuine behavioral context, but it omits the important unknowns for a batched write: whether earlier batches persist if a later one fails, duplicate-title handling, and retry behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the verb and the batching constraint. Slightly redundant in restating the 10-item loop twice, but no filler and nothing wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and annotations exist, so return-shape and safety needn't be explained. However, for a batched create tool, the description should clarify partial-failure and duplicate behavior so an agent knows whether to retry; that gap leaves it only adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented, including the maxItems:10 batching note. The description repeats that same batching semantics rather than adding new meaning beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Create') plus specific resource ('exhibitor categories') scoped to a provided event. The name overlaps with create_exhibitor, but the description's resource wording still disambiguates. It stops short of naming a sibling or exclusion explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a usage protocol for >10 categories (create in batches of 10, iterating), which implies the call pattern. But there is no statement of prerequisites (e.g., needing a valid event_id from search_events), no when-not guidance, and no mention of update_exhibitor_category as the alternative for existing categories.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_flowCreate Zuno FlowAInspect

Create a draft Zuno flow from a template (template_key) or from a definition (spec). The draft is not visible to attendees until publish_flow. The response carries the draft's validation.

NameRequiredDescriptionDefault
nameNoOverrides the name in the template or spec.
specNoThe flow definition (ZUNO-SPEC-01 section 5): name, description, intro, steps (single_select, multi_select, text, rating, number; options with ids), output (generate with prompt_template and tools, handoff with category, or record), entry (card, ask, link) and settings. Text fields are plain strings or {default_ln: ...} maps. Use validate_flow to check it.
event_idYesEvent UUID returned by search_events.
group_idsNoGroup UUIDs when access_level is groups.
access_levelNoWho may start it. Default everyone.
template_keyNoA key from list_flow_templates. Either template_key or spec.

Output Schema

NameRequiredDescription
flowYes
hintYes
messageYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare a non-destructive, non-idempotent write, and the description adds real value beyond them: the created object is a non-public draft, its visibility flips only at publish_flow, and the response carries validation output. It doesn't mention auth/permission requirements, but the draft-state semantics are exactly the kind of context annotations can't convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and the two input modes, then the lifecycle constraint, then the return signal. No filler and nothing redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description needn't enumerate return fields, and it still flags the validation payload. For a 6-parameter create tool with full annotation and schema coverage, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds the either/or semantics between template_key and spec that the schema only gestures at ('Either template_key or spec'), and the schema's spec description is unusually detailed. Marginal added value above the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a draft Zuno flow') and names the two mutually exclusive creation modes (template_key vs spec). The mention of publish_flow and the validation in the response clearly separates it from sibling tools like update_flow, publish_flow, and validate_flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the lifecycle context — the draft is invisible to attendees until publish_flow — which tells an agent this is step one in a create/publish workflow, and the schema nudges toward validate_flow before submitting a spec. It stops short of explicitly contrasting with update_flow or stating prerequisites like event ownership.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_groupCreate GroupAInspect

Create a static or dynamic group for the provided event. Pass rule_sets to create a dynamic group (users matching the rules are added in the background). Omit rule_sets for a static group. For dynamic groups, use read_groups with action 'list_rule_fields' first and only use field_name values returned for the event.

NameRequiredDescriptionDefault
nameYesGroup name. Required. If the user has not provided it, ask the user before proceeding. Never invent group names.
event_idYesEvent UUID returned by search_events.
rule_setsNoRule sets for creating a dynamic group. Omit for a static group.

Output Schema

NameRequiredDescription
hintYes
groupYes
messageYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the write semantics are already structured. The description adds a genuinely new behavioral trait: dynamic membership is applied asynchronously ("users matching the rules are added in the background"). It does not cover permissions, whether duplicate group names are rejected, or what happens if the rules match nobody.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no padding, and the static-vs-dynamic decision is front-loaded before the prerequisite detail. Every sentence carries a distinct instruction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. For a 3-parameter create tool with annotations covering the safety profile and a fully documented schema, the description supplies the one missing piece an agent cannot get from structured fields: the conditional mode selection and the prerequisite field-lookup step.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents name, event_id, rule_sets and the nested rule fields. The description's parameter guidance (omit rule_sets for static, only use field_name values from list_rule_fields) largely restates the schema's own field descriptions, adding only the background-matching behavior, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Create a static or dynamic group") and immediately distinguishes the two creation modes an agent must choose between. The read_groups reference signals how this tool relates to the group-management siblings (read_groups, delete_group, add_attendees_to_groups).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit branch conditions: pass rule_sets for a dynamic group, omit it for a static one. It also names the required prerequisite step (read_groups with action 'list_rule_fields' first) and the constraint on the values it returns, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_interestCreate InterestAInspect

Create interests in batches of 10 in the provided event. If there are more than 10 interests, create the first 10, then continue with the next 10 until all are created. Each interest automatically creates a backing group with the same name; creation fails if an unrelated group already uses that name.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
interestsYesInterests to create. Include no more than 10 interests here. If there are more than 10 interests total, provide the first 10 here, then continue with the next 10.

Output Schema

NameRequiredDescription
hintYes
countYes
messageYes
interestsYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly=false, destructive=false, idempotent=false, closed-world), yet the description still adds substantive behavior: each interest auto-creates a backing group and creation fails on an unrelated name collision. The collision-driven failure also explains why the tool is non-idempotent. It does not say what happens if a batch partially fails mid-run, keeping it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences with the core action first, then the batching loop, then the group side effect. Slight redundancy with the schema's maxItems/description of 'interests', which already explains the 10-item chunking.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers the side effect, failure mode, and batching workflow an agent must handle. It omits permission/authorization requirements and any partial-failure semantics, which keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented in-schema (event_id from search_events, maxItems=10 on interests). The description's batching text largely restates the schema's own maxItems guidance, adding only marginal meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Create') and resource ('interests') scoped to a single event, and the batching constraint makes it unmistakable against siblings like update_interest, delete_interest, and read_interests. An agent can tell what this does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description spells out the operational loop: create the first 10, then the next 10, until all are created, which is real procedural guidance. It stops short of naming alternatives or exclusions (e.g., when to use update_interest for existing interests, or create_group), so it does not reach a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_locationsCreate LocationsAInspect

Create locations for the provided event. Create locations in batches of 10. If there are more than 10 locations, create the first 10, then continue with the next 10 until all locations are created. Locations are used by sessions, exhibitors, and check-ins.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
locationsYesLocations to create. Every location must include title. If title is missing for any location, ask the user before proceeding. Never invent missing required values. Include no more than 10 locations here. If there are more than 10 locations total, provide the first 10 here, then continue with the next 10.

Output Schema

NameRequiredDescription
countYes
messageYes
locationsYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false; the description contributes the batching constraint, which is a genuine behavioral trait beyond the annotations. It does not address what happens on duplicate room names, whether creation is atomic across the batch, or permission requirements — notable gaps given idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and the whole thing is four short sentences. The batching sentences repeat what the schema's maxItems and locations description already say, so there is some redundancy, but nothing is padded or vague.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full annotation coverage and 100% schema descriptions, the description only needs to convey purpose, batch mechanics and downstream consumers — all of which it does. Missing only edge-case behavior (duplicates, partial failure), which is a modest gap for a create tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so event_id, title, can_checkin, checkin_limit and checkin_message are already fully documented, including the strong "never invent titles" rule. The description adds no parameter-level meaning beyond what the schema states, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource ("Create locations") scoped to "the provided event," and adds domain framing that locations feed sessions, exhibitors and check-ins. It is unambiguous against siblings like update_location or read_locations, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides real procedural guidance for the >10 case (create in batches, continue in chunks of 10). But that is invocation mechanics rather than when-to-use/when-not guidance, and it gives no signal about using create vs update_location or how to handle already-existing locations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_mailerCreate MailerAInspect

Create a new email mailer for the provided event. The mailer is created inactive — use activate_mailer to start sending, or schedule_mailer for later delivery. To edit body/html of the email template, use update_email_template with the mailer's email_template_id.

NameRequiredDescriptionDefault
kindYesMailer kind. Required. Immutable after create. If the user has not provided it, ask the user before proceeding. Never assume a mailer kind.
nameYesMailer name. Required. If the user has not provided it, ask the user before proceeding. Never invent mailer names.
event_idYesEvent UUID returned by search_events.
bcc_emailNoOptional BCC email.
cc_emailsNoOptional CC emails.
group_idsNoGroup UUIDs. Required when access_level is 'Group'. Use list_groups to find group IDs.
tag_levelNoPromotion tag level (0 = all prospects, 1 = tagged subset).
location_idNoOptional location_id (only valid for checkin_notification kind).
access_levelYesMailer audience. Required. Use 'Everyone' or 'Group'. If the user has not specified it, ask the user before proceeding. Never assume an audience.
email_subjectYesEmail subject template. Required. If the user has not provided it, ask the user before proceeding. Never invent email subjects or use placeholder text.
new_template_idNoOptional email_template_id of a source template mailer to seed content from.
prospect_tag_idsNoProspect tag IDs. Required for promotion when tag_level=1.
feature_selection_idNoFeatureSelection ID. Required for custom_form_* kinds; must be blank otherwise.
include_calendar_inviteNoAttach the event's calendar invite (.ics) to every mail. Only registration_confirmation and reminder mailers carry one: it defaults to true for those and is ignored for other kinds.

Output Schema

NameRequiredDescription
hintYes
mailerYes
messageYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-destructive, non-idempotent, closed-world, and the description adds the crucial non-obvious state trait: the mailer is created inactive, so nothing sends until another call. It doesn't cover auth/permission needs or rate limits, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the create action, then the inactive-state consequence, then the template-editing follow-up. No filler or restated parameter lists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values needn't be explained, params are fully documented in schema, and the description supplies the lifecycle state (inactive) plus next-step tools an agent needs to complete a mailer workflow. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each of the 14 params is documented inline (kind immutability, event_id source, group_ids conditional on access_level, feature_selection_id constraints), so the schema does the heavy lifting. The description adds only the email_template_id editing pointer, which refers to a returned field rather than a create parameter, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Create a new email mailer') with scope ('for the provided event'), and explicitly names the sibling tools this is not (activate_mailer, schedule_mailer, update_email_template). An agent can tell it apart from duplicate_mailer or update_mailer without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the when: create here, then use activate_mailer to start sending or schedule_mailer for later delivery, and update_email_template (with email_template_id) to change body/html. This is direct routing to the correct alternatives, not inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_notificationCreate NotificationA
Destructive
Inspect

Create notifications in batches of 10 for the provided event. If there are more than 10 notifications, create the first 10, then continue with the next 10 until all are created. By default creates drafts. Pass publish=true on a notification to create and send immediately. Pass scheduled_at to create and schedule for later delivery. publish=true and scheduled_at cannot be combined. Times are interpreted in the event's timezone: pass a naked local datetime such as 2026-08-21T15:00:00; datetimes carrying a timezone designator are rejected.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
notificationsYesNotifications to create. Every notification must include text and access_level. If either required field is missing for any notification, ask the user before proceeding. Never invent missing required values. Include no more than 10 notifications here. If there are more than 10 notifications total, provide the first 10 here, then continue with the next 10.

Output Schema

NameRequiredDescription
hintYes
countYes
messageYes
notificationsYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare write, destructive, and non-idempotent behavior. The description adds useful behavioral context beyond annotations: batching in groups of 10, default draft state, immediate vs scheduled publishing, and rejection of timezone-bearing datetimes. It still does not disclose permission requirements or email side effects, but those are secondary given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads batch size and event scope, then covers defaults, publishing modes, conflict rules, and timezone handling in five tight sentences. There is no filler, and each sentence contributes to correct invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the nested notifications array, 10-item limit, required fields, and existing output schema, the description covers the critical calling behavior: batching, default drafts, immediate vs scheduled publishing, the publish/scheduled_at conflict, and timezone rejection. Field-level warnings such as required text and access_level are handled by the schema, so the description is complete enough for correct use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the nested fields including publish, scheduled_at, access_level, and text are already well documented in the schema. The description reinforces the publish/scheduled_at conflict and timezone rule, but adds little syntax or semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Create notifications') and scope ('for the provided event'), and clarifies draft vs publish vs scheduled behavior. It does not explicitly distinguish itself from sibling tools such as publish_draft_notification, so it is clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear operational guidance for the three modes: default draft, publish=true for immediate send, and scheduled_at for later delivery, plus the rule that publish and scheduled_at cannot be combined. It does not explicitly state when to prefer this tool over siblings like publish_draft_notification or update_notification_schedule, so sibling alternatives are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pollCreate PollA
Destructive
Inspect

Create polls in batches of 10 (multiple choice or word cloud) for the provided event. If there are more than 10 polls, create the first 10, then continue with the next 10 until all are created. By default creates drafts. Pass publish=true on a poll to create and publish immediately. publish=true is destructive because the poll is immediately visible to attendees.

NameRequiredDescriptionDefault
pollsYesPolls to create. Every poll must include question. If question is missing for any poll, ask the user before proceeding. Never invent missing required values. Include no more than 10 polls here. If there are more than 10 polls total, provide the first 10 here, then continue with the next 10.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
countYes
pollsYes
messageYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, but the description adds the crucial context for why: publish=true makes the poll immediately visible to attendees, versus the safe default of drafts. That is real added value. It does not address the non-idempotent hint (retries after partial batch failure will duplicate polls), which is the main residual risk for a batch tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the batching rule and the draft default, then the destructive exception. The batch-of-10 instruction is restated in the schema, so there is minor redundancy, but nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the nested item schema carries the per-poll field detail. The description covers the batch ceiling, the default state, and the destructive path. It could go further on failure/partial-success behavior for a non-idempotent batch write, which is the one gap an agent could trip on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the nested poll fields (publish, poll_options, is_word_cloud, colors, etc.) are already fully documented. The description's only addition is restating the publish=true consequence and the default-draft behavior, which the schema partially covers. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create polls ... for the provided event') plus the supported poll types (multiple choice or word cloud), so the agent knows exactly what it produces. It does not explicitly distinguish itself from siblings like publish_poll or create_survey, so an agent must infer that this is the bulk-creation path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operating guidance: batches of 10 with an explicit continue-with-the-next-10 loop, and a stated default of draft creation. What is missing is routing guidance against alternatives — nothing says when to use this versus publish_poll (which presumably publishes an existing draft) or when a poll should be a survey instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_questionCreate QuestionAInspect

Add a question to a survey or assessment in the provided event. Provide either a survey_id or assessment_id plus the question text and type.

NameRequiredDescriptionDefault
optionsNoAnswer options. Required for single_select, multi_select, image_text, and ranking (min 2). Not used for file_upload.
event_idYesEvent UUID returned by search_events.
positionNoPosition of the question. Defaults to end of list.
survey_idNoSurvey UUID. Provide this or assessment_id to identify the question bank.
slider_maxNoMaximum value for slider questions.
slider_minNoMinimum value for slider questions.
is_mandatoryNoWhether the question is mandatory. Defaults to false.
rating_scaleNoRating scale (1-10). Required for rating questions.
rating_shapeNoRating shape: 0=Stars, 1=Thumbs, 2=Hearts, 3=Smiley. Required for rating questions.
assessment_idNoAssessment UUID. Provide this or survey_id to identify the question bank.
question_textYesThe question text. Required. If the user has not provided it, ask the user before proceeding. Never invent question text or use placeholder content.
question_typeYesType of question: single_select, multi_select, free_text, file_upload, image_text, rating, slider, ranking. Required. If the user has not provided it, ask the user before proceeding. Never assume a question type.
max_selectionsNoMaximum selections for multi_select questions.
min_selectionsNoMinimum selections for multi_select questions.
slider_step_upNoStep increment for slider questions.

Output Schema

NameRequiredDescription
hintYes
messageYes
questionYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-idempotent, non-destructive mutation, so the safety profile is covered. The description contributes the event-scoped, either-bank requirement but doesn't explain side effects, whether position defaults to the end, or what happens to ordering. Adequate, not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the core action and the key identifier requirement front-loaded. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 explained, and the schema documents the type-specific parameters. Still, for a 15-parameter tool where question_type silently determines which of options, rating_scale, slider_min/max, min/max_selections are required, the description gives no signposting to that coupling, leaving a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter already has a description (including the survey_id/assessment_id either-or rule the description repeats). The description adds no extra meaning about type-dependent requirements, which is the main semantic burden for this tool. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Add a question to a survey or assessment') and scopes it to an event, which is clear enough for an agent to distinguish it from create_survey or update_question. It stops short of explicitly naming sibling alternatives, so it doesn't reach a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a prerequisite-style cue ('Provide either a survey_id or assessment_id plus the question text and type') but says nothing about when to use this versus update_question, create_survey, or create_poll, and offers no exclusions. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_serviceCreate ServiceBInspect

Create services in batches of 10 in the provided event. If there are more than 10 services, create the first 10, then continue with the next 10 until all are created.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
servicesYesServices to create. Include no more than 10 services here. If there are more than 10 services total, provide the first 10 here, then continue with the next 10.

Output Schema

NameRequiredDescription
hintYes
countYes
messageYes
servicesYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false and openWorld=false, and the description's batching instruction is consistent with a non-destructive but non-idempotent write. It does not disclose what happens on partial failure mid-batch, whether retries duplicate records, or how duplicates are handled – meaningful gaps for a looped write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action and batching rule. The second sentence largely duplicates what the services schema property already says, which is minor waste but not harmful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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. However, for a non-idempotent batched create the description omits failure/rollback semantics and whether all batches must be issued by the caller in sequence – an agent can be left uncertain how to recover from a mid-batch error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are already documented in the schema, including the 10-item cap and how to continue past it. The description restates that same cap but adds no new meaning about event_id sourcing or service object shape, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create services') plus the scoping container ('in the provided event') and the batching constraint. An agent can identify the operation immediately, though it does not disambiguate from adjacent siblings like create_sessions or update_service.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives procedural guidance on how to invoke it in chunks of 10 ('create the first 10, then continue with the next 10'), which is genuinely useful. It gives no guidance on when to prefer this over alternatives (read_services to check existing, update_service to modify) or what to do about name collisions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_session_categoriesCreate Session CategoriesAInspect

Create one or more session categories for the provided event. Create categories in batches of 10. If there are more than 10 categories, create the first 10, then continue with the next 10. Provide image URLs for categories that need images.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
categoriesYesCategories to create. Every category must include title and image_url. If either required field is missing for any category, ask the user before proceeding. Never invent missing required values. Include no more than 10 categories here. If there are more than 10 categories total, provide the first 10 here, then continue with the next 10.

Output Schema

NameRequiredDescription
countYes
messageYes
categoriesYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent write with no open-world access. The description adds the concrete batch ceiling of 10 per call, which is real behavioral context an agent needs. It omits what happens on partial failure, whether duplicate titles are rejected, and the fact that re-invocation (non-idempotent) can create duplicates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and the batch rule immediately after, which is the right ordering. The batching instruction is stated twice in near-identical phrasing, and it also duplicates the categories parameter description in the schema, so there is some redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema, 100% parameter coverage, and explicit annotations, the description only needs to carry the calling convention, which the batch rule does. Missing is any note on how categories relate to existing ones (duplicates, ordering) — minor given how much structured data is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both event_id and the nested category fields are already fully documented, setting the baseline at 3. The description's only addition is the image URL line, which is slightly weaker than the schema ("for categories that need images" versus image_url being strictly required), so it adds no clarification beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Create one or more session categories") scoped to a required event. It does not distinguish itself from nearby siblings such as create_sessions, update_session_category, or delete_session_category, so an agent must infer the boundary from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives operational guidance about batching (10 at a time, continue with the next 10), which is genuinely useful for how to call it. It says nothing about when to choose this tool over update_session_category or delete_session_category, nor any prerequisites such as category uniqueness or event state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sessionsCreate SessionsAInspect

Create agenda sessions in the provided event. All session times are local to the event's timezone - pass naked local datetimes and never a timezone designator. Create sessions in batches of 10. If there are more than 10 sessions, create the first 10, then continue with the next 10 until all sessions are created. Use ids from get_agenda_metadata for tracks, categories, and locations.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
sessionsYesSessions to create. Each item requires title, start_time, and end_time. If any required field is missing for a session, ask the user before proceeding. Never invent missing required values. Include no more than 10 sessions here. If there are more than 10 sessions total, provide the first 10 here, then continue with the next 10.

Output Schema

NameRequiredDescription
hintYes
countYes
messageYes
sessionsYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare this is a non-readonly, non-destructive, non-idempotent write, so the safety profile is covered. The description adds real behavioral context the annotations cannot: the timezone-datetime contract and the forced 10-item batching loop. It stops short of saying what happens on partial failure mid-batch or whether retries duplicate sessions (relevant given idempotentHint=false).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, zero filler, with purpose and the timezone constraint front-loaded before the batching mechanics. The batching instruction is slightly redundant with the schema's maxItems=10 and its own nested description, but the 'continue with the next 10' loop adds something the schema cannot express.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the schema documents every nested session field. The description covers the two things structure cannot: timezone formatting and paginated batching. The remaining gap is failure/retry behavior for a non-idempotent batch create, which a calling agent would want to know.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the properties are documented in detail, including required-field and never-invent guidance for title/start_time/end_time. The description restates the timezone rule for start_time/end_time that the schema already states, and adds only the get_agenda_metadata sourcing hint for track/category/location ids. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource up front: 'Create agenda sessions in the provided event.' Combined with the id-sourcing hint (get_agenda_metadata) and the batching rule, it separates this tool from create_session_categories, create_speakers, and create_tracks without the agent needing to inspect sibling schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete operating conditions: naked local datetimes in the event timezone, batches of exactly 10, and ids pulled from get_agenda_metadata. It does not state when to use update_session instead of create_sessions, or what to do if a session already exists, so the alternative-routing is only implied by the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_site_pageCreate Site PageBInspect

Create a new page on the registration site with a title and URL slug. Slug '/' is reserved for the home page.

NameRequiredDescriptionDefault
slugYesURL slug, e.g. 'about' or 'speakers-2024'. Required. Use '/' for the home page. Lowercase letters, numbers, and hyphens only. If the user has not provided it, ask the user before proceeding. Never invent slugs.
styleNoOptional page style object (background settings etc).
titleYesPage title. Required. If the user has not provided it, ask the user before proceeding. Never invent page titles.
configNoOptional page configuration object. Supported keys, mirroring nunify-web's PageSettings: seo {title, description, keywords, canonical_url, ogTitle, ogDescription, ogImage, noindex, excludeFromSitemap}; access {audience: everyone|members|password, password, publishAt, unpublishAt, requireTicket}; effects {background: none|sparkles|floating-shapes|gradient-mesh|mesh-grain|animated-gradient|noise|bokeh|emoji-float|aurora|snow|petals|film-grain|starfield, onLoad: none|confetti|fireworks, interaction: none|click-confetti|cursor-trail|cursor-spotlight, emojiSet, backgroundVideo, foregroundVideo}; typography {bodyFont, headingFont, bodyFontSize, bodyFontUrl, headingFontUrl}; advanced {redirectFrom, bodyClass, customHead, disableContainerQueries}; responsive {mobile, tablet, desktop}; customCss; customJs.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
pageYes
messageYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent, closed-world write, so the safety profile is covered. The description adds one genuine behavioral constraint (slug '/' ownership), but does not say what happens on duplicate slug, whether the page starts as a draft, or whether it is immediately live—significant gaps for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and resource, with the constraint second. No filler, though the second sentence could be folded in without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 not be explained, and the schema is rich on parameters. But for a write tool creating a site page, the description omits publication state (draft vs live), duplicate-slug behavior, and permission requirements—material gaps an agent would want before invoking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the config object enumerates supported keys extensively, so the schema carries the parameter burden. The description adds nothing about slug format, title requirements, or event_id that the schema does not already state better.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new page on the registration site') plus the two identifying fields. It is clearly distinguishable from update_site_page and duplicate_site_page, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The reserved '/' rule is an implicit routing hint toward update_site_page for the home page, and the create-vs-update distinction is obvious from the name. But there is no explicit statement of when to use this versus duplicate_site_page or update_site_page, and no prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_speakersCreate SpeakersAInspect

Create new speakers in bulk for the provided event. Speakers are event users assigned to the 'speakers' group. Existing users (matched by email) are reused instead of being recreated.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
speakersYesSpeakers to create. Every speaker must include first_name and email. If either required field is missing for any speaker, ask the user before proceeding. Never invent missing required values. Include no more than 10 speakers here. If there are more than 10 speakers total, provide the first 10 here, then continue with the next 10.

Output Schema

NameRequiredDescription
hintYes
countYes
messageYes
speakersYes
new_countYes
existing_countYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly=false, destructive=false, not idempotent, closed-world), so the description's added value is the upsert-by-email behavior: existing users are reused rather than duplicated. That is meaningful behavioral context an agent cannot infer from annotations or schema. It still omits bulk failure semantics (partial success, what happens if one speaker is invalid).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and scope, followed by the definition and the reuse rule. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full schema, an output schema, and annotations present, the description covers the key ambiguity (dedupe by email) and the batching cap. It is essentially complete for calling the tool; only error/partial-failure behavior in bulk is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already states the 10-item cap, required fields, and the no-inventing-emails rule. The description restates 'in bulk' and the email-matching semantics but adds no format or syntax detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource (create speakers), names the scope (bulk, for one event), and even defines what a speaker is ('event users assigned to the speakers group'), which is genuinely clarifying. It does not explicitly differentiate itself from near-neighbors like create_attendee or read_speakers, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied: this is the tool for adding multiple speakers tied to an event, and matching by email reuses existing users. But there is no explicit 'when to use this vs. create_attendee' or 'check read_speakers first' guidance, and no stated prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sponsorCreate SponsorAInspect

Create sponsors in batches of 10 in the provided event. If there are more than 10 sponsors, create the first 10, then continue with the next 10 until all are created. Use read_interests action 'list' for interest_ids and read_services action 'list' for services_offered/services_needed ids.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
sponsorsYesSponsors to create. Include no more than 10 sponsors here. If there are more than 10 sponsors total, provide the first 10 here, then continue with the next 10.

Output Schema

NameRequiredDescription
hintYes
countYes
messageYes
sponsorsYes
feature_selection_idYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare write, non-idempotent, closed-world, non-destructive, so safety is covered. The description adds genuinely useful behavior beyond that: a hard 10-item batching limit per call and the iterate-until-complete pattern, which an agent must know to avoid truncating a large sponsor list. It omits partial-failure/duplicate handling, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action, then the batching rule, then the ID-resolution hints. The batching sentence is somewhat repetitive ("create the first 10, then continue with the next 10 until all are created"), but that redundancy clarifies loop behavior rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 described, and the 10-per-call constraint is well communicated. However, it never explains how to obtain a valid sponsor_category_id (presumably create_sponsor_category or a list read), which is a required field on every sponsor object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the maxItems=10 note and the read_interests/read_services pointers, so the description largely restates structured data. Baseline 3 is appropriate; the only added value is reinforcing the loop semantics for the sponsors array.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Create sponsors") scoped to "the provided event," which is enough to tell it apart from create_sponsor_category, update_sponsor, and read_sponsors. It doesn't explicitly name those siblings, but the create-vs-read/update distinction is unambiguous from the name plus verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete invocation guidance: batch in groups of 10, loop until all sponsors are created, and resolve interest_ids via read_interests action 'list' and service IDs via read_services action 'list'. No explicit when-not-to-use or pointer to update_sponsor for existing records, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sponsor_categoryCreate Sponsor CategoryAInspect

Create sponsor categories in batches of 10 in the provided event. If there are more than 10 categories, create the first 10, then continue with the next 10 until all are created.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
categoriesYesSponsor categories to create. Include no more than 10 categories here. If there are more than 10 categories total, provide the first 10 here, then continue with the next 10.

Output Schema

NameRequiredDescription
hintYes
countYes
messageYes
categoriesYes
feature_selection_idYes

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already establish that this is a non-read-only, non-destructive, non-idempotent mutation, so the safety profile is clear. The description adds meaningful behavioral detail beyond annotations by specifying the 10-item batching rule and iterative continuation for larger sets.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tightly focused sentences, front-loaded with the action and the key batching constraint. There is no filler or redundant explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple create tool with rich schema coverage, clear annotations, and an output schema, the description covers the essential event scope and batching behavior. It does not discuss partial-batch failures or permission requirements, but return values are handled by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both event_id and categories are documented, including the maxItems constraint and batching language. The description mostly repeats the schema's batching note rather than adding new parameter semantics, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create sponsor categories') with clear event scope, and the resource name distinguishes it from sibling tools like create_sponsor and create_exhibitor_category. The batching qualifier adds further specificity about how the creation works.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear operating context by explaining the 10-category batch procedure and what to do when more than 10 categories exist. It does not explicitly mention alternatives such as update_sponsor_category or when not to use this tool, so it falls just short of full usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_surveyCreate SurveyA
Destructive
Inspect

Create a survey for the provided event. By default creates a draft. Pass publish=true to create and publish immediately. publish=true is destructive because the survey is immediately visible to attendees.

NameRequiredDescriptionDefault
titleYesSurvey title. Required. If the user has not provided it, ask the user before proceeding. Never invent survey titles or use placeholder text.
pointsNoGamification points awarded for completing this survey. Defaults to 0.
publishNoIf true, publish immediately. Defaults to false.
event_idYesEvent UUID returned by search_events.
cover_urlNoURL of a cover image for the survey.
group_idsNoGroup UUIDs. Required when access_level is 'Group'. Use list_groups to find group IDs.
template_idNoSurvey template ID to pre-populate questions from. Use list_survey_templates to see available templates. If omitted, the survey starts with no questions — use create_question to add custom questions.
access_levelNoSurvey audience. Use 'Everyone' or 'Group'. Defaults to 'Everyone'.

Output Schema

NameRequiredDescription
hintYes
surveyYes
messageYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare destructiveHint=true, and the description earns that by explaining exactly which argument triggers destructiveness and why (immediate attendee visibility) – a real addition beyond the flag. It stops short of noting that drafts are reversible or how authorization/moderators are affected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, with the default behavior and the destructive caveat front-loaded before any elaboration. Every sentence carries distinct decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full schema descriptions, the description needs only cover defaults and risk, which it does. It could mention that an empty survey has no questions until template_id or create_question is used, but the schema already handles that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description still adds semantic weight by tying publish=true to an irreversible, attendee-visible outcome rather than merely 'publish immediately'. Remaining parameters are left entirely to the (already thorough) schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Create') and resource ('survey') scoped to an event, and immediately clarifies the default draft outcome. An agent can distinguish this from publish_survey, close_survey, and create_question without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear conditional guidance: default is draft, pass publish=true for immediate publication. It does not, however, route the agent to the publish_survey sibling for surveys that already exist, so the alternative-selection story is incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_ticket_typeCreate Ticket TypeAInspect

Create ticket types in batches of 10 in the provided event. If there are more than 10 ticket types, create the first 10, then continue with the next 10 until all are created.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
ticket_typesYesTicket types to create. Include no more than 10 ticket types here. If there are more than 10 ticket types total, provide the first 10 here, then continue with the next 10.

Output Schema

NameRequiredDescription
hintYes
countYes
messageYes
ticket_typesYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark this as a non-read-only, non-destructive, non-idempotent, closed-world mutation. Beyond that, the description discloses the single most important behavioral trait: the API only accepts 10 records per call and the agent must issue repeated calls to finish a larger set. It does not say what happens on partial failure or whether already-created batches persist, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the operation and scope. The second sentence largely re-states the batching rule already encoded in maxItems, so there is minor redundancy, but nothing is wasted or buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only 2 required parameters, an output schema, and full annotation coverage, the description supplies the one thing structured fields don't fully convey as workflow guidance: how to loop over more than 10 ticket types. An agent can call this correctly after reading it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both event_id and the ticket_types item fields are already documented in the schema, including maxItems=10 and the continuation instruction. The description's batch explanation restates what the ticket_types property description already says and adds no field-level meaning beyond it; the 3 baseline applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create ticket types') plus the scope ('in the provided event') and the batching constraint. It is clearly distinguishable in practice from delete_ticket_type and update_ticket_type, though it never explicitly names or contrasts those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage context: when the payload exceeds 10 items, split the work into successive calls of 10 until everything is created. There are no explicit exclusions or prerequisites (e.g. that event_id must come from search_events), 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.

create_tracksCreate TracksAInspect

Create agenda tracks for the provided event. Create tracks in batches of 10. If there are more than 10 tracks, create the first 10, then continue with the next 10 until all tracks are created.

NameRequiredDescriptionDefault
tracksYesTracks to create. Every track must include title and color. If either required field is missing for any track, ask the user before proceeding. Never invent missing required values. Include no more than 10 tracks here. If there are more than 10 tracks total, provide the first 10 here, then continue with the next 10.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
countYes
tracksYes
messageYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare the write profile (readOnly=false, destructive=false, idempotent=false), and the description adds genuinely new behavior: the 10-item batch limit and the requirement to loop across multiple calls, which an agent could otherwise miss. It does not address duplicate handling or whether partial failures roll back.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with the purpose front-loaded. The third sentence is somewhat redundant with the second, repeating the batch-of-10 progression, but it reinforces the loop behavior rather than adding noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With full schema coverage, an output schema, and annotations, the definition covers what an agent needs to invoke it correctly, including the multi-call batching pattern. Missing only edge-case behavior such as duplicate titles or partial-failure handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema itself already enforces maxItems of 10 and documents that title/color are required and must not be invented. The description's batching statement largely restates the schema constraint, adding no new parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create agenda tracks') and ties it to an event, so it is distinguishable from update_track and delete_track by name and verb. It does not explicitly contrast with create_sessions or create_session_categories, which are adjacent siblings an agent might confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear procedural guidance: create in batches of 10, and continue iteratively until all tracks are created. It stops short of saying when to prefer this over update_track (e.g., for existing tracks) or what to do when a track already exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deactivate_mailerDeactivate MailerAInspect

Deactivate a mailer. Only allowed when the mailer is currently active.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
mailer_idYesUUID of the mailer to deactivate.

Output Schema

NameRequiredDescription
hintYes
mailerYes
messageYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the safety profile is covered structurally. The description adds the useful precondition that the mailer must be active, but says nothing about consequences (does it stop queued sends?), reversibility (can it be reactivated via activate_mailer?), or the failure mode when the mailer is already inactive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded, with the constraint immediately after the action statement. The first sentence is essentially a restatement of the tool name/title, so a small amount of the text is redundant rather than earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has only two fully documented required parameters, an output schema, and annotations covering safety, so the description does not need to explain returns or parameters. The remaining gap is behavioral: it does not say what deactivation does to the mailer's scheduled sends or how to undo it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: event_id is documented as coming from search_events and mailer_id as the mailer UUID, so the schema carries the parameter burden. The description adds no syntax, format, or scoping detail beyond that, making the baseline 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Deactivate a mailer') that clearly pairs against the sibling activate_mailer and is distinct from delete_mailer. It stops short of naming those siblings explicitly, so the differentiation is inferred from the verb rather than spelled out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The precondition 'Only allowed when the mailer is currently active' is a real usage constraint, but it is a state gate rather than guidance on when to choose this over alternatives such as delete_mailer or update_mailer. No exclusions or alternative-selection advice is offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_additional_user_fieldDelete Additional User FieldC
Destructive
Inspect

Delete one additional user field from the provided event's default registration flow.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
field_idYes

Output Schema

NameRequiredDescription
idYes
deletedYes
messageYes

TDQS

C2.7/5.0
Behavior2/5

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 profile is covered. The description adds only the scope detail that the field is removed from the default registration flow; it says nothing about whether collected attendee answers for that field are destroyed, whether the deletion is reversible, or whether the flow must be unpublished first.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; the scope constraint ('default registration flow') is included early. It is efficient, though its brevity leaves the gaps noted in the other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation on a live registration flow, the definition omits how to discover field_id, what happens to existing attendee data in that field, and any preconditions. The output schema covers the return value, but the call-time and consequence information an agent needs is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: event_id is documented ('Event UUID returned by search_events') but field_id has no description at all, and the description does not compensate by explaining how to obtain a field_id or what it identifies. With half the parameters undocumented, the description adds essentially nothing to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (delete) plus resource (additional user field) and scopes it to 'the provided event's default registration flow', which is more than the name alone conveys. It doesn't explicitly name update_additional_user_field or create_additional_user_field as the non-destructive alternatives, but the operation is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to delete versus update (e.g., deactivate vs remove) an additional user field, no prerequisites such as required permissions or event state, and no warning that this affects the registration flow. The word 'one' only hints that deletion is single-record.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_addonDelete AddonC
Destructive
Inspect

Delete one ticket addon from the provided event.

NameRequiredDescriptionDefault
addon_idYes
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
idYes
deletedYes
messageYes

TDQS

C2.7/5.0
Behavior2/5

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 profile is fully covered structurally. The description adds nothing beyond the annotations: it does not say whether deletion is permanent, what happens to attendees or orders referencing the addon, or whether the event must be in a particular state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity reflects under-specification rather than disciplined economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation tool this is thin: no cascade/irreversibility notes, no auth or event-state prerequisites, and one of two parameters is undocumented. The presence of an output schema excuses it from describing return values, but the rest of the burden is unmet.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50% — event_id is documented ("Event UUID returned by search_events") but addon_id has no description anywhere. The description does not compensate by explaining what an addon_id is or where to obtain it (e.g., from create_addon or read_event_content).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ("Delete one ticket addon") and scopes it to a single addon within an event, which is clear. It doesn't explicitly distinguish itself from update_addon or delete_ticket_type, but the verb+resource combination makes its domain unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus update_addon (to clear fields) or delete_ticket_type, and no prerequisites stated. An agent must infer entirely from the name that this is the removal path for an addon.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_attendeeDelete AttendeeA
Destructive
Inspect

Delete one attendee from the provided event by marking it deleted and enqueueing the existing cleanup job.

NameRequiredDescriptionDefault
user_idYesAttendee user UUID.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
idYes
deletedYes
messageYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare destructive=true, readOnly=false and non-idempotent, but the description adds genuinely new behavioral detail: this is a soft delete via a status flag plus an enqueued cleanup job, which tells the agent the effect is asynchronous. It stops short of stating reversibility or what the cleanup job actually purges.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action and scope, then the mechanism. No filler and no repetition of the title or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations cover the safety profile and an output schema covers returns, so the description only needs to carry the operational nuance it already does. However, for a destructive mutation on an attendee it omits downstream consequences (tickets, orders, group memberships) and how this differs from ban_attendee, leaving a real gap for correct tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters explicitly documented (user_id, event_id), so the schema carries the semantics. The description only restates that the event scopes the operation; it adds nothing about format or validation beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (delete) and resource (one attendee) scoped to a provided event, and even discloses the mechanism (mark deleted + enqueue cleanup). It does not distinguish itself from sibling operations like ban_attendee or remove_attendees_from_groups, which share the 'make this attendee go away' surface.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is given. With siblings such as ban_attendee, remove_attendees_from_groups, and update_attendee, an agent must guess whether deletion, banning, or group removal is the intended operation; the description offers no routing criteria or prerequisites (e.g., pending orders, ticket refunds).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_coupon_codeDelete Coupon CodeC
Destructive
Inspect

Delete one coupon code from the provided event.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
coupon_code_idYes

Output Schema

NameRequiredDescription
idYes
deletedYes
messageYes

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and idempotentHint=false. The description adds almost nothing beyond that—it does not say whether deletion is permanent, how it affects existing orders using the code, or what permissions are required. The only added nuance is that it deletes exactly one code from a given event.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It is appropriately concise, though it borders on being too terse for a destructive operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema handles return values and annotations cover the safety profile, so the description needn't explain those. However, for a destructive delete tool it leaves coupon_code_id undocumented and provides no usage guidance, which are clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: event_id is documented as an Event UUID from search_events, but coupon_code_id has no description in the schema or the tool description. The description adds no meaning about either parameter and does not compensate for the undocumented field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (delete), resource (coupon code), and scope (one, from the provided event). It is clearly distinguishable from create_coupon_code and update_coupon_code by the verb, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus update_coupon_code or when deletion is appropriate. No prerequisites or conditions are mentioned beyond what the schema implies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_exhibitorDelete ExhibitorC
Destructive
Inspect

Delete one exhibitor from the provided event.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
exhibitor_idYes

Output Schema

NameRequiredDescription
idYes
deletedYes
messageYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=false, so safety is mostly carried by structured fields. The description adds only the 'one exhibitor' singularity and event scoping; it says nothing about irreversibility, whether associated data is also removed, or what the response contains, which is below what a destructive operation ideally warrants.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short, front-loaded sentence with no filler. It is efficient, though its brevity borders on under-specification rather than disciplined conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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, but for a destructive mutation the description omits cascading effects, permission requirements, and confirmation semantics. With a partially documented schema and no annotations beyond the safety hints, the definition is too thin for an agent to invoke confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: event_id has a description pointing at search_events, but exhibitor_id is a bare string. The description does not compensate by explaining where exhibitor_id comes from (e.g., read_exhibitors) or its format, leaving the undocumented half of the parameters unexplained in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Delete one exhibitor') and scopes it to an event, which distinguishes it from siblings like delete_exhibitor_category, update_exhibitor, and read_exhibitors. It doesn't explicitly name those siblings, but the resource noun is precise enough for an agent to differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus update_exhibitor or delete_exhibitor_category, no prerequisites (e.g., retrieving IDs first via read_exhibitors), and no stated conditions or exclusions. The agent is left to infer all of the routing logic.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_exhibitor_categoryDelete Exhibitor CategoryC
Destructive
Inspect

Delete one exhibitor category from the provided event.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
category_idYes

Output Schema

NameRequiredDescription
idYes
deletedYes
messageYes

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the bar is lower, but the description adds nothing beyond restating the delete: it does not say whether deletion is permanent, what happens to exhibitors assigned to that category, or whether related records are orphaned. For an irreversible mutation this is a meaningful gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with no filler, but its brevity comes at the cost of under-specification rather than tight information design—there is nothing front-loaded beyond the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the annotations carry the safety/destructiveness profile. What is missing—cascade behavior and how to source category_id—keeps it short of fully complete, but the structured fields cover much of the burden.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: event_id is documented as an Event UUID from search_events, but category_id has no schema description and the description does not compensate—it never explains how to obtain a valid category_id (e.g., from read_exhibitors or a create/update call).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (delete) and resource (exhibitor category) with the scope constraint 'from the provided event'. It is distinguishable from delete_exhibitor or delete_sponsor_category by the resource noun, though the description never explicitly contrasts with those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus update_exhibitor_category or delete_exhibitor, no prerequisites (e.g., category must be empty), and no note about confirming the intended category before invoking. The only implied usage is the tool name itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_groupDelete GroupA
DestructiveIdempotent
Inspect

Delete a group from the provided event. System groups and groups linked to ticket types, interests, addons, or services cannot be deleted.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
group_idYesUUID of the group to delete.

Output Schema

NameRequiredDescription
hintYes
messageYes
group_idYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds real value beyond that by enumerating the group categories that will cause the call to be rejected, which the annotations cannot express. It does not say what happens to attendees assigned to the deleted group or what the failure mode looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler: the action is front-loaded and the blocking constraints follow immediately. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be described, and annotations cover safety semantics. The remaining gap is what happens to dependent data (attendee membership) on deletion, which matters for a destructive group operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and only two parameters exist, both required and documented (event_id with provenance from search_events, group_id as the group UUID). The description adds no format or sourcing detail beyond the schema, so a baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Delete a group') and scopes it to a single event, which separates it from the many other delete_* siblings by resource. It doesn't explicitly distinguish itself from create_group or read_groups, but the destructive action is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives concrete when-not conditions: system groups and groups linked to ticket types, interests, addons, or services cannot be deleted. It stops short of naming an alternative path (e.g., read_groups to verify deletability, or remove_attendees_from_groups for membership cleanup), so the agent must infer next steps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_interestDelete InterestC
Destructive
Inspect

Delete one interest from the provided event.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
interest_idYes

Output Schema

NameRequiredDescription
idYes
deletedYes
messageYes

TDQS

C2.7/5.0
Behavior2/5

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 only that the deletion is single-item and event-scoped; it says nothing about irreversibility, what happens if the interest does not exist, or whether related data is affected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence with no filler and the key constraint (one interest, scoped to an event) front-loaded. It is efficient but so thin that brevity shades into under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 described, but for a destructive, non-idempotent mutation the description should cover permanence and the undocumented interest_id. Neither is addressed, leaving an agent without enough to call it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50% and interest_id has no schema description at all. The description hints that the ID identifies a single interest within the given event, but never says where to obtain that ID (presumably read_interests), so it 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb (Delete) and resource (one interest) scoped to an event, which is unambiguous. It does not name a sibling, but the create/update/read_interest family is distinguishable from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus update_interest or read_interests, and no stated prerequisites such as resolving the interest_id first. The only implied usage is that a deletion always needs confirmation, which is never spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_locationDelete LocationA
DestructiveIdempotent
Inspect

Delete a location from the provided event. The location can only be deleted if it is not assigned to a meeting room.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
location_idYesLocation UUID.

Output Schema

NameRequiredDescription
titleYes
messageYes
location_idYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=false, so the safety profile is covered. The description adds a genuinely non-obvious behavioral constraint — the meeting-room assignment blocks deletion — which is the key thing an agent needs beyond the structured data. Error/response behavior is left to 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. The action and scope come first, then the blocking constraint, which is the right front-loading for a destructive tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full schema, annotations and an output schema, the description only needs to carry the non-obvious constraint, which it does. Minor gap: it doesn't state the consequence (error vs. silent no-op) when the location is assigned to a meeting room, though that may be in the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and both event_id and location_id are already documented (including the hint that event_id comes from search_events). The description adds no interpretation of the parameters beyond what the schema states, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Delete a location') and scopes it to 'the provided event', which is enough to distinguish it from read_locations or update_location. It does not explicitly name a sibling alternative, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear precondition ('can only be deleted if it is not assigned to a meeting room'), which is useful usage guidance. But it never says when to use this versus update_location (e.g., to detach or repurpose a location) or what to do when the constraint blocks deletion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_mailerDelete MailerA
DestructiveIdempotent
Inspect

Delete a mailer. Active mailers cannot be deleted. Some waitlist/registration kinds cannot be deleted once they have mailer_logs.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
mailer_idYesUUID of the mailer to delete.

Output Schema

NameRequiredDescription
hintYes
messageYes

TDQS

A4/5.0
Behavior4/5

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 the valuable non-obvious constraint that deletion is conditionally blocked. It does not state whether the deletion is permanent or whether related mailer_logs are affected, which is the remaining behavioral gap for a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with the core action first and the preconditions immediately after; no filler or repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the preconditions cover the main failure modes. What is missing is the fallback path for the blocked cases and any note on permanence, which matters for a destructive operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented in-schema, including that event_id comes from search_events. The description adds no meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Delete a mailer') that clearly separates it from create_mailer, update_mailer and read_mailers. It does not explicitly distinguish itself from the sibling deactivate_mailer, which is the nearest ambiguous alternative for an agent holding an active mailer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete blocking conditions — active mailers cannot be deleted, and some waitlist/registration kinds cannot be deleted once mailer_logs exist — which tells the agent when the call will fail. It stops short of naming the alternative action (deactivate_mailer) for the active-mailer case, so the agent must infer the fallback.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_notificationDelete NotificationA
DestructiveIdempotent
Inspect

Soft-delete a notification in the provided event. If the notification is scheduled, its scheduled delivery is cancelled.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
notification_idYesUUID of the notification to delete.

Output Schema

NameRequiredDescription
hintYes
messageYes
notificationYes

TDQS

A3.6/5.0
Behavior4/5

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

Adds real behavioral value beyond the annotations: the delete is soft (data retained rather than purged) and cancelling a scheduled notification's pending delivery is a disclosed side effect not visible in the schema. The annotations already carry destructive/idempotent hints, so this extra context is a genuine supplement rather than a repeat.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, and the operation type and its side effect are front-loaded in that order.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full annotation coverage, and a 100%-documented input schema, the description only needs to supply the semantics that structure can't: soft-delete and schedule cancellation. It covers those but says nothing about recoverability or whether draft vs published notifications behave differently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented there, so the description only needs to add scope meaning. 'in the provided event' does confirm the notification is nested under event_id, but that is a marginal addition; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Soft-delete a notification') with a meaningful qualifier ('soft') that distinguishes it from a hard delete. It doesn't reference any sibling (e.g. read_notifications, update_notification_schedule, publish_draft_notification), which keeps it 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this versus alternatives such as update_notification_schedule (to reschedule rather than cancel) or read_notifications (to locate the ID). Usage is only implied by the phrase 'in the provided event'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_pollDelete PollB
DestructiveIdempotent
Inspect

Soft-delete a poll for the provided event.

NameRequiredDescriptionDefault
poll_idYesUUID of the poll to delete.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
pollYes
messageYes

TDQS

B3.3/5.0
Behavior3/5

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 structurally. The word 'soft-delete' is the one piece of added value — it tells the agent data is retained rather than purged — but the description never says whether the poll can be restored, whether it disappears from read_polls, or what happens to attached questions/results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence, front-loaded with the operation and its key modifier. Nothing is wasted and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover safety and idempotency, so much of the burden is off the description. Still, for a destructive mutation the description omits recovery semantics and post-delete visibility, which are the questions an agent actually needs answered before calling it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so poll_id and event_id are fully documented in the schema itself. The phrase 'for the provided event' reinforces event scoping but adds no format, constraint, or lookup guidance beyond what the schema already supplies; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Soft-delete a poll') and adds a qualifier ('soft') that materially shapes what the operation is. It does not explicitly distinguish itself from close_poll, reopen_poll, or publish_poll in the sibling set, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to delete versus when to close_poll or reopen_poll, both of which appear in the sibling list and represent plausible alternative intents. The agent is left to infer that 'delete' means permanent removal from active use rather than a state change.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_questionDelete QuestionA
DestructiveIdempotent
Inspect

Remove a question from a survey or assessment in the provided event. Provide either a survey_id or assessment_id plus the question_id.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
survey_idNoSurvey UUID. Provide this or assessment_id to identify the question bank.
question_idYesExisting question UUID.
assessment_idNoAssessment UUID. Provide this or survey_id to identify the question bank.

Output Schema

NameRequiredDescription
hintYes
messageYes
questionYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the danger profile is carried structurally. The description adds the useful context that the question must live in a specific question bank identified by either a survey or assessment ID. It does not say whether the removal is permanent, how in-flight responses referencing the question are handled, or what the response contains - meaningful gaps for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler, and the action plus its scoping constraint are front-loaded before the parameter note. Nothing is repeated or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and all four parameters plus the required set are covered. The remaining gap is behavioral: nothing about irreversibility or side effects on collected responses, which matters even with destructiveHint=true carrying part of that load.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains event_id, survey_id, question_id and assessment_id. The description only restates the either/or relationship between survey_id and assessment_id, which the schema descriptions also state; it adds no syntax, format, or lookup-path detail beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Remove') and resource ('a question'), and scopes it to a survey or assessment within an event, which distinguishes it from delete_survey and update_question in the sibling list. It stops short of explicitly naming an alternative, but the resource is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is a parameter constraint: 'Provide either a survey_id or assessment_id plus the question_id.' This implies the tool's prerequisite but never states when to choose this over update_question or delete_survey, nor what happens to a question that still has responses.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_serviceDelete ServiceC
Destructive
Inspect

Delete one service from the provided event.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
service_idYes

Output Schema

NameRequiredDescription
idYes
deletedYes
messageYes

TDQS

C2.7/5.0
Behavior2/5

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

The annotations already declare destructiveHint=true, idempotentHint=false, and readOnlyHint=false, so the safety profile is known. The description adds no behavioral context beyond the verb 'delete'—it does not say whether deletion is permanent, what happens to related data, or whether confirmation is required. For a destructive mutation tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler text. It is efficient, though it may be overly terse for a destructive operation where caveats would be valuable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 described, and annotations cover the destructive/non-idempotent nature. However, the description omits the consequences of deletion, handling of missing services, and any meaning for service_id, which is undocumented in both schema and description. For a destructive tool with incomplete parameter coverage, this is not complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema documents only event_id ('Event UUID returned by search_events') while service_id has no description at all, giving 50% coverage. The description's phrase 'one service from the provided event' hints at the relationship between the two IDs but does not explain what service_id represents (UUID, name, or other identifier) or how to obtain it. With low schema coverage, the description should compensate for the undocumented service_id but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Delete one service from the provided event.' It is clearly a deletion operation and can be distinguished from create_service, update_service, and read_services. However, it does not explicitly contrast itself with update_service or explain the deletion scope beyond the single-sentence statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as update_service, nor any mention of prerequisites or exclusions. The only implied usage comes from the tool name and the single sentence, leaving the agent to infer when deletion is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_sessionDelete SessionB
DestructiveIdempotent
Inspect

Delete an agenda session from the provided event.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
session_idYesExisting agenda session UUID.

Output Schema

NameRequiredDescription
hintYes
titleYes
messageYes
session_idYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered structurally. The description adds the useful scoping detail that the deletion applies to a session within a specific event, but it does not disclose cascade effects (e.g., speakers or agenda entries), 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the verb and resource stated immediately. There is no filler, and every word carries weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, idempotent tool with an output schema and full annotation coverage, the description is minimally adequate. However, it omits important behavioral context such as whether deletion cascades to related entities or is reversible, which an agent would need before invoking a destructive operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters (event_id, session_id) are fully documented in the schema, including that event_id comes from search_events. The description adds no meaning beyond this baseline, which is acceptable when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Delete) and resource (agenda session) scoped to an event, which clearly distinguishes it from update_session and create_sessions. It does not explicitly differentiate from delete_session_category or other delete_* siblings, but the resource noun is precise enough for selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus update_session, delete_session_category, or archiving alternatives. No prerequisites, permissions, or exclusions are mentioned; the agent must infer usage entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_session_categoryDelete Session CategoryA
DestructiveIdempotent
Inspect

Delete a session category from the provided event. The category can only be deleted if no sessions are assigned to it.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
category_idYesCategory UUID.

Output Schema

NameRequiredDescription
titleYes
messageYes
category_idYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the description's main added value is the precondition that no sessions may be assigned. That is genuinely useful failure-mode context, but it does not say what happens to the response, whether the deletion is recoverable, or what error surfaces when sessions exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler, and the constraint is stated immediately after the purpose. Nothing is wasted, though the phrasing 'from the provided event' is slightly redundant with the event_id parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter destructive delete, the essential operational fact – the no-sessions precondition – is present, annotations carry the safety profile, and an output schema exists to explain returns. What is missing is minor: no note on how the agent should verify the precondition beforehand.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: event_id (UUID returned by search_events) and category_id (UUID) are already documented. The description adds no further semantics about either parameter, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Delete a session category') and scopes it to 'the provided event', which separates it from update_session_category and create_session_categories. It stops short of explicitly naming those siblings, so it is clear but not maximally differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The precondition 'can only be deleted if no sessions are assigned' is real usage guidance, but it is a hard constraint rather than a when-to-use rule. No alternative is named (e.g., what to do instead if the category still has sessions, or whether delete_session is needed first).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_site_pageDelete Site PageA
DestructiveIdempotent
Inspect

Delete a page on the registration site. The home page cannot be deleted.

NameRequiredDescriptionDefault
page_idYesPage UUID to delete.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
messageYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description adds one valuable non-obvious constraint (home page protected), but says nothing about cascade behavior for a page's blocks/sections, permissions required, or recoverability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the capability first and the guardrail second; nothing redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and parameters are fully documented, so return values need no explanation. The destructive nature is covered by annotations. Only the missing cascade/side-effect detail keeps it from being fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both page_id and event_id documented in the schema (including the cross-reference to search_events). The description adds nothing beyond that, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (delete) and resource (page on the registration site), which is unambiguous against siblings like create_site_page, update_site_page and duplicate_site_page. It does not explicitly name those alternatives, but the resource scope makes selection clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'home page cannot be deleted' line gives a real precondition, implying usage context. However there is no explicit when-to-use guidance versus alternatives such as update_site_page (to modify) or remove_site_block/remove_site_section for partial removals.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_sponsorDelete SponsorB
Destructive
Inspect

Delete one sponsor from the provided event.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
sponsor_idYes

Output Schema

NameRequiredDescription
idYes
deletedYes
messageYes

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered structurally. The description adds minor scoping context ('one sponsor', 'from the provided event') but does not explain irreversibility, permissions, side effects, or error behavior beyond what 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It immediately states the action and scope without redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The operation is simple, annotations already convey the destructive nature, and an output schema exists, so the description need not explain return values. However, it still omits usage distinctions and sponsor_id source details that would help an agent invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: event_id is documented as an event UUID returned by search_events, but sponsor_id has no schema description. The tool description does not compensate by explaining where sponsor_id comes from or what format it expects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Delete one sponsor'. It also scopes the operation to 'the provided event', making it distinguishable from create_sponsor, update_sponsor, read_sponsors, and delete_sponsor_category.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus update_sponsor or delete_sponsor_category, nor does it mention prerequisites or confirmation requirements. Usage is only implied by the verb 'Delete'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_sponsor_categoryDelete Sponsor CategoryC
Destructive
Inspect

Delete one sponsor category from the provided event.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
category_idYes

Output Schema

NameRequiredDescription
idYes
deletedYes
messageYes

TDQS

C2.7/5.0
Behavior2/5

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 profile is known without the description. The description adds nothing beyond that — notably it never says what happens to sponsors currently assigned to the category (cascade delete? unassign?) or whether the deletion is reversible, which is the key unknown for a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or redundancy. Its brevity is efficient, though it borders on under-specification rather than tight writing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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. However, for a destructive, non-idempotent tool with one undocumented parameter, the description should cover side effects, category_id provenance, and failure conditions; none of these are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: event_id is documented in the schema ("Event UUID returned by search_events") but category_id has no description at all. The description does not compensate — it doesn't say where category_id comes from (e.g., read_sponsors or create_sponsor_category) or what form it takes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Delete one sponsor category") and scopes it to a single category within a given event, which distinguishes it from list-level operations. It does not differentiate itself from near-siblings such as delete_sponsor, delete_exhibitor_category, or delete_session_category, leaving the agent to rely on naming alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus update_sponsor_category (clear out fields) or delete_sponsor, and no prerequisites such as required permissions or whether the category must be empty first. The description gives only the bare action, so everything about the decision context must be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_surveyDelete SurveyB
DestructiveIdempotent
Inspect

Soft-delete a survey for the provided event.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
survey_idYesUUID of the survey to delete.

Output Schema

NameRequiredDescription
hintYes
surveyYes
messageYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already disclose that the operation is destructive, idempotent, and not read-only. The description adds a meaningful nuance by saying "soft-delete," but it does not explain recoverability, data retention, or required permissions beyond what 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted wording. It is appropriately sized for a simple two-parameter delete operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description, annotations, and schema provide enough to invoke the tool, and an output schema exists. However, for a destructive operation, it leaves gaps around what soft-delete means in practice, such as recoverability and the relationship to close_survey.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both event_id and survey_id are already documented in the input schema. The description adds only the phrase "for the provided event" and does not contribute additional parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "Soft-delete a survey," with the scope "for the provided event." It is clear what the tool does, but it does not distinguish delete_survey from nearby siblings such as close_survey or reopen_survey.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives, nor when not to use it. It mentions the event context but does not mention close_survey or any other sibling as an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_ticket_typeDelete Ticket TypeC
Destructive
Inspect

Delete one ticket type from the provided event.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
ticket_type_idYes

Output Schema

NameRequiredDescription
idYes
deletedYes
messageYes

TDQS

C2.6/5.0
Behavior2/5

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 carried by structured data; the description merely restates 'delete'. It says nothing about consequences an agent would care about: what happens to attendees or orders tied to the ticket type, or whether deletion fails if tickets have been sold.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with zero redundancy, which is good. However, the brevity stems from under-specification rather than discipline, so the size is efficient but not fully earned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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. But for a destructive, non-idempotent mutation with one undocumented required parameter, the description omits the operational cautions and parameter detail an agent needs to call it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: event_id is documented in the schema as an event UUID from search_events, while ticket_type_id has no description at all. The description adds no format or sourcing detail for 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Delete one ticket type') and scopes it to 'the provided event'. It does not distinguish itself from siblings such as update_ticket_type or create_ticket_type, but the operation itself is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus update_ticket_type, no prerequisites (e.g. required permissions or event state), and no warning about irreversibility. The agent must infer all of this from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_trackDelete TrackC
DestructiveIdempotent
Inspect

Delete an agenda track from the provided event.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
track_idYesTrack UUID.

Output Schema

NameRequiredDescription
titleYes
messageYes
track_idYes

TDQS

C2.9/5.0
Behavior2/5

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 structurally. The description adds nothing beyond that: it does not say whether sessions assigned to the track are orphaned or deleted, whether the operation is reversible, or what permissions are required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is efficient but borders on under-specification rather than being genuinely tight, since there was room to add consequence detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering destructiveness, the description only needs to add operational context. It is minimally viable, but for a destructive tool it omits the cascade/consequence information an agent would want before calling it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both required parameters (event_id, track_id) are documented in the schema, including the search_events provenance hint. The description adds no parameter meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Delete an agenda track") and scopes it to an event, so the agent knows exactly what is removed. It does not, however, distinguish itself from near siblings such as delete_session or delete_session_category, nor mention update_track as the non-destructive path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no note that update_track is the alternative for renaming/reordering, and no stated prerequisites (e.g., that event_id must come from search_events). Usage must be inferred entirely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

duplicate_mailerDuplicate MailerAInspect

Duplicate a mailer. Creates an inactive copy named 'Copy of ...'.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
mailer_idYesUUID of the mailer to duplicate.

Output Schema

NameRequiredDescription
hintYes
mailerYes
messageYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish this as a non-read-only, non-destructive, non-idempotent write. The description goes beyond them by disclosing the key behavioral fact that the resulting copy is inactive and auto-named 'Copy of ...', which materially affects what the agent does next. It stops short of stating permission requirements or that the source mailer is left unmodified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the action stated first and the non-obvious outcome (inactive, auto-named copy) immediately after.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and both parameters are documented, so the description only needs to explain behavior – which it does by covering the inactive state and naming convention. It could be slightly more complete by noting the follow-up path (edit then activate) or permission expectations, but nothing essential to invoking it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so event_id (from search_events) and mailer_id are already fully documented, and the description repeats none of that. Given the high coverage baseline, a 3 is appropriate – the schema carries parameter meaning entirely.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses a specific verb+resource ('Duplicate a mailer') and adds concrete detail about the result ('inactive copy named \'Copy of ...\''). It implicitly separates itself from create_mailer and duplicate_site_page, though it never names the adjacent create/update mailer tools an agent might confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: call this when you want a copy of an existing mailer rather than a new one, and the copy starts inactive. No explicit when/when-not statement, no mention of prerequisites such as obtaining event_id via search_events (that only appears in the schema), and no pointer to update_mailer or activate_mailer as follow-ups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

duplicate_site_pageDuplicate Site PageAInspect

Duplicate a page on the registration site together with all its sections and blocks. The copy is a regular page titled 'Copy of ...' at '-copy' (numbered when that slug is taken). Duplicating the home page gives a regular page at 'home-copy'; the site keeps its one home page.

NameRequiredDescriptionDefault
page_idYesUUID of the page to duplicate.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
pageYes
messageYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish non-read-only, non-destructive, non-idempotent, so the bar is lower, and the description still adds real value: the naming convention ('Copy of ...'), the '-copy' slug with numeric suffixes, and the home-page special case. The suffix numbering also implicitly communicates that repeated calls accumulate new pages, consistent with idempotentHint=false. It stops short of stating the copy's publish/draft state 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the action and scope, then the naming behavior, then the single special case. No sentence is filler or redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two required params, an output schema present, and annotations covering the safety profile, the description covers the genuinely non-obvious behavior (naming, slug collision, home page). The remaining modest gap is whether the duplicate is created published or as a draft, which an agent would likely need post-call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are fully documented in the schema (100% coverage), including that event_id comes from search_events, so the description need not repeat them. It adds no additional constraint on page_id or event_id, which is acceptable given the baseline for complete schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Duplicate a page') and immediately scopes it with what gets copied ('all its sections and blocks'). An agent can distinguish this from create_site_page or update_site_page from the description alone, since duplication semantics are stated explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the verb rather than stated: nothing says when to duplicate versus creating a blank page with create_site_page, nor any prerequisites (e.g., does the source page need to be published?). The home-page edge case is helpful but is behavioral guidance, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_survey_responsesExport Survey ResponsesAInspect

Queue a background job that exports all survey responses to an XLSX file and emails the current author a link to download it.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
survey_idYesUUID of the survey to export.

Output Schema

NameRequiredDescription
hintYes
surveyYes
messageYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare non-read-only, non-destructive, non-idempotent, closed-world; the description meaningfully adds that the operation is asynchronous, spawns a background job, and sends an email to the current author — a side effect worth knowing. It stops short of saying whether repeated calls queue duplicate jobs (relevant given idempotentHint=false) or who 'the current author' resolves to.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single well-formed sentence with the actor, action, output artifact, and delivery mechanism front-loaded; there is no filler and nothing to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full parameter documentation, the description covers the essentials an agent needs: cost model (async job), where results go (email link), and format (XLSX). Minor gaps remain around scope of 'all responses' (complete vs. partial) and authorization requirements for emailing the author.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented there, including the useful pointer that event_id comes from search_events. The description adds no parameter-level detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and pipeline (queue a background job that exports), the resource (all survey responses), the output format (XLSX), and the delivery channel (emailed link to the current author). This clearly separates it from read-only siblings such as read_surveys or read_analytics, which return data inline rather than producing a file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the usage model clear: the call queues work asynchronously and delivery happens by email, so an agent knows not to expect response data back. It offers no explicit exclusions or alternative tools (e.g., when to use read_analytics instead), 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.

get_flowGet Zuno FlowA
Read-onlyIdempotent
Inspect

Read one Zuno flow: its draft definition (spec), overrides for a nunify flow, access, readiness and the draft's validation.

NameRequiredDescriptionDefault
flow_idYesFlow UUID returned by list_flows.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
flowYes
messageYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful context beyond that by specifying the returned payload surface (draft spec, overrides, access, readiness, validation), which tells the agent this is a rich single-object read rather than a summary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. The enumerated return components are dense but each earns its place; phrasing like 'overrides for a nunify flow' is slightly jargon-heavy but still compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema, rich annotations and 100% parameter coverage, the description only needs to frame the read scope, which it does. Only the absence of routing guidance against list_flows/read_flow_results keeps it from being complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters document their provenance ('returned by list_flows', 'returned by search_events'). The description adds nothing further about the parameters, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read one Zuno flow') and enumerates exactly what is returned: draft spec, nunify overrides, access, readiness and validation. An agent can tell this apart from list_flows or read_flow_results by the 'one flow' scoping, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, no prerequisites, and no alternative named (e.g. list_flows to discover IDs, update_flow to change the draft). Usage is only inferable from the verb 'Read one' plus the required event_id/flow_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_flowsList Zuno FlowsA
Read-onlyIdempotent
Inspect

List the Zuno flows of an event with readiness (what the event still lacks for each) and seven-day stats. Filter by origin (system, template_copy, custom) or status (draft, published, archived); archived flows are listed only when asked for.

NameRequiredDescriptionDefault
originNoOnly flows of this origin.
searchNoText to match against the name or slug.
statusNoOnly flows with this status.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
flowsYes
messageYes
total_countYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the read-only, idempotent, non-destructive profile, so the description doesn't need to. It still adds real behavioral value: each returned flow carries readiness information and seven-day stats, and archived records are hidden by default — a filtering rule not encoded in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with zero filler, front-loading the resource and the enriched payload before the filter and default-behavior details. Every clause carries information an agent would otherwise have to guess.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety and an output schema covering return structure, the description only needs to convey scope, filters, and the archived default — all present. Nothing an agent needs to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters, including enum values and that event_id comes from search_events. The description's only addition is the archived-default rule; the enum enumerations it restates are redundant with the schema. Baseline 3 fits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List the Zuno flows of an event") and adds what makes the result distinctive: readiness gaps per flow plus seven-day stats. It does not explicitly contrast with siblings like get_flow or list_flow_templates, so an agent must infer the boundary, keeping it 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage context: it is scoped to one event, filterable by origin or status, and states the non-obvious default that archived flows are only returned when explicitly requested. It offers no explicit exclusions or "use X instead" routing against get_flow/list_flow_templates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_flow_templatesList Zuno Flow TemplatesA
Read-onlyIdempotent
Inspect

List the flow templates nunify ships, with this event's readiness for each. Pass a template_key to create_flow to start from one.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
messageYes
templatesYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so safety is covered. The description adds real context beyond that: results are computed per event (readiness varies by event_id), which tells the agent the same call with a different event_id can yield different readiness values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler. The 'what it returns' clause is front-loaded and the follow-up action is second, which matches the agent's decision order.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and annotations cover the safety profile; the description supplies the one thing structured fields can't — that readiness is event-scoped and templates feed create_flow. Minor gap: no mention of ordering or whether the list is fixed versus event-dependent in size.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single event_id is documented as coming from search_events. The description adds meaning beyond the schema by explaining that event_id drives the per-template readiness annotation in the response, not just a filter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (List) plus specific resource (flow templates nunify ships), and the phrase 'templates nunify ships' implicitly separates it from list_flows which returns existing flows. It stops short of naming that sibling explicitly, so the distinction relies on the agent inferring template-vs-instance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context: use this when you want a catalog of available templates plus this event's readiness, and the second sentence states the downstream action (pass a template_key to create_flow). No explicit exclusions or contrast against list_flows/get_flow, so it's clear context without routing rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_draft_notificationPublish Draft NotificationA
Destructive
Inspect

Publish an existing draft notification for the provided event. This sends the notification to real users and cannot be undone.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
notification_idYesUUID of the draft notification to publish.

Output Schema

NameRequiredDescription
hintYes
messageYes
notificationYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, and the description adds useful context by specifying that the notification is sent to real users and cannot be undone. This goes slightly beyond the structured hints by clarifying the human impact, though it does not add permission or rate-limit details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with the action front-loaded and no wasted words. It efficiently covers what the tool does and its key irreversible consequence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given full schema coverage, destructive annotations, and an output schema, the description is largely complete for a simple publish action. It could be improved with explicit usage alternatives, but nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are fully documented in the input schema. The description mentions 'for the provided event' but adds no syntax, format, or constraint details beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: publish an existing draft notification for an event. It is clear enough to distinguish from create_notification or delete_notification by the 'existing draft' and publish action, but it does not explicitly differentiate itself from relevant siblings or name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it by stating it publishes an existing draft for an event and sends to real users, but it provides no explicit when-not conditions, prerequisites, or sibling alternatives. Usage is inferable rather than fully guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_flowPublish Zuno FlowA
Destructive
Inspect

Publish a Zuno flow's draft as the next version so attendees can start it (when it is enabled and ready). Fails with the validation result when the draft has errors.

NameRequiredDescriptionDefault
noteNoWhat changed, kept with the version.
flow_idYesFlow UUID returned by list_flows.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
flowYes
messageYes

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations (destructiveHint=true, idempotentHint=false), the description discloses two useful traits: the mutation bumps the draft to the "next version" (consistent with non-idempotency) and enables attendee start, and errors return the validation result. Auth/permission requirements and reversibility are not mentioned, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, and the primary effect plus the failure mode are front-loaded in that order. 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.

Completeness4/5

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, and the description covers effect, precondition, and error behavior for a mutation tool. It leaves open whether prior validation is required and whether publishing can be undone, which matters given validate_flow and unpublish_flow exist as siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (note, flow_id, event_id, including their provenance from list_flows/search_events) are already documented. The description adds no syntax, format, or constraint detail about them; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ("Publish a Zuno flow's draft") plus the concrete outcome ("as the next version so attendees can start it"), which lets an agent separate it from archive_flow, unpublish_flow, and validate_flow. It stops short of naming the alternative tools explicitly, so sibling differentiation is implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical "when it is enabled and ready" and the failure clause hint at preconditions, but there is no explicit guidance on when to use this versus validate_flow first or unpublish_flow. Usage must be inferred from the described outcome.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_pollPublish PollA
Destructive
Inspect

Publish an existing draft poll for the provided event. Once published the poll is visible to attendees and cannot be returned to draft state.

NameRequiredDescriptionDefault
poll_idYesUUID of the draft poll to publish.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
pollYes
messageYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and readOnlyHint=false. The description adds a genuinely non-obvious consequence beyond the flags: the transition is one-way and the poll becomes visible to attendees. It stops short of stating required permissions or what happens to an already-published poll.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, with the key irreversible consequence front-loaded right after the action statement. Nothing could be removed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema covers return values and annotations cover the safety profile, so the description only needed to add the state precondition and the irreversibility warning, both of which it does. Missing only authorization requirements and failure behavior for a non-draft poll.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented, including that poll_id must be a draft and event_id comes from search_events. The description adds only the confirming detail that the poll_id must reference a draft; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Publish an existing draft poll') and scopes it to an event, which is more precise than the bare name. It does not explicitly differentiate itself from siblings like close_poll, reopen_poll, or publish_survey, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'existing draft poll' implies a precondition that the poll must already be in draft state, which is useful implied usage guidance. However, it never names the adjacent operations (close_poll, reopen_poll) or says when to publish versus close, so the agent must infer the workflow position.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_surveyPublish SurveyA
Destructive
Inspect

Publish an existing draft survey for the provided event. Once published the survey is visible to attendees.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
survey_idYesUUID of the draft survey to publish.

Output Schema

NameRequiredDescription
hintYes
surveyYes
messageYes

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the safety profile is covered; the description adds genuine context by explaining the consequence ('visible to attendees'). It stops short of saying whether publishing is reversible (a reopen_survey sibling exists) or what happens if the survey is already published, which is the most decision-relevant behavior for a destructive, non-idempotent call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both earning their place: the first states the action and its precondition, the second states the resulting state change. Nothing is padded and the action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation with full schema coverage and an output schema, the description is nearly sufficient. The only material gap is that it does not clarify reversibility or the failure mode of publishing an already-published survey, which matters given the destructive hint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented in the schema, including a useful cross-reference to search_events for event_id. The description adds no meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Publish') and resource ('an existing draft survey') scoped to an event, which is unambiguous against siblings like close_survey or create_survey. It does not explicitly name an alternative tool or route the agent between publish/reopen/close, so sibling differentiation is only implicit through the verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Publish an existing draft survey' implies the precondition that a draft must already exist, but there is no explicit when-to-use, when-not-to-use, or mention of the sibling alternatives (reopen_survey, close_survey, create_survey) that an agent might confuse this with. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_agendaRead AgendaA
Read-onlyIdempotent
Inspect

Read agenda data for the provided event. Dispatch via action:

  • metadata: Return tracks, categories, locations and dates for use as filters or assignments.

  • list_sessions: List sessions. Search session titles with query; filter by track, category, location, or date.

  • get_session: Fetch a session's full details. Requires session_id.

  • list_tracks: List all tracks.

  • list_session_categories: List all session categories. Required event_id must be the event UUID returned by search_events. Session times in results are local to the event's timezone. For speakers, use read_speakers.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely non-obvious behavior: result times are rendered in the event's local timezone, and event_id is a UUID sourced from search_events. It does not mention pagination behavior for `list_sessions`, which is the only real omission.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose sentence followed by one bullet per action, each a single clause pair of what it returns and what it filters on. Prerequisites and the sibling pointer are packed into the trailing two sentences with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All five action branches are covered, prerequisites are stated, and the output schema plus read-only annotations carry the return-shape and safety burden. The only gap is that `page` exists on list_sessions but the description never indicates results are paginated or how to iterate them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description goes further by binding parameters to actions (track/category/location/date as filters, `query` matches session titles, `session_id` mandatory for get_session). It does not add format detail beyond the schema, so it is an increment rather than a full 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names the specific resource (agenda data) and its scope (a single event), then enumerates all five `action` values with what each returns. An agent can distinguish this read tool from siblings like create_sessions, update_session, delete_session, or read_speakers without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes per action: use `metadata` to obtain track/category/location/date filter values, `list_sessions` for searching and filtering, `get_session` when a session_id is known. It also names the escape hatch to a sibling ('For speakers, use `read_speakers`') and the upstream prerequisite (event_id from search_events).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_analyticsRead AnalyticsA
Read-onlyIdempotent
Inspect

Read analytics for the provided event. Dispatch via action:

  • overview: Event health snapshot (registrations, check-ins, engagement, logins, outreach).

  • registrations: Registration trends, ticket type / addon / revenue / discount breakdowns.

  • engagement: Active users, feature adoption, activity trend.

  • networking: Conversations, contact exchanges, meeting requests and acceptances.

  • checkins: Check-in totals by location and session.

  • outreach: Email performance funnel and prospect conversion. Required event_id must be the event UUID returned by search_events. Optional start_date / end_date (YYYY-MM-DD) filters apply to every action.

NameRequiredDescriptionDefault
actionYesWhich analytics report to read.
end_dateNoOptional end date (YYYY-MM-DD) inclusive. Used with start_date.
event_idYesEvent UUID returned by search_events. Required because MCP does not store selected event context.
start_dateNoOptional start date (YYYY-MM-DD) in the event's timezone. If only start_date is given, returns data for that day.

Output Schema

NameRequiredDescription
actionYes
filterYes
metricsYes
summaryYes
report_typeYes

TDQS

A4.5/5.0
Behavior4/5

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 useful non-annotation context: the event UUID must come from search_events because MCP does not persist selected event context, and date filters are global across actions. Return shapes are covered by the existing 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then a tight bulleted dispatch list, then the two constraints that matter (event_id provenance, date filter scope). No filler sentences; every line carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-mode read tool with a rich output schema, the description covers what each mode returns, how to obtain the required event_id, and how the date range behaves. Nothing an agent needs in order to select the right action and call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline would be 3, but the description genuinely extends the enum: the schema only says 'Which analytics report to read' while the description spells out the content of each of the six action values. It also restates the date-format and start_date-only semantics, which the schema already covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read analytics for the provided event') and then enumerates all six report types with the concrete metrics each returns. This makes it trivially distinguishable from siblings like read_registration, read_attendees, or read_flow_results, which cover different domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent to search_events for the required event_id, which is the key prerequisite. It also clarifies that date filters apply to every action. It stops short of naming which sibling tool to use for adjacent data (e.g. read_registration vs. the registrations action), so it's clear context but not full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_attendeesRead AttendeesA
Read-onlyIdempotent
Inspect

Read attendees for the provided event. Dispatch via action:

  • list: List attendees with optional search and filters.

  • get: Fetch one attendee's full details. Requires user_id.

  • metadata: Return groups, ticket types, and additional fields for building list filters. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is fully covered. The description adds real context beyond that: it discloses the per-mode return shape ('full details', 'groups, ticket types, and additional fields') and the cross-tool dependency on search_events for a valid event UUID. It stops short of stating pagination limits or result caps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded one-line purpose followed by a compact bulleted dispatch table and a single constraint sentence. No filler; each clause maps to a distinct action or prerequisite.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich oneOf schema, full description coverage, an output schema, and strong annotations, the description supplies everything needed to select a mode and supply required identifiers. Only list-mode behavior at scale (pagination defaults, result limits, filter interaction) is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the oneOf already encodes which fields each action requires, so the schema does much of the work. The description still adds value because the `action` enum values carry no per-value descriptions in the schema — the bullets give each action meaning and tie `user_id` to the `get` mode specifically.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read attendees') scoped to a single event, then decomposes the tool into three named modes (list/get/metadata) so an agent can tell exactly which capability it is selecting. This cleanly separates it from siblings like read_registration or update_attendee.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Each action is annotated with its purpose and the prerequisites needed ('get' Requires `user_id`; 'metadata' is for building list filters), and the description names search_events as the source of the required event_id. There is no explicit statement of when not to use it (e.g., to modify an attendee, use update_attendee), but the mode-level guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_email_templatesRead Email TemplatesA
Read-onlyIdempotent
Inspect

Read email templates for the provided event. Dispatch via action:

  • get: Fetch one template's subject / HTML / text body. Requires template_id.

  • list_email_template_presets: List preset email templates available to copy from when creating a new mailer. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare the operation as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds useful behavioral context by saying `get` returns subject, HTML, and text body, and that presets are available to copy when creating a new mailer. It does not discuss pagination, permissions, or error behavior, but those gaps are less critical given 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, then uses a compact action list to explain dispatch behavior. Every sentence and bullet carries useful information with no wasted framing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Both supported actions, their required parameters, and the source of `event_id` are covered. Since an output schema exists and annotations define safety behavior, the description does not need to explain return structures or safety guarantees further.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning to the `action` parameter by explaining what each enum value does. It also reiterates the UUID relationship for `event_id` and the conditional requirement of `template_id`, though much of that is already present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: reading email templates for an event. It also distinguishes the two supported actions, `get` and `list_email_template_presets`, with enough specificity that an agent can tell what each does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly tells the agent to dispatch via `action` and gives the purpose of each action: fetch one template versus list presets for copying into a new mailer. It also identifies `search_events` as the source of the required `event_id`. It does not explicitly compare this tool with sibling tools such as `read_mailers` or `update_email_template`, so it falls short of full alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_event_contentRead Event ContentA
Read-onlyIdempotent
Inspect

Read content sources (Speakers, Agenda, Sponsors, Gallery, etc.) for the provided event. Dispatch via action:

  • list: List all content sources. Optional feature_type.

  • search: Search content sources by name or feature type. Optional query and feature_type.

  • get: Fetch one content source's details. Requires content_id. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, closed-world, non-destructive behavior, so the bar is lower. The description still adds real value by documenting the required upstream call (search_events) for event_id and the fact that `get` needs content_id, though it says nothing about pagination or result volume.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus a compact per-action bullet list, with the resource definition front-loaded before the dispatch rules. Every line carries actionable information and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation-free, three-branch read tool with full schema coverage, an output schema, and annotations covering the safety profile, the description supplies everything needed to invoke it correctly. Return values need not be explained since an output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each field is already described, so baseline is 3. The description goes beyond the schema by summarizing which parameters are required or optional per action (optional feature_type on list, optional query/feature_type on search, required content_id on get), which helps an agent pick a branch without reading the oneOf.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: read content sources (Speakers, Agenda, Sponsors, Gallery) for a given event, with the concrete examples making the resource tangible. It does not differentiate itself from sibling readers like read_speakers, read_agenda, or read_sponsors, which an agent could plausibly confuse with this 'content source' listing tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear per-action routing (list vs search vs get) plus the prerequisite that event_id must come from search_events, which is exactly the chaining guidance an agent needs. It stops short of naming when to prefer this over the direct read_speakers/read_agenda siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_exhibitorsRead ExhibitorsB
Read-onlyIdempotent
Inspect

Read exhibitors and exhibitor categories for the provided event. Dispatch via action. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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, closed-world operation. The description adds the search_events dependency and the action-dispatch model, but does not disclose pagination behavior or what metadata/list_categories return beyond what the output schema provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core capability and followed by the dispatch model and prerequisite. 'Dispatch via action' is slightly redundant with the schema but remains useful framing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and rich annotations, return values and safety are covered. The main gap is the multi-action interface: the description never explains what each action does, which is important for an agent selecting among list, get, metadata, and list_categories.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high, so the schema carries most parameter documentation. The description reinforces event_id provenance but adds no meaning for action, query, category_id, location_id, is_hybrid, or exhibitor_id beyond what the schema already exposes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: read exhibitors and exhibitor categories for an event. It clearly distinguishes reads from the create/update/delete exhibitor siblings, though it does not enumerate the four action modes (list, get, metadata, list_categories).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a useful prerequisite: event_id must come from search_events. However, it only says 'Dispatch via action' without explaining when to choose list vs get vs metadata vs list_categories, and it does not route agents away from any alternative tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_flow_resultsRead Zuno Flow ResultsA
Read-onlyIdempotent
Inspect

How a Zuno flow performs (ZUNO-SPEC-03 section 12): starts, completions, drop-off step by step, what people picked, and how it compares across events for a nunify flow. Test runs never count. Optional from/to (ISO 8601) window on the start time.

NameRequiredDescriptionDefault
toNoEnd of the window, ISO 8601.
fromNoStart of the window, ISO 8601.
flow_idYesFlow UUID returned by list_flows.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
messageYes
resultsYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuine behavior beyond that: test runs are excluded from results, and the from/to window is applied to the start time specifically. It stops short of describing response shape or aggregation granularity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and the metric list is efficient, but '(ZUNO-SPEC-03 section 12)' is an internal spec citation that spends tokens without helping an agent decide or call. The 'Zuno flow ... nunify flow' brand switch adds avoidable ambiguity about whether two different products are involved.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is unnecessary, and the description covers the key behavioral caveats (test-run exclusion, start-time windowing, cross-event comparison). Only the relationship to sibling read tools (get_flow, read_analytics) is left for the agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline would be 3, but the description adds meaning the schema does not: the from/to window filters on the flow's start time rather than any event timestamp. It says nothing about event_id/flow_id, which the schema already documents as UUIDs from list_flows and search_events.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (a Zuno flow's performance) and enumerates the specific metrics returned: starts, completions, step-by-step drop-off, answer choices, and cross-event comparison. It is clearly distinct from get_flow (definition) and list_flows (enumeration), though it never names those siblings explicitly to sharpen the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the agent must infer that this is the tool for performance metrics rather than flow configuration. There is one useful usage constraint — 'Test runs never count' — and the optional window behavior, but no explicit guidance on when to use this versus get_flow, read_analytics, or list_flows.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_groupsRead GroupsA
Read-onlyIdempotent
Inspect

Read user groups for the provided event. Dispatch via action:

  • list: List all groups.

  • get: Fetch one group's details including rules and member count. Requires group_id.

  • list_rule_fields: List default and custom user fields available for dynamic group rules. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds two things beyond them: the search_events dependency for event_id and the fact that `get` returns rules and member count, which is useful pre-call context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The action dispatch is front-loaded as a tight bullet list with zero filler, which is the right shape for a polymorphic tool. The closing sentence repeats the event_id origin already stated in the schema, a minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and rich annotations, the description only needs to explain dispatch and prerequisites, and it does so for all three branches. Nothing required to call the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents event_id, group_id and page. The description largely restates that (event_id from search_events, group_id required for `get`) and adds little syntax or format detail the schema lacks; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (read) and resource (user groups) and enumerates the three operations the single tool performs via `action`. It is clear enough to distinguish from mutating siblings like create_group/delete_group, though it never names an alternative tool explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Each `action` value is mapped to a concrete intent (list all, fetch one with rules and member count, list rule fields), which is real usage guidance for a dispatcher tool. The prerequisite that event_id must come from search_events adds a concrete ordering guideline, but no explicit when-not-to-use or sibling routing is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_interestsRead InterestsB
Read-onlyIdempotent
Inspect

Read interests for the provided event. Dispatch via action. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety and idempotency are fully covered structurally. The description adds only the dispatch pattern and the upstream-ID dependency; it says nothing about pagination behavior, result limits, or what an interest record represents beyond what annotations already imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with the resource and dispatch mechanism front-loaded and zero filler. The clipped "Dispatch via action" is efficient but slightly under-explained, trading a little clarity for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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. However, for a polymorphic oneOf tool with two distinct actions, the description never enumerates the actions or distinguishes their behaviors, so the agent must open the schema to understand what the tool can actually do.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description restates the event_id semantics that the schema already documents verbatim ("Event UUID returned by search_events") and is silent on the meaningful parameters — action values, page, and query — leaving the schema to carry all of it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Read interests for the provided event") and names the dispatch mechanism (action), which cleanly separates it from create_interest, update_interest, and delete_interest. It does not, however, differentiate the sub-operations (list vs get) that the tool actually performs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives one concrete prerequisite: event_id must be the UUID returned by search_events, which usefully chains it to that sibling. But it never says when to use 'list' versus 'get', nor what to do when only a name is known (no guidance on the query parameter), so usage is only implied by the schema's oneOf.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_locationsRead LocationsA
Read-onlyIdempotent
Inspect

List the locations (rooms, halls, stages, venues) configured for the provided event. This is the primary tool for location questions: how many locations exist, their names, and their ids. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
messageYes
locationsYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already cover the full safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's main added value is the tool-chaining requirement that event_id comes from search_events. It says nothing about ordering, empty results, or pagination behavior for events with many locations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each doing distinct work: definition, use-case routing, and prerequisite. The most important information (what it lists) leads, with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich output schema and complete annotations, the description needn't explain return shape, and it correctly covers the prerequisite chain via search_events. Only minor gaps remain around result volume/edge cases, which the output schema largely absorbs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter's description already states 'Event UUID returned by search_events.' The description only restates and emphasizes that provenance, adding no format or validation detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource (list locations) and immediately disambiguates what a 'location' is with concrete examples (rooms, halls, stages, venues). It also distinguishes itself from the mutation siblings by framing the read-only scope: names and ids of configured locations for an event.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly declares itself 'the primary tool for location questions' and enumerates the question shapes it answers (count, names, ids). It stops short of naming the mutation alternatives (create_locations, update_location, delete_location) or stating exclusions, so it is strong but not fully routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_mailersRead MailersA
Read-onlyIdempotent
Inspect

Read mailers - the event's EMAIL campaigns: registration confirmations, reminder emails, promotional emails, and their delivery stats. For push/in-app announcements use read_notifications instead. Dispatch via action:

  • list: List mailers. Optional kind_filter and feature_selection_id.

  • get: Fetch one mailer's configuration. Requires mailer_id.

  • status: Fetch delivery/open statistics for one mailer. Requires mailer_id. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds useful context: what mailers are, that 'status' returns delivery/open statistics, and which optional filters apply. It does not discuss pagination behavior for the list action, which is the main remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool reads, then the sibling exclusion, then a compact per-action breakdown. Bulleted action dispatch is easy to scan and no sentence is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a 100% covered schema, full annotations, and an output schema, the description supplies everything else an agent needs: resource meaning, action semantics, alternative tool, and provenance of event_id. Nothing required to invoke correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already documented. The description still adds value by tying parameters to actions (kind_filter and feature_selection_id only for list, mailer_id only for get/status) and clarifying that event_id is an event UUID from search_events.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read mailers - the event's EMAIL campaigns') and enumerates the content types (registration confirmations, reminders, promotions, delivery stats). It explicitly disambiguates from the sibling read_notifications, so an agent can distinguish the two without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative tool for push/in-app announcements and the condition that selects it, then documents the three action modes and their prerequisites (mailer_id required for get/status). It also states that event_id must come from search_events, removing a common inference gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_notificationsRead NotificationsA
Read-onlyIdempotent
Inspect

Read push notifications - the in-app announcements sent to attendees - for the provided event. Each notification has a title, message text, and optional CTA button (label plus link URL). Dispatch via action:

  • list: List notifications. Optional status filter (published, draft, or scheduled - omit to list all) and search.

  • get: Fetch one notification's details, including its CTA button text and URL. Requires notification_id.

  • list_template_tokens: List available merge-tags (default and custom) for notification templating. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so safety is covered. The description adds genuinely new behavioral context: what fields a notification carries, that `get` surfaces CTA label plus link URL, that status may be omitted to list all, and what merge-tags are. It does not mention pagination behavior or result volume for `list`, which is the only remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded one-line definition, then a schema of the object, then a bulleted action dispatch with per-action requirements. No sentence is redundant and the most decision-relevant information (event_id needed, action routing) appears early.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists (so return shapes needn't be explained), the description still supplies the domain vocabulary an agent needs to reason about results. Combined with 100% schema coverage and full annotations, nothing required to select an action or supply parameters correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description goes beyond by explaining the semantics of `status` values (published/draft/scheduled, omit for all), the purpose of `search`, the requirement of `notification_id` for `get`, and the origin of `event_id`. The `page` parameter is left to the schema, which is acceptable but prevents a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read push notifications ... for the provided event') and immediately defines the domain object (title, message text, optional CTA button). The `action` dispatch table makes clear this is the read-side counterpart to create_notification / delete_notification / publish_draft_notification, so an agent can distinguish it from siblings 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Each action is scoped with its own when-to-use condition: `list` for enumeration with optional status/search, `get` when the CTA text and URL are needed (requires notification_id), `list_template_tokens` when the agent needs merge-tags. It also routes the agent to search_events for the required event_id. It stops short of naming explicit exclusions (e.g., 'to create or modify notifications use create_notification / update_notification_schedule'), which keeps it at 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_ordersRead OrdersA
Read-onlyIdempotent
Inspect

Read ticket sales orders for the provided event. Dispatch via action. Use read_tickets for catalog/config, and read_analytics registrations for revenue and sales trends. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered externally. The description adds useful provenance (event_id must be the UUID from search_events) but says nothing about result volume, pagination behavior, or what each action returns — and with an output schema present, the return-shape gap is forgivable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and only four short sentences. Slight awkwardness in "read_analytics registrations" and the mid-sentence action note interrupts flow, but nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-branch polymorphic read tool with a rich schema and an output schema, the description covers purpose, alternatives, and ID provenance. The remaining gap is the semantics of the two action branches, which an agent must infer from the enum names alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is reported at 100%, so the baseline is 3. The description adds meaning for `action` (it is the dispatch discriminator for the oneOf branches) and pins `event_id` to search_events output, but it doesn't explain what the two action values do or what the filter params (status, utm_*, coupon_code_ids, ticket_type_ids) select.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Read ticket sales orders") scoped to a single event, and explicitly names the two sibling tools that cover adjacent domains (read_tickets for catalog/config, read_analytics for revenue/sales trends). An agent can distinguish it from siblings 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear routing guidance: use read_tickets for catalog/config and read_analytics for revenue and sales trends, implying read_orders is for order-level records. It stops short of an explicit "do not use this for X" exclusion or guidance on choosing between the list_orders and get_orders_metadata actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_pollsRead PollsA
Read-onlyIdempotent
Inspect

Read polls for the provided event. Dispatch via action:

  • list: List polls. Optional status filter (published, draft, or closed - omit to list all) and search.

  • get: Fetch a single poll's details. Requires poll_id. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered; the description adds the useful workflow constraint that the event identifier must come from search_events. Return values are covered by the existing output schema, so nothing critical is left undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short lines: purpose first, then a per-action breakdown, then the required identifier and its provenance. Every sentence carries information an agent needs and the structure mirrors the oneOf dispatch.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with full schema coverage, complete annotations and an output schema, the description supplies exactly what structured data cannot: the action-selection logic and the upstream dependency on search_events. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not spell out: which parameter combination each action demands (`poll_id` for `get`) and that omitting `status` means all statuses rather than a default. That is genuine routing value beyond the field-level descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Read polls for the provided event") and immediately explains the action-dispatch model with the two concrete modes `list` and `get`. It is unambiguous what the tool returns conceptually, though it never names a sibling (e.g. read_surveys or create_poll) to sharpen the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real selection guidance inside the tool: use `list` with an optional status filter (omit to list all) and `search`, or use `get` when you already have a `poll_id`. It also states the prerequisite that `event_id` must be the UUID returned by search_events. It stops short of saying when to prefer a different tool entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_question_bankRead Question BankA
Read-onlyIdempotent
Inspect

Read questions from a survey's or assessment's question bank for the provided event. Dispatch via action:

  • list: List all questions for the given bank. Provide either survey_id or assessment_id.

  • get: Fetch one question's details. Requires question_id and either survey_id or assessment_id. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds real behavioral context beyond that: the action-based dispatch model and the provenance constraint that event_id must be a UUID returned by search_events, which prevents a common failure mode.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose sentence followed by a tight two-bullet action dispatch and one provenance note. Nothing is redundant with the schema; every line helps the agent construct a valid call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations and an output schema present, the description needn't explain return values, and it correctly covers both action branches and the shared event scoping. It omits edge cases such as behavior when a survey has no question bank or what happens if both survey_id and assessment_id are supplied, leaving a small gap for a polymorphic tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline would be 3, but the description goes further by mapping parameters to actions and stating the either/or relationship between survey_id and assessment_id at the description level rather than forcing the agent to infer it from a oneOf schema. It adds syntax-level routing value, though not format or validation details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read questions from a survey's or assessment's question bank') scoped to an event. Combined with the sibling list (create_question, update_question, delete_question), an agent can immediately tell this is the read path for question banks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly dispatches on `action` and states the parameter requirement for each branch ('list': survey_id or assessment_id; 'get': question_id plus one of those). It also specifies that event_id must come from search_events. It stops short of naming when to prefer read_surveys or read_polls instead, so no true exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_registrationRead RegistrationA
Read-onlyIdempotent
Inspect

Read the provided event's default registration form. Dispatch via action. Use get_registration_form_metadata before creating fields so standard profile fields can be matched to default fields first. Default fields cannot be created or deleted; hide them using update_default_user_field. If registration paths are enabled, this tool returns a clear unsupported message because path forms are not supported yet. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, so the description does not need to repeat that. It adds meaningful context beyond annotations: default fields cannot be created or deleted, path forms are unsupported, and event_id must come from search_events. Return values are covered by the output schema, so no gap there.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, then proceeds through prerequisites, constraints, and edge cases. All five sentences carry useful information, though it could be slightly tighter by combining the event_id prerequisite with the opening sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with multiple actions and an output schema, the description covers purpose, key prerequisites, default-field constraints, unsupported path forms, and where event_id comes from. It does not detail what each action returns, but the presence of an output schema fills that gap, making the definition complete enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description mentions 'Dispatch via action' and repeats that `event_id` must be the event UUID from search_events, which duplicates the schema. It does not add explanation for the `field_kind` or `field_id` parameters, so it adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Read the provided event's default registration form.' It distinguishes behavior from creation tools by noting default fields cannot be created or deleted and must be hidden via update_default_user_field. It does not explicitly contrast with other read siblings, but the resource is unique enough to be clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides actionable guidance: use `get_registration_form_metadata` before creating fields to match standard profile fields, and use `update_default_user_field` to hide default fields. It also warns that path forms return an unsupported message. It stops short of a full when-to-use-vs-alternatives map, but covers key prerequisites and exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_servicesRead ServicesA
Read-onlyIdempotent
Inspect

Read services for the provided event. Dispatch via action. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered structurally. The description adds the provenance requirement for event_id but says nothing about pagination behavior, result shape, or how 'get' differs from 'list' beyond the action field, leaving behavioral gaps that annotations don't fill.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the resource and scope, with the constraint placed last. No filler, though the middle 'Dispatch via action' sentence is terse enough to be slightly cryptic about the available modes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and full annotations, so return values and safety needn't be described. The description covers purpose, dispatch, and the key input dependency; only minor gaps remain around what each action returns and pagination, which the schema mostly handles.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents event_id provenance ('Event UUID returned by search_events'), page semantics, and the action enums. The description's note that event_id must come from search_events largely repeats the schema, so it adds minimal value beyond the documented baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read services for the provided event') and implies a dual mode via 'Dispatch via action'. It is clearly distinguishable from create_service/update_service/delete_service siblings by the read verb, though it doesn't spell out what the 'list' vs 'get' actions actually return.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides one concrete prerequisite: event_id must be the UUID from search_events, which usefully chains calls. However, it gives no guidance on when to prefer this over read_event_content or other read siblings, and 'Dispatch via action' only hints at mode selection rather than stating the condition for list vs get.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_siteRead SiteA
Read-onlyIdempotent
Inspect

Return the registration site overview for the provided event: theme, typography, navigation, and page list.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
siteYes
messageYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is fully covered. The description adds little beyond that: it names the overview's contents but says nothing about auth requirements, pagination, or how the page list is scoped. The return content it names is also already captured 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that names the action, the scoping input, and the returned contents with zero filler. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With rich annotations, an output schema, and a fully documented single parameter, the description needs only to establish what the tool returns and for what scope, which it does. A note on how this overview relates to the granular site read tools would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, so the schema already explains that event_id is an 'Event UUID returned by search_events.' The description only restates 'for the provided event,' adding no format or sourcing detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Return the registration site overview') and enumerates what the overview contains: theme, typography, navigation, and page list. This clearly separates it from narrower siblings like read_site_pages or read_site_sections, though it does not name 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the entry point for inspecting a site's design/content before editing. There is no explicit statement of when to prefer this over read_site_pages or read_site_sections, and no prerequisites mentioned beyond the event_id requirement carried by the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_site_pagesRead Site PagesA
Read-onlyIdempotent
Inspect

Read the registration site's pages for the provided event. Dispatch via action:

  • list: List all pages with their sections summaries.

  • get: Fetch one page's details, including all sections and blocks. Requires page_id. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is fully covered. The description adds what each mode returns (section summaries vs full sections and blocks), which is useful, but since an output schema exists this is largely redundant and nothing is said about pagination or size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose sentence followed by a tight two-bullet dispatch table and one prerequisite note. No filler and every line carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety and an output schema covering return shapes, the description contains everything needed to pick a mode and call it. Only the sibling-routing question (read_site vs read_site_sections vs this tool) is left unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents event_id, page_id, and the action enums. The description reinforces the cross-tool provenance of event_id, but adds no syntax or format detail beyond what the schema provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read the registration site's pages for the provided event') and enumerates the two modes of operation. It does not explicitly differentiate itself from nearby siblings like read_site or read_site_sections, so an agent must infer the boundary from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly documents the `action` dispatch and the condition that selects each mode (`get` requires `page_id`), plus the prerequisite that `event_id` comes from search_events. No exclusion guidance relative to sibling read tools is given, 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.

read_site_sectionsRead Site SectionsA
Read-onlyIdempotent
Inspect

Read section presets and section / block schemas for the registration site. Dispatch via action:

  • list_presets: List available section presets grouped by category.

  • get_section: Fetch a single section's details (blocks and styles). Requires page_id and section_id.

  • get_block_schema: Fetch the JSON schema for a given block type's data. Requires block_type. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description doesn't need to. It adds genuine context beyond them: the dependency chain on search_events for event_id and what each action yields (presets grouped by category, a section's blocks and styles). Rate limits and error behavior are unaddressed, keeping it below 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with a one-line purpose, then a scannable bullet per action, then the prerequisite. Every sentence carries either an action contract or a dependency; nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-shape detail is optional, and the description covers all three action contracts plus the event_id dependency. The remaining gap is positioning against neighboring site tools (read_site, read_site_pages, add_site_section_preset) for an agent choosing where to start.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the oneOf branches already enforce which parameters each action requires, so the description largely restates the schema. It adds modest value by tying required params to actions in prose and clarifying that block_type selects which block schema is returned. Baseline 3 is correct when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource set — reads section presets plus section and block schemas for the registration site — and enumerates the three actions it performs. An agent can distinguish this from read_site, read_site_pages, and add_site_section_preset without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action dispatch gives clear per-action contexts: list presets, fetch one section with blocks and styles, fetch a block's JSON schema. The prerequisite 'event_id must be the event UUID returned by search_events' routes the agent to the right upstream tool. It stops short of naming when to prefer read_site_pages or read_site instead, so no explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_speakersRead SpeakersA
Read-onlyIdempotent
Inspect

List speakers for the provided event. Optional query matches speaker name, email, designation, or company.

NameRequiredDescriptionDefault
pageNo1-based page number. Accepts an integer or numeric string. Defaults to 1.
queryNoOptional search text.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
pageYes
messageYes
speakersYes
total_countYes
total_pagesYes
has_next_pageYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds useful scope on what query searches across, but says nothing about pagination behavior, result volume, or ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no waste; the core action is front-loaded and the query semantics follow immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the safety profile, so return values needn't be described. The only soft gap is that pagination/ordering behavior isn't mentioned in prose, though the schema documents the page parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, and the description genuinely adds value by spelling out that query matches speaker name, email, designation, or company — richer than the schema's 'Optional search text.' Page and event_id are left to the schema, which is fine.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List speakers') scoped to an event, which is unambiguous. It does not explicitly differentiate from create_speakers or other read_* siblings, but the read/list semantics make selection obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, prerequisites, or alternatives. It is implied that this is the read path vs create_speakers, but nothing is stated about paginating, filtering, or when to prefer search_events-style lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_sponsorsRead SponsorsA
Read-onlyIdempotent
Inspect

Read sponsors and sponsor categories for the provided event. Dispatch via action. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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 the event_id provenance rule and the action-dispatch pattern, but says nothing about pagination behavior or the fact that omitting sponsor_id changes the result shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the resource and scope, followed by the required identifier's provenance. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the schema fully enumerates the three action branches. The only gap is that the description never tells the agent the tool is action-polymorphic in behavior (list vs single-sponsor fetch vs categories), leaving that entirely to schema inspection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so page, event_id, and the action enum variants are already documented in the schema. The description repeats the event_id constraint but adds no meaning beyond it — baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Read sponsors and sponsor categories') scoped to an event, which cleanly separates it from the create/update/delete sponsor siblings. It falls short of a 5 because it doesn't distinguish itself from other read_* family tools or flag its polymorphic action modes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one concrete prerequisite — event_id must be the UUID returned by search_events — which is genuinely useful routing context. However, it offers no guidance on which action to choose (list vs get vs list_categories) or when to prefer this over nearby read tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_surveysRead SurveysA
Read-onlyIdempotent
Inspect

Read surveys for the provided event. Dispatch via action:

  • list: List surveys. Optional status filter (published, draft, or closed - omit to list all) and search.

  • get: Fetch one survey's details. Requires survey_id.

  • get_results: Aggregate results for a survey. Requires survey_id.

  • list_templates: List survey templates available for duplication. Required event_id must be the event UUID returned by search_events. To export a survey's responses, use export_survey_responses (it emails the file).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so safety is covered. The description adds genuinely useful context not in annotations: the UUID provenance of event_id ('must be the event UUID returned by search_events') and that export is a separate emailing operation. Return-format detail is legitimately omitted because an output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded one-line purpose followed by a compact per-action bullet list, then the two operational notes (event_id provenance, export alternative). Every sentence carries information; nothing is redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-branch read tool with an output schema, complete annotations, and full schema coverage, the description covers all branches, prerequisites, and the one sibling it could be confused with. Nothing required to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents search, status, event_id, and survey_id. The description still adds real meaning beyond it: the meaning of omitting `status` ('omit to list all'), that `search` matches survey titles, and which parameters each action requires. Slightly short of 5 only because it doesn't resolve whether list results are paginated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Read surveys for the provided event') and then enumerates each of the four sub-operations (list, get, get_results, list_templates) with what each returns. This clearly distinguishes it from siblings like create_survey, delete_survey, publish_survey, and export_survey_responses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly dispatches on `action` and states the requirement per branch (survey_id for get/get_results). It also names the alternative for response export ('use export_survey_responses, it emails the file'), which is exactly the when-to-use-something-else guidance an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_ticketsRead TicketsA
Read-onlyIdempotent
Inspect

Read ticket catalog and ticketing configuration for the provided event. Dispatch via action. Use read_orders for sales orders, and read_analytics registrations for revenue and sales trends. Required event_id must be the event UUID returned by search_events.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description confirms it is a read but adds no behavioral detail beyond that — no pagination, no indication of whether `config` returns large structured settings, no note on result size for list actions. With annotations carrying the load, this is adequate but thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the purpose, then dispatch, then alternatives, then the prerequisite. Zero filler. It could be marginally tighter by merging the sibling sentence, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations cover safety. The remaining gap is that a five-way dispatch tool never characterizes its actions, leaving the agent to rely on enum naming to distinguish a ticket-type listing from a configuration read. That is a minor but real omission rather than a blocking one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is reported at 100%, so the schema documents event_id and the `kind` enum itself; baseline is 3. The description adds that `action` is a dispatch discriminator, which is genuinely useful for a oneOf schema, but it never explains the semantics of the five action values (list_ticket_types, get_ticket_type, list_addons, list_coupon_codes, config) — the agent must infer them from the enum names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Read ticket catalog and ticketing configuration') and scopes it to a single event. It explicitly names the sibling tools it is not (read_orders, read_analytics), so an agent can route without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names two alternatives and the domains they cover (sales orders, revenue/sales trends), which is real routing guidance. It also states a prerequisite that event_id comes from search_events. It stops short of saying when this tool is the wrong choice beyond the sibling comparison, and never explains which `action` value to pick for which question.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_attendees_from_groupsRemove Attendees From GroupsCInspect

Remove attendees from groups in the provided event.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
user_group_pairsYes

Output Schema

NameRequiredDescription
messageYes
removedYes
user_group_pairsYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation profile is known. The description adds nothing beyond the title: no mention of batch semantics for user_group_pairs, partial-failure behavior, or whether removing an attendee not in the group errors — all relevant for a non-idempotent mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler, but it is under-specified rather than truly concise — the brevity costs information an agent needs about the pair array and batch behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 described, but a non-idempotent mutation taking an array of user/group pairs needs at least notes on batch semantics and failure modes, none of which appear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: event_id is documented ("Event UUID returned by search_events") but user_group_pairs and its user_id/group_id items are undocumented. The description says "in the provided event" but gives no semantics for the pair array, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ("Remove") plus resource ("attendees from groups") scoped to an event, which mirrors the sibling add_attendees_to_groups without naming it. An agent can infer the inverse relationship, but the description itself never explicitly contrasts with the add counterpart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this versus add_attendees_to_groups or update_attendee, and no prerequisites (e.g., group existence, attendee registration status). Usage is only implied by the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_site_blockRemove Site BlockA
DestructiveIdempotent
Inspect

Remove a block from a registration site section. Searches nested blocks (row columns, column/container/grid children) to find the block by ID.

NameRequiredDescriptionDefault
page_idYesPage UUID.
block_idYesBlock ID within the section.
event_idYesEvent UUID returned by search_events.
section_idYesSection UUID.

Output Schema

NameRequiredDescription
hintYes
messageYes
sectionYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the description doesn't need to restate mutability. It does add genuinely new behavior — that the lookup recurses through row/column/container/grid children — but says nothing about what happens to a removed container's child blocks or whether the operation requires a published/unpublished page state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the action stated first and the lookup nuance second. Nothing repeats the name or title and nothing could be cut without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 explained, and annotations cover the safety profile. What's missing for a destructive nesting-aware operation is the consequence for child blocks and any state precondition on the page, leaving a modest gap for an agent deciding whether the call is safe.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four UUID parameters are already documented with types and provenance (event_id from search_events). The description only reinforces that block_id is resolved by searching nested structures, adding little beyond the schema's 'Block ID within the section.' Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Remove a block from a registration site section') and its subject is clearly distinct from delete_site_page, remove_site_section, and update_site_block. The second sentence adds scope: the block may live anywhere in the nested tree, not just at the section's top level.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied — an agent can infer you call this when a block must be deleted rather than reordered or updated. There is no explicit prerequisite (does the page need to be a draft?), no warning that deletion is final, and no mention of add_site_block/reorder_site_blocks as related operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_site_sectionRemove Site SectionC
DestructiveIdempotent
Inspect

Remove a section from a registration site page.

NameRequiredDescriptionDefault
page_idYesPage UUID.
event_idYesEvent UUID returned by search_events.
section_idYesSection UUID.

Output Schema

NameRequiredDescription
hintYes
messageYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: it does not say whether removal is permanent, what happens to blocks or presets nested in the section, or whether unpublished/draft state matters. For a destructive mutation the description should carry consequence information that annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler, but the terseness reflects under-specification rather than disciplined brevity. Nothing is wasted, though little is contributed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a destructive three-parameter mutation with many closely related siblings and an output schema, so return values need no explanation. However, the description omits cascade effects, irreversibility, and any recovery path, which are exactly the facts an agent needs before invoking a destructive tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with page_id, event_id, and section_id each documented in the schema, so the schema does the heavy lifting. The description adds no semantics such as whether page_id must belong to event_id or how section_id is obtained (e.g., via read_site_sections). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: removing a section from a registration site page. An agent can distinguish it from delete_site_page or remove_site_block by the resource named. It stops short of explicitly contrasting with those close siblings (e.g., remove_site_block), so it is 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus remove_site_block, delete_site_page, or update_site_section_styles, and no mention of prerequisites such as the page needing to exist or be in draft. The agent must infer the selection context entirely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reopen_pollReopen PollAInspect

Reopen a closed poll so attendees can submit answers again for the provided event.

NameRequiredDescriptionDefault
poll_idYesUUID of the closed poll to reopen.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
pollYes
messageYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-idempotent, non-destructive mutation, so the agent knows it changes state. The description adds useful effect context — it re-enables answer submission for a previously closed poll — but says nothing about required permissions, whether existing answers are affected, or error behavior on an already-open poll.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that states the action and its effect with no filler. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and return values need not be explained, and the tool is simple with two fully documented required parameters. The description is nearly complete for that complexity, missing only the preconditions and failure modes of reopening.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so poll_id and event_id are already fully documented, including that event_id comes from search_events. The description's only addition is 'for the provided event', which is minimal; baseline 3 applies since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource pair ('Reopen a closed poll') plus the outcome ('attendees can submit answers again'), which clearly distinguishes it from create_poll, close_poll and delete_poll. It stops short of explicitly naming close_poll/reopen_survey as counterparts, so it is clear but not fully differentiated from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'closed poll' implies a prerequisite state (the poll must already be closed), but the description never says what to do if the poll is open or published, nor mentions reopen_survey as the parallel operation. Usage is inferable rather than guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reopen_surveyReopen SurveyAInspect

Reopen a closed survey for the provided event so attendees can submit responses again.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
survey_idYesUUID of the closed survey to reopen.

Output Schema

NameRequiredDescription
hintYes
surveyYes
messageYes

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare that this is a non-read-only, non-destructive, non-idempotent mutation. The description adds useful behavioral context by stating that the survey must be closed and that reopening enables attendee submissions again. It does not cover permissions, edge cases such as reopening an already-open survey, or side effects beyond the core state change.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single well-formed sentence that front-loads the action and resource. Every phrase contributes: 'closed survey' scopes the operation, 'provided event' points to the event parameter, and the final clause explains the outcome.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation with full schema coverage, rich annotations, and an output schema, the description is largely complete. It states the action, target state, and intended effect. It could be stronger by noting prerequisites such as required permissions or behavior when the survey is already open.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both event_id and survey_id are fully documented in the input schema. The description only implies their roles through 'provided event' and 'closed survey,' adding no additional syntax or format meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: reopen a closed survey for an event. It also states the intended effect, letting attendees submit responses again. It does not explicitly distinguish itself from siblings such as close_survey or publish_survey, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'closed survey' implies the tool is for surveys that are currently closed, and the description gives a clear outcome context. However, it does not state when to prefer this over siblings like publish_survey or reopen_poll, nor does it mention exclusions or prerequisites explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reorder_site_blocksReorder Site BlocksA
Idempotent
Inspect

Reorder the top-level blocks of a registration site section in place. Pass the full ordered list of the section's top-level block IDs; the blocks keep their IDs and content. Use this instead of remove_site_block + add_site_block when only the order changes. Blocks nested inside stacks, rows, or grids cannot be moved with this tool.

NameRequiredDescriptionDefault
page_idYesPage UUID.
event_idYesEvent UUID returned by search_events.
block_idsYesAll of the section's top-level block IDs, in the new order.
section_idYesSection UUID.

Output Schema

NameRequiredDescription
hintYes
messageYes
sectionYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare idempotent=true, destructive=false, readOnly=false, so the safety profile is covered; the description still adds real context beyond them by noting blocks keep their IDs and content and that nesting is a hard limitation. It stops short of mentioning permission requirements or failure modes if block_ids is incomplete, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences ordered by importance: what it does, how to call it, when to prefer it, and the constraint. No filler and the constraint is front-loaded rather than buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% parameter coverage, the description supplies exactly the missing decision-layer information: the alternative it replaces and the nested-block restriction. Nothing an agent needs in order to call it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already describes block_ids as "All of the section's top-level block IDs, in the new order," so the description's instruction to pass the full ordered list largely restates structured data. Baseline 3 applies when the schema carries the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Reorder the top-level blocks of a registration site section") plus the key modifier "in place," which distinguishes it from the remove/add and update_site_block siblings. An agent can pick this tool out of the large sibling list without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative pattern (remove_site_block + add_site_block) and the condition that selects this tool instead ("when only the order changes"), and states an exclusion: nested blocks in stacks, rows, or grids cannot be moved here. This is the full when/when-not/alternative triad.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reorder_site_sectionsReorder Site SectionsA
Idempotent
Inspect

Reorder sections on a registration site page. Pass the full ordered list of section UUIDs; their positions are rewritten from 0.

NameRequiredDescriptionDefault
page_idYesPage UUID.
event_idYesEvent UUID returned by search_events.
section_idsYesOrdered array of section UUIDs representing the new order.

Output Schema

NameRequiredDescription
hintYes
messageYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare this is a non-readonly, idempotent, non-destructive mutation. The description adds important behavioral context beyond annotations: the operation replaces the full ordering and rewrites positions from zero.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and followed by the key calling convention. There is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple reorder operation with rich schema coverage, complete annotations, and an output schema, the description supplies enough detail to call it correctly: which resource, which list to pass, and how positions are assigned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters. The description still adds meaningful semantics for section_ids: it must be the full ordered list, and positions are rewritten starting at 0.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: reordering sections on a registration site page. It is clearly distinct from sibling tools like reorder_site_blocks and update_site_section_styles without needing to open schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear procedural requirement: pass the full ordered list of section UUIDs. It does not explicitly name alternatives or state when not to use the tool, but the sections-versus-blocks distinction is implicit in the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_eventsSearch EventsA
Read-only
Inspect

Search for events you have access to by event name or event code. Returns up to 10 matches: ongoing events first, then events nearest in time. Use the returned event ids for future event-scoped tool calls. Each event's start_time and end_time are local datetimes in that event's own timezone (named in the timezone field), without an offset designator. This searches event names only - content inside an event (sessions, speakers, polls, locations, ...) is not searchable here: find the event first, then use that domain's read tool, e.g. read_agenda with action list_sessions and a query for session titles.

NameRequiredDescriptionDefault
queryYesEvent name to search for.

Output Schema

NameRequiredDescription
hintYes
eventsYes
messageYes
total_countYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), and the description adds substantial context beyond them: the 10-result cap, the ordering rule (ongoing first, then nearest in time), and the timezone semantics of start_time/end_time (local datetimes, no offset designator). These are non-obvious traits an agent needs to interpret results correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, followed by return behavior, id usage, timezone semantics, and the disambiguation boundary. Every sentence carries distinct, actionable information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a single-parameter search tool: purpose, result cap, ordering, timezone interpretation, and the boundary with content-search tools are all covered. An output schema exists, yet the description still usefully pre-explains result semantics without redundancy.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline would be 3, but the description adds meaning beyond the schema: the schema says 'Event name to search for' while the description reveals the query also matches event code. That's a genuine extension of parameter semantics, though it stops short of describing matching behavior (exact vs substring, case sensitivity).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource and scope ('events you have access to by event name or event code'), and explicitly distinguishes itself from content search: sessions, speakers, polls are not searchable here. An agent can tell it apart from read_agenda/read_event_content 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names what this tool does NOT cover ('This searches event names only') and routes to the alternative with concrete invocation details ('use read_agenda with action list_sessions and a query for session titles'). Also tells the agent the returned ids are for subsequent event-scoped calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_test_mailerSend Test MailerAInspect

Send a test of the mailer to the current author's email address.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
mailer_idYesUUID of the mailer to test.

Output Schema

NameRequiredDescription
hintYes
mailerYes
messageYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context — the send goes only to the current author, not to attendees — but omits whether repeated calls are throttled, whether drafts are allowed, and whether the send counts against any quota.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; the key scoping fact (test to the author) is stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two fully documented required parameters, complete annotations and an output schema, the description covers what an agent needs to call it correctly. The only meaningful gap is the lack of any prerequisite/state guidance (draft vs. published mailer).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (event_id, mailer_id) are documented in the schema, including the pointer to search_events for event_id. The description adds no parameter-level meaning beyond implying there is no recipient argument, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Send a test') and resource ('the mailer'), and clarifies the destination ('the current author's email address'), which separates it from update_mailer/duplicate_mailer/delete_mailer. It stops short of explicitly naming a sibling or contrasting with a real (non-test) send, so it is clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is a preview/verification step before activating or publishing a mailer, but the description never states when to use it versus update_mailer or activate_mailer, nor any prerequisite such as the mailer needing to exist or be in draft.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unban_attendeeUnban AttendeeAInspect

Unban one attendee in the provided event and reset failed login, reset, and confirmation counters.

NameRequiredDescriptionDefault
user_idYesAttendee user UUID.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
messageYes
attendeeYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish that this is a non-read-only, non-destructive mutation, but the description adds important side-effect information: failed login, reset, and confirmation counters are reset. It does not explain permissions or whether counter resets are permanent, but the key hidden behavior is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no wasted wording. The operation and its side effects are stated together efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation with annotations and an output schema, the description covers the operation and its counter-reset side effect. It is slightly incomplete on prerequisites and alternatives, but nothing critical to invoking it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the meaning of event_id and user_id is already documented in the schema. The description reinforces that the operation is scoped to one attendee in one event but adds no syntax or format detail beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Unban one attendee in the provided event.' The scope is clear and distinguishes it from the inverse sibling ban_attendee, while also disclosing that counters are reset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies the tool is for unbanning, but gives no explicit when-to-use guidance, prerequisites, or comparison to alternatives such as ban_attendee. An agent must infer that this is the right tool for a currently banned attendee.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unpublish_flowUnpublish Zuno FlowA
Destructive
Inspect

Take a published Zuno flow back to draft. Attendees lose it and runs in progress end.

NameRequiredDescriptionDefault
flow_idYesFlow UUID returned by list_flows.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
flowYes
messageYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=false, but the description adds real consequence the annotations cannot convey: attendees lose access and in-progress runs terminate. That is exactly the kind of impact context an agent needs before invoking a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and followed by impact. No filler, no repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, a fully documented two-parameter schema, and complete annotations, the only thing the description must supply is consequence — which it does. It stops short of noting whether the action is reversible or whether there are permission requirements, but the essentials are covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both UUIDs are documented with their source lookup tools, so the schema carries the parameter burden. The description adds no additional meaning about flow_id or event_id, which is acceptable at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Take a published Zuno flow back to draft'), making the state transition unambiguous. It does not explicitly name the counterpart publish_flow or archive_flow/delete_flow siblings, so differentiation is left partly to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intent is implied by the 'back to draft' framing, but there is no explicit guidance on when to choose this over archive_flow, delete_flow, or update_flow, nor any stated prerequisites (e.g. flow must currently be published).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_additional_user_fieldUpdate Additional User FieldCInspect

Update one additional user field in the provided event's default registration flow.

NameRequiredDescriptionDefault
nameNoNew field name.
configNo
optionsNoAdd or update options for non-session option fields.
visibleNoWhether this field is visible on the registration form.
event_idYesEvent UUID returned by search_events.
field_idYes
positionNo
mandatoryNoWhether this field is mandatory on the registration form.
dependencyNo
session_idsNoSession ids to add for session-select fields. Use this instead of options for session-select fields.
ticket_type_idsNo
clear_dependencyNo
remove_option_idsNoExisting option ids to remove. Use for both regular and session-select fields.

Output Schema

NameRequiredDescription
hintYes
fieldYes
messageYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare a non-readonly, non-destructive, non-idempotent mutation, so the safety profile is covered. The description adds that the target is the event's default registration flow, but does not explain partial-update behavior, required permissions, or how omitted optional fields are treated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single, front-loaded sentence with no filler. However, it is so terse that it omits operational detail that would help the agent call the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex mutation with nested objects and many optional parameters, the description is too thin. It does not explain how updates merge with existing identity configuration, how options and session_ids interact, or when clear_dependency should be used.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides no parameter-level information despite 13 parameters and only 54% schema description coverage. Several important parameters, including field_id, position, dependency, ticket_type_ids, and clear_dependency, are undocumented in both the schema and the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update one additional user field') with scope ('event's default registration flow'). It implicitly distinguishes itself from update_default_user_field and from create/delete siblings by the word 'additional', but 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool rather than update_default_user_field or create_additional_user_field, no prerequisites, and no exclusions. The description only identifies the operation itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_addonUpdate AddonCInspect

Update one ticket addon in the provided event.

NameRequiredDescriptionDefault
nameNo
amountNo
addon_idYes
event_idYesEvent UUID returned by search_events.
quantityNo
is_enabledNo
descriptionNo
ticket_type_idsNo

Output Schema

NameRequiredDescription
hintYes
addonYes
messageYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false, so safety basics are covered. The description adds nothing beyond them: it doesn't say whether this is a partial or full replacement update, whether omitted fields are cleared, or what permissions are needed — meaningful gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with no filler, and the resource scope is front-loaded. But it is short because it omits required information rather than because it is dense, so conciseness here is under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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, but with 8 parameters at 13% coverage an update tool should at least state partial-update semantics and which fields are mutable. The description leaves an agent unable to call this correctly without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 13% — just event_id is documented. Six of the eight parameters (name, amount, quantity, is_enabled, description, ticket_type_ids) carry no schema descriptions at all, and the description does not compensate by explaining what any of them do or which are optional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (update) and resource (ticket addon) narrowed to one record within a given event. The 'update_*' naming plus the addon/event scoping makes it distinguishable from create_addon and delete_addon, though it never explicitly 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus create_addon/delete_addon, no prerequisites (e.g., that the addon must already exist, or that event_id must come from search_events), and no statement about which situations call for a partial update.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_attendeeUpdate AttendeeBInspect

Update profile fields, interests, services, and additional fields for one attendee in the provided event. Use read_interests action 'list' for interest ids and read_services action 'list' for service ids.

NameRequiredDescriptionDefault
aboutNo
emailNo
phoneNo
companyNo
user_idYesAttendee user UUID.
event_idYesEvent UUID returned by search_events.
last_nameNo
first_nameNo
designationNo
external_idNo
add_interest_idsNoInterest UUIDs to add. Use read_interests action 'list' to get valid ids.
additional_fieldsNoAdditional fields keyed by additional field id. Pass a value to set/update a field, pass null to remove it. Select, radio, checkbox, and session-select values should use additional field option ids; multi-value fields should use an array.
add_services_neededNoService UUIDs to add as needed. Use read_services action 'list' to get valid ids.
remove_interest_idsNoInterest UUIDs to remove.
add_services_offeredNoService UUIDs to add as offered. Use read_services action 'list' to get valid ids.
remove_services_neededNoService UUIDs to remove from needed.
remove_services_offeredNoService UUIDs to remove from offered.

Output Schema

NameRequiredDescription
hintYes
messageYes
attendeeYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false), so the safety burden is partly lifted. The description adds the add/remove delta semantics for interests and services, but omits key behavior for a mutation: whether omitted fields are left untouched, whether removals are reversible, and any 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with what gets updated. The second sentence is useful but partially redundant with the schema's own id-acquisition notes, so it is not quite maximally efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 the safety profile. However, for a 17-parameter mutation over nested additional_fields, the description leaves the partial-update contract and the interaction between add_/remove_ arrays unspecified — an agent still has to guess at those.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 53% with 17 parameters; the highest-risk ones (add_interest_ids, add_services_needed/offered, additional_fields) already carry detailed schema descriptions, including the null-to-remove rule for additional_fields. The description's only parameter help — pointing at read_interests/read_services for ids — duplicates what the schema already says, and it adds nothing about field-level update semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (update) plus the resource (one attendee in an event) and enumerates the field groups touched: profile fields, interests, services, additional fields. It is clearly distinct from create_attendee/delete_attendee/read_attendees, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives prerequisite guidance (use read_interests 'list' and read_services 'list' to obtain valid ids), which is real usage help. But there is no guidance on when to choose this over create_attendee/ban_attendee/group tools, and no statement about whether unlisted fields are preserved or overwritten.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_coupon_codeUpdate Coupon CodeCInspect

Update one coupon code in the provided event.

NameRequiredDescriptionDefault
codeNoThe code buyers type. Editable; past orders keep the code they were bought with.
end_timeNoValidity window end as a local event-time datetime without a timezone designator, e.g. 2026-08-21T15:00:00; interpreted in the event's timezone. Pass null to clear it.
event_idYesEvent UUID returned by search_events.
is_enabledNo
start_timeNoValidity window start as a local event-time datetime without a timezone designator, e.g. 2026-08-21T15:00:00; interpreted in the event's timezone. Pass null to clear it.
coupon_code_idYes
ticket_type_idsNo

Output Schema

NameRequiredDescription
hintYes
couponYes
messageYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare non-read-only, non-idempotent, non-destructive behavior, and the description adds nothing beyond that. It does not say whether this is a partial patch or full replacement, whether omitted fields are cleared, or whether code changes affect existing orders — all important for a mutation with a non-idempotent annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is front-loaded and has zero waste, but it is under-specified rather than concise — nothing about update semantics or required inputs is conveyed. Efficient structure, insufficient content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation with an output schema and only partial annotation coverage, the description omits patch-vs-replace semantics, what happens to unspecified fields, and how ticket_type_ids scope the coupon. The schema and annotations cover safety hints, but the description leaves too much for the agent to infer before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 57%, and three parameters (is_enabled, coupon_code_id, ticket_type_ids) have no schema-level explanation at all. The description lists no parameters and does not compensate for the gap, so semantics like what ticket_type_ids restricts are left entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update one coupon code') and scopes it to an event, so the agent knows exactly what entity is mutated. It does not distinguish this from the sibling tools create_coupon_code and delete_coupon_code, leaving sibling differentiation to the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 create_coupon_code or delete_coupon_code, no prerequisites (e.g. needing event_id and coupon_code_id from a read/search call), and no exclusions. The only guidance is the implicit contrast between 'update' and the sibling verbs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_default_user_fieldUpdate Default User FieldBInspect

Update registration form visibility, registration form mandatory state, display name, and position for one default user field in the default registration flow.

NameRequiredDescriptionDefault
visibleNoWhether this default field is visible on the registration form.
event_idYesEvent UUID returned by search_events.
field_idYes
positionNo
mandatoryNoWhether this default field is mandatory on the registration form.
display_nameNo

Output Schema

NameRequiredDescription
hintYes
fieldYes
messageYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so safety is covered and the description doesn't need to repeat it. What the description adds is scope ('one default user field'), but it omits the key mutation behaviors: whether omitted attributes are left unchanged or reset, and why idempotentHint=false for what looks like a set-style update. That partial-update semantics gap is the main missing piece.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the mutatable attributes and closes with the scoping constraint. Efficient with no filler, though the comma-heavy enumeration of two near-identical 'registration form' clauses reads slightly redundantly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 the safety profile. Against that, six parameters with a nested free-form object and only 50% coverage leaves too much for the agent to guess, and there is no mention of how field_id is obtained or what happens to unspecified fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, and the description helpfully names the four updatable attributes, which maps onto visible, mandatory, position and display_name. However it says nothing about field_id (which must come from a read of the registration form, not from search_events like event_id) and does nothing to explain display_name as a nested localized-name object whose inner shape is fully undocumented. Baseline 3 is the ceiling here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (update) and resource (one default user field) and enumerates the four mutatable attributes, so an agent knows exactly what changes. The phrase 'default user field ... in the default registration flow' implicitly separates it from the sibling update_additional_user_field, but never names that sibling, so the differentiation is inferential rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can deduce this is the tool for tweaking visibility/mandatory/position/display name of built-in registration fields. There is no statement of prerequisites (does editing the default field require an active registration flow?), no when-not guidance, and no pointer to update_additional_user_field or read_registration as the companion calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_email_templateUpdate Email TemplateA
Idempotent
Inspect

Update an email template's subject and body. Cannot update a template linked to an active reminder/promotion mailer. Two update modes: - is_custom=false (recommended): provide 'content' as valid MJML markup. MJML is validated and compiled to HTML server-side; source is stored in content_template. - is_custom=true: provide 'body' as raw rendered HTML. Use this when you want full control and don't need MJML's responsive primitives. Template variables — use ||Variable Name|| in subject or body; they are substituted per-recipient at send time. Event: ||Start Date||, ||Start Time||, ||End Date||, ||End Time||, ||Venue Name||, ||Venue Link||, ||Venue Address||, ||App Name||, ||iOS App Link||, ||Android App Link||, ||Web App Link||, ||Web Site Link|| Recipient (user): ||First Name||, ||Last Name||, ||Full Name||, ||User Name||, ||Email||, ||Phone||, ||Designation||, ||Company||, ||User QR Code|| (renders as QR image URL), ||External Id||, ||Attendee Id||, ||Ticket Id||, ||Ticket Type||, ||Ticket Type Description||, ||Certificate Link|| Also supported: any additional user field defined on the event — reference it by the field's display name, e.g. ||Company Size||.

NameRequiredDescriptionDefault
bodyNoFull rendered HTML body (required when is_custom=true).
contentNoMJML markup (required when is_custom=false).
subjectYesEmail subject template. May include ||*Variable*|| placeholders.
event_idYesEvent UUID returned by search_events.
is_customNofalse means provide MJML in 'content'; true means provide raw HTML in 'body'.
template_idYesEmail template UUID.

Output Schema

NameRequiredDescription
hintYes
messageYes
templateYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only say non-read-only, idempotent, non-destructive; the description adds real behavior: updates fail for templates tied to active mailers, MJML is validated and compiled server-side, source is persisted in content_template, and variables are substituted per-recipient at send time. It does not cover validation-failure behavior 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action, the hard constraint, and the two modes before the reference material. The long enumerated variable list is useful but bulky and reads more like reference documentation than selection guidance, slightly diluting the opening.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and the description covers modes, constraints, and templating syntax. Remaining gaps are minor: no note on whether omitted fields are left unchanged, and no hint about which sibling provides template_id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description goes well beyond it: it explains the is_custom/content/body coupling, what the content field stores, and the exact ||*Variable*|| placeholder syntax with a full list of event, recipient, and custom user-field variables supported in subject and body.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update an email template's subject and body') and immediately bounds scope with the constraint about active reminder/promotion mailers. No sibling tool (read_email_templates, update_mailer, create_mailer) could be confused with it, and the two update modes are spelled out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends is_custom=false and explains exactly when to choose is_custom=true ('when you want full control and don't need MJML's responsive primitives'). It also gives a clear precondition (cannot update a template linked to an active mailer). It stops short of routing to related tools such as read_email_templates for obtaining template_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_exhibitorUpdate ExhibitorCInspect

Update one exhibitor in the provided event. Use read_interests action 'list' for interest ids and read_services action 'list' for service ids.

NameRequiredDescriptionDefault
webNo
nameNo
aboutNo
emailNo
phoneNo
addressNo
booth_noNo
event_idYesEvent UUID returned by search_events.
location_idNo
category_idsNo
exhibitor_idYes
cover1_url_altNoCover image URL.
logo_image_urlNoLogo image URL.
add_interest_idsNoInterest UUIDs to add. Use read_interests action 'list' to get valid ids.
add_services_neededNoService UUIDs to add as needed. Use read_services action 'list' to get valid ids.
remove_interest_idsNoInterest UUIDs to remove.
add_services_offeredNoService UUIDs to add as offered. Use read_services action 'list' to get valid ids.
remove_services_neededNoService UUIDs to remove from needed.
remove_services_offeredNoService UUIDs to remove from offered.

Output Schema

NameRequiredDescription
hintYes
messageYes
exhibitorYes
feature_selection_idYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false), so the bar is lower, but the description adds no behavior beyond the lookup hint. For a tool with add_*/remove_* array semantics it never says whether omitted fields are left unchanged, whether removing a non-existent interest errors, or whether the call is all-or-nothing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler; the core action is front-loaded and the ID-lookup hint follows. It is efficient, though the size is arguably too small for a 19-parameter mutation rather than too large.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 19 parameters (only 2 required), partial-update semantics, and a non-idempotent hint, an agent needs to know what happens to unmentioned fields and to the add/remove lists. The description covers none of that; the existing output schema excuses it from explaining return values, but the mutation contract itself is undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 47% across 19 parameters; the schema documents event_id, cover1_url_alt, logo_image_url and the add/remove arrays, but leaves name, about, email, phone, address, booth_no, web, location_id, category_ids and exhibitor_id bare. The description only reinforces the interest/service ID lookups already stated in the schema and compensates for none of the undocumented fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update one exhibitor') scoped to an event, which separates it from create_exhibitor, delete_exhibitor and update_exhibitor_category that sit alongside it. It stops short of naming those siblings or describing what an update actually changes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives concrete prerequisite lookups (read_interests action 'list', read_services action 'list') for the ID-bearing array parameters, which is real routing guidance. However, it gives no guidance on when to choose this over create_exhibitor/update_exhibitor_category, or on preconditions such as the exhibitor having to exist in that event.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_exhibitor_categoryUpdate Exhibitor CategoryCInspect

Update one exhibitor category in the provided event.

NameRequiredDescriptionDefault
titleYes
event_idYesEvent UUID returned by search_events.
category_idYes

Output Schema

NameRequiredDescription
hintYes
messageYes
categoryYes
feature_selection_idYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already establish that this is a non-readonly, non-destructive, non-idempotent, closed-world mutation. The description adds only the scope of updating one category in an event and does not explain partial-vs-full update behavior, required existence of the category, permission needs, or effects on unspecified fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted wording. However, it is arguably too terse for a three-parameter mutation tool, so it loses some structure value despite being concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and annotations, but the input schema has low description coverage and the description does not fill the gaps. For an update tool with three required parameters, the definition is too sparse to fully guide correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 33% schema description coverage, the description should compensate for undocumented parameters but does not. It does not clarify the meaning of category_id or title, nor does it explain that title is the new category name and category_id selects the target within event_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Update one exhibitor category") and adds the scoping detail that the category belongs to the supplied event. It is clear what operation is performed, though it does not explicitly distinguish this from siblings like create_exhibitor_category, delete_exhibitor_category, or update_exhibitor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when modifying an existing exhibitor category, but gives no explicit when-to-use guidance, prerequisites, or alternatives. It does not say when to choose this over create/delete/update sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_flowUpdate Zuno FlowA
Idempotent
Inspect

Update a Zuno flow's draft. Pass spec for a custom or template-copy flow, or overrides for a nunify flow (name, description, intro, entry.card, entry.ask, steps by id with title, subtitle, hidden_option_ids and options by id, output.extra_guidance, output.knowledge_query, settings.expire_after_minutes). Also the switch (enabled), name, description and access. Never changes what is published.

NameRequiredDescriptionDefault
nameNo
specNoThe flow definition (ZUNO-SPEC-01 section 5): name, description, intro, steps (single_select, multi_select, text, rating, number; options with ids), output (generate with prompt_template and tools, handoff with category, or record), entry (card, ask, link) and settings. Text fields are plain strings or {default_ln: ...} maps. Use validate_flow to check it.
enabledNoShow the flow to attendees (a published flow only).
flow_idYesFlow UUID returned by list_flows.
event_idYesEvent UUID returned by search_events.
group_idsNo
overridesNoOverrides for a nunify flow, keyed as described above.
descriptionNo
access_levelNo

Output Schema

NameRequiredDescription
flowYes
messageYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare non-destructive, idempotent, non-read-only behavior, so the bar is lower; the description still adds real value by stating that only the draft is mutated and published content is never touched. It omits permission/auth requirements and whether omitted fields are left untouched.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the one-line purpose, then the payload routing rule and the override key list. The long parenthetical is dense but earns its space because the schema's own `overrides` description is circular ("keyed as described above"), so the description has to carry that enumeration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-param nested-object mutation with an output schema and full annotations, this covers the decisive choices (which payload path, draft-only scope, what fields are editable). The remaining gap is replacement semantics — whether passing `spec` overwrites the whole definition — and the access_level/group_ids pairing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

At 56% schema coverage with 9 params and nested objects, the description compensates: it disambiguates `spec` vs `overrides`, spells out the override key space (entry.card, steps by id, output.extra_guidance, settings.expire_after_minutes) that the schema only gestures at, and maps `enabled` to the switch plus `access`. It does not connect `access_level: groups` to `group_ids`, and `group_ids` itself is never explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Update a Zuno flow's draft" gives a specific verb and resource with explicit scope, and "Never changes what is published" cleanly separates it from publish_flow and unpublish_flow. An agent can distinguish it from create_flow, get_flow and validate_flow without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the routing rule between the two mutually exclusive payload paths: pass `spec` for a custom or template-copy flow, `overrides` for a nunify flow. It does not name the alternative tools (validate_flow, publish_flow) or explicitly say when not to use this, but the draft-only scope implies where the boundary lies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_interestUpdate InterestCInspect

Update one interest in the provided event.

NameRequiredDescriptionDefault
nameYes
event_idYesEvent UUID returned by search_events.
interest_idYes

Output Schema

NameRequiredDescription
hintYes
messageYes
interestYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: it does not say which fields get mutated, whether unspecified fields are preserved, or that calling it twice is not idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence with no filler, so nothing is wasted, but it is under-specified rather than efficient. The useful information (which field is being changed) is absent rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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, but for a non-idempotent mutation with three required parameters and only one-third schema coverage the description should at minimum state what is being updated and where the IDs come from. It doesn't.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% – just `event_id` is documented ("Event UUID returned by search_events"). The description provides no meaning for `interest_id` (presumably obtained via read_interests) or for `name`, leaving two of three parameters undocumented in both the schema and the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb+resource ("Update one interest") is identifiable and the event scoping is stated, but the sentence largely restates the tool name and title. It never says what about the interest is updatable (the schema suggests only `name`) nor distinguishes it from create_interest, delete_interest, or read_interests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this instead of create_interest/delete_interest, no statements about prerequisites (e.g., needing an existing interest from read_interests), and no exclusions. An agent must infer the entire usage context 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.

update_locationUpdate LocationB
Idempotent
Inspect

Update an existing location for the provided event.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
locationYesLocation fields to update.
location_idYesLocation UUID.

Output Schema

NameRequiredDescription
messageYes
locationYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, so safety and repeatability are covered structurally. The description adds only that the location must be 'existing' (a partial-update implication), but says nothing about whether omitted fields in the nested location object are preserved or cleared — a meaningful gap for a mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; nothing is wasted, though the extreme brevity means it also carries no additional structure or detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the safety profile, so much of the burden is off the description. However, for a mutation on a nested object, the description leaves partial-update semantics (e.g., whether omitting checkin_limit resets it) unexplained, which is relevant to calling it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and every parameter (event_id, location_id, nested location fields) is documented in the schema itself. The description adds no syntax, format, or nesting behavior beyond what the schema already provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (update) and resource (location) plus a scope qualifier (for the provided event), which distinguishes it from create_locations, delete_location, and read_locations. It does not explicitly name those siblings as alternatives, keeping it just 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Update an existing location" implies the location must pre-exist, but there is no explicit guidance on when to use this versus create_locations or read_locations, and no stated prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_mailerUpdate MailerA
Idempotent
Inspect

Update an existing mailer. The kind is immutable. Active reminder/promotion mailers cannot be updated. Pass scheduled_at to schedule delivery instead of editing; only reminder/promotion mailers can be scheduled. Times are interpreted in the event's timezone: pass a naked local datetime such as 2026-08-21T15:00:00; datetimes carrying a timezone designator are rejected.

NameRequiredDescriptionDefault
nameNoMailer name.
event_idYesEvent UUID returned by search_events.
bcc_emailNoBCC email.
cc_emailsNoCC emails.
group_idsNoGroup UUIDs. Required when access_level is 'Group'. Use list_groups to find group IDs.
mailer_idYesMailer UUID to update.
tag_levelNoPromotion tag level.
location_idNoLocation ID (checkin_notification only).
access_levelNoMailer audience.
scheduled_atNoFuture local event-time datetime without a timezone designator, e.g. 2026-08-21T15:00:00; times are interpreted in the event's timezone. When set, schedules the mailer instead of editing fields.
email_subjectNoEmail subject template.
new_template_idNoEmail template source override.
prospect_tag_idsNoProspect tag IDs for promotions.
feature_selection_idNoFeatureSelection ID.
include_calendar_inviteNoAttach the event's calendar invite (.ics) to every mail. Only registration_confirmation and reminder mailers carry one: it defaults to true for those and is ignored for other kinds.

Output Schema

NameRequiredDescription
hintYes
mailerYes
messageYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare the mutation safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true), and the description adds genuinely non-obvious behavior: immutability of kind, rejection of active reminder/promotion mailers, the scheduling side effect, and hard rejection of timezone-designated datetimes. It does not cover permissions/authorization or whether omitted fields are left untouched versus cleared.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four compact sentences, front-loaded with the operation and its blockers, then the scheduling branch, then the timezone rule. The timezone sentence duplicates what the schema already states, which is the only wasted material.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter mutation with an output schema and full schema coverage, the description supplies exactly the cross-cutting rules an agent cannot infer from fields alone (kind immutability, kind-based update eligibility, scheduling vs editing). It omits kind-specific field validity (e.g., which fields apply to which mailer kind) and failure modes when constraints are violated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 15 parameters, including scheduled_at's naked-local-datetime rule and location_id's checkin_notification-only scope. The description's datetime guidance largely restates the schema's own scheduled_at description, adding emphasis rather than new meaning; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Update an existing mailer") and immediately narrows scope with two hard constraints: the kind is immutable and active reminder/promotion mailers cannot be updated. It is clearly distinguishable from create_mailer, duplicate_mailer, and delete_mailer, 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-not conditions (active reminder/promotion mailers) and explains the scheduled_at alternative path (schedule delivery instead of editing), which is the key branch an agent must get right. It stops short of routing to named alternatives such as deactivate_mailer or update_notification_schedule when the block applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_notification_scheduleUpdate Notification ScheduleA
Idempotent
Inspect

Set, change, or remove a notification's scheduled delivery time. Pass a future datetime to schedule a draft or reschedule an already scheduled notification, or null to remove the schedule and revert to a draft. Times are interpreted in the event's timezone: pass a naked local datetime such as 2026-08-21T15:00:00; datetimes carrying a timezone designator are rejected.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
scheduled_atYesNew scheduled time in the event's timezone, or null to remove the schedule.
notification_idYesUUID of the scheduled notification.

Output Schema

NameRequiredDescription
hintYes
messageYes
notificationYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (idempotent, non-destructive, non-readonly), the description discloses the state transition semantics — null reverts to a draft — and the validation contract: times are interpreted in the event's timezone and datetimes carrying a timezone designator are rejected. That rejection rule is the kind of surprise failure mode an agent otherwise only discovers at call time.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each doing distinct work: purpose, per-value behavior, and timezone/format rule. The safety-critical format constraint is stated up front rather than buried, and there is no restatement of the title or schema boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return values, and the annotations carry the safety profile. The remaining things an agent needs — what the tool mutates, how null behaves, and the exact datetime format accepted — are all present, leaving no material gap for a 3-parameter call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3, and the schema already documents scheduled_at's format and null meaning. The description nonetheless adds the enforcement detail — tz-designated datetimes are rejected, only naked local times are accepted — which sharpens the accepted syntax beyond the schema's example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb set ("Set, change, or remove") applied to a precise resource ("a notification's scheduled delivery time"), so the mutation and its target are unambiguous. The resource qualifier (notification vs. poll vs. survey) also separates it from siblings like update_poll_schedule and update_survey_schedule without needing their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit conditions for each branch: a future datetime schedules a draft or reschedules an existing schedule, and null removes the schedule and reverts to a draft — this is real when-to-use guidance keyed to parameter values. What it doesn't do is name an alternative tool (e.g., publish_draft_notification, create_notification) for the case where the caller actually wants to send now rather than schedule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_poll_scheduleUpdate Poll ScheduleA
Idempotent
Inspect

Schedule, reschedule, or unschedule a future publish or close action on a poll. Pass a future datetime in scheduled_at to schedule, or null to remove the schedule. Times are interpreted in the event's timezone: pass a naked local datetime such as 2026-08-21T15:00:00; datetimes carrying a timezone designator are rejected.

NameRequiredDescriptionDefault
poll_idYesUUID of the poll.
event_idYesEvent UUID returned by search_events.
scheduled_atYesNew scheduled time in the event's timezone, or null to remove the schedule.
schedule_actionYesThe action to schedule or unschedule: 'publish' or 'close'.

Output Schema

NameRequiredDescription
hintYes
pollYes
messageYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnly=false, destructive=false, idempotent=true, openWorld=false), so the bar is lower. The description still adds real behavioral context beyond them: times are interpreted in the event's timezone and timezone-carrying datetimes are rejected outright, which is failure-mode information an agent needs before calling. It stops short of saying what happens on a past timestamp or which permissions are required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero filler, and the core action-plus-condition is front-loaded before the timezone detail. Each sentence carries a distinct piece of information (what it does, the null/removal branch, the datetime format rule).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and all four required parameters are covered in the schema. The description supplies the timezone/format contract and the removal semantics, which is most of what an agent needs; only edge behavior (past timestamps, permission requirements, effect on an already-published poll) is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description goes beyond the schema by restating the critical constraint in prose — naked local datetime, timezone designators rejected, future-only — which is the exact thing an agent is likely to get wrong when filling scheduled_at.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States specific verbs (schedule, reschedule, unschedule) against a specific resource (future publish or close action on a poll), which an agent can distinguish from immediate-action siblings like publish_poll or close_poll by the word 'future'. It never names a sibling explicitly, so differentiation is inferable rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly explains the two modes of use within the tool (future datetime to schedule, null to remove), which is genuine usage guidance. However, it gives no guidance on when to choose this over publish_poll/close_poll (act now) or why a schedule might be preferred, so the alternative-selection question is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_questionUpdate QuestionA
Idempotent
Inspect

Update an existing question's text, type, or options in the provided event. Provide either a survey_id or assessment_id plus the question_id.

NameRequiredDescriptionDefault
optionsNoAnswer options. Required for single_select, multi_select, image_text, and ranking (min 2). Not used for file_upload.
event_idYesEvent UUID returned by search_events.
positionNoPosition of the question. Defaults to end of list.
survey_idNoSurvey UUID. Provide this or assessment_id to identify the question bank.
slider_maxNoMaximum value for slider questions.
slider_minNoMinimum value for slider questions.
question_idYesExisting question UUID.
is_mandatoryNoWhether the question is mandatory. Defaults to false.
rating_scaleNoRating scale (1-10). Required for rating questions.
rating_shapeNoRating shape: 0=Stars, 1=Thumbs, 2=Hearts, 3=Smiley. Required for rating questions.
assessment_idNoAssessment UUID. Provide this or survey_id to identify the question bank.
question_textYesThe question text. Required. If the user has not provided it, ask the user before proceeding. Never invent question text or use placeholder content.
question_typeYesType of question: single_select, multi_select, free_text, file_upload, image_text, rating, slider, ranking. Required. If the user has not provided it, ask the user before proceeding. Never assume a question type.
max_selectionsNoMaximum selections for multi_select questions.
min_selectionsNoMinimum selections for multi_select questions.
slider_step_upNoStep increment for slider questions.

Output Schema

NameRequiredDescription
hintYes
messageYes
questionYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, idempotent, non-destructive update. The description adds that it targets an existing question in a provided event, but it does not disclose what happens to existing options or responses when question_type or options change, which would be valuable for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler. The core update action is front-loaded, followed by the key identification constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich schema coverage, annotations, and an output schema, the description covers the essential action and identification requirement. It could do more to flag type-dependent parameters, but the structured schema carries that detail adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 16 parameters are already documented in the input schema. The description only names text, type, options, and the survey/assessment ID choice, adding little meaning beyond the schema itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: update an existing question's text, type, or options in a given event. It distinguishes updating from creating or deleting by saying 'existing question,' but does not explicitly name sibling alternatives such as create_question or delete_question.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a useful identification prerequisite: provide either survey_id or assessment_id plus question_id. However, it does not explain when to choose this over create_question or delete_question, nor does it cover type-specific usage conditions beyond what the schema already says.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_serviceUpdate ServiceCInspect

Update one service in the provided event.

NameRequiredDescriptionDefault
nameYes
event_idYesEvent UUID returned by search_events.
service_idYes

Output Schema

NameRequiredDescription
hintYes
messageYes
serviceYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — it doesn't say whether this is a partial or full replacement update, what happens to unspecified fields, or whether the target service must already exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence is front-loaded and wastes no words, but the brevity stems from under-specification rather than disciplined concision. There is room to add behavioral and parameter context without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists (so return values needn't be described), this is a mutation tool with a 33%-coverage schema and a near-empty description. An agent lacks what it needs to know about the update semantics and parameter roles before invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% — event_id is documented (points to search_events) but service_id and name are bare. The description doesn't compensate: it never explains that service_id identifies the target or what 'name' means (rename only? full update?), so half the required parameters remain opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb and resource ('Update one service') and scopes it ('in the provided event'), so the basic operation is clear. However, it offers no differentiation from the surrounding update_* family or from create_service/delete_service/read_services, leaving the agent to infer scope from names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus create_service, delete_service, or read_services, and no prerequisites or exclusions are mentioned. Usage must be fully inferred from the sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_sessionUpdate SessionA
Idempotent
Inspect

Update an existing agenda session. Provide only the fields to change inside the session object. All session times are local to the event's timezone - pass naked local datetimes and never a timezone designator. ID arrays replace existing values when provided.

NameRequiredDescriptionDefault
sessionYesPartial update payload. Include only the fields to change.
event_idYesEvent UUID returned by search_events.
session_idYesExisting agenda session UUID.

Output Schema

NameRequiredDescription
hintYes
messageYes
sessionYes

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare idempotentHint=true and destructiveHint=false. On top of that, the description adds real behavioral detail: the update is partial, so unspecified fields are left alone; the datetimes must be naked local event-timezone values; and the ID arrays replace rather than append. Those are exactly the traits an agent could get wrong. It does not cover permissions or failure behavior, so a 4, not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences put the purpose first, then the partial-update rule, then the two gotchas an agent is most likely to trip over: timezone handling and array replacement. Every sentence earns its place, and none repeats the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, return values need not be explained. The annotations already cover the safety profile. In this nested-payload mutation, the description covers partial updates, time formatting, and array replacement well. It only leaves out authorization requirements and what happens when session_id does not belong to event_id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every field, including the array-replacement semantics and the no-timezone-designer rule. The description restates those rules rather than adding new detail about the nested session payload. With the schema doing the heavy lifting, 3 is the right baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific verb and resource: 'Update an existing agenda session.' That distinguishes it from create_sessions and delete_session by implication. It never names a sibling explicitly, though, so the boundary with create_sessions or update_session_category has to be inferred.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Provide only the fields to change inside the session object' is a concrete rule about how to call the tool. The description never says when to choose this tool over create_sessions or delete_session, and it gives no prerequisites, such as needing the session to already exist under that event. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_session_categoryUpdate Session CategoryA
Idempotent
Inspect

Update an existing session category. You can rename the category or change its image.

NameRequiredDescriptionDefault
titleNoNew category title.
event_idYesEvent UUID returned by search_events.
image_urlNoNew image URL.
category_idYesCategory UUID.

Output Schema

NameRequiredDescription
messageYes
categoryYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-destructive, idempotent mutation. The description adds useful scope by saying it updates an existing category and limits the effect to renaming or changing the image. It does not mention permissions, side effects, or what remains unchanged, so with annotations covering the safety profile a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences and front-loads the update action. The second sentence adds concrete scope, though it slightly restates the updateable fields already present in the schema. It is efficient and free of clutter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, the input schema is fully documented, and annotations carry the mutation safety profile. The description is therefore complete enough for an agent to call the tool correctly. A minor gap is the absence of any mention of required identifiers or failure conditions, but those are largely covered by the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so event_id, category_id, title, and image_url are already documented in the schema. The description adds only the mapping of title/image to rename/change-image functionality, which is useful but does not add syntax, constraints, or semantics beyond the schema. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: update an existing session category. It also names the two editable fields, making the effect clear. However, it does not explicitly differentiate the tool from create_session_categories, delete_session_category, or update_session, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'existing session category' implies this is for modifying rather than creating or deleting a category, and the description names rename/image changes. But there is no explicit when-to-use guidance, no exclusions, and no named alternative tools such as create_session_categories or delete_session_category.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_site_blockUpdate Site BlockA
Idempotent
Inspect

Update a specific block's content or styles. Properties are merged shallowly with the block's existing fields (nested hashes are merged one level). Colors: always prefer theme color variables like 'rgba(var(--theme-primary-color), 1.0)' over hex/rgb literals. Use get_site_block_schema to see the block type's editable properties.

NameRequiredDescriptionDefault
page_idYesPage UUID.
block_idYesBlock ID within the section.
event_idYesEvent UUID returned by search_events.
propertiesYesProperties to set on the block.
section_idYesSection UUID.

Output Schema

NameRequiredDescription
hintYes
messageYes
sectionYes

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already say this writes, is idempotent, not destructive, not open-world. So the description does not need to explain safety. It adds real value by explaining merge semantics: shallow merge with nested hashes merged one level. That implies fields it does not mention are preserved, which an agent cannot infer from the annotations. It does not cover permissions, validation failure behavior, or what happens when a property is unknown.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four short sentences. It states the action first, then merge semantics, then color convention, then the schema helper. Each sentence adds distinct, actionable detail, and nothing is redundant with the title or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given five required parameters, a nested free-form object, an existing output schema, and annotations that cover safety, the description supplies the important missing semantics: the merge model, the color format, and the schema-discovery step. It does not say what an invalid property or unknown block type does, but for a tool of this weight it could do so.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the five parameters are documented fully in the schema, and the baseline is 3. The description still adds meaning about the free-form 'properties' object: it is merged rather than replaced, nested hashes merge one level down, and color values should use theme CSS variables. That goes beyond the schema's 'Properties to set on the block.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: update a block's content or styles. That is enough to separate it from add_site_block, remove_site_block, and reorder_site_blocks, and the word 'block' distinguishes it from update_site_section_styles. However, it does not name any sibling explicitly; the only tool it names is get_site_block_schema, a helper rather than an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tells the agent to call get_site_block_schema first to learn a block type's editable properties, and states a convention for color values. It does not say when NOT to use this tool or route to a section-level or block-creation sibling, but the usage context is otherwise clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_site_pageUpdate Site PageA
Idempotent
Inspect

Update a registration site page's title, slug, config, or style. Config and style are merged shallowly with existing values. The home page's slug cannot be changed away from '/'. Page settings live under config — see the config property for the supported keys, including the page-wide effects layer.

NameRequiredDescriptionDefault
slugNoNew URL slug.
styleNoPage style object (merged).
titleNoNew page title.
configNoPage configuration object (merged shallowly). Supported keys, mirroring nunify-web's PageSettings: seo: {title, description, keywords, canonical_url, ogTitle, ogDescription, ogImage, noindex, excludeFromSitemap} access: {audience: everyone|members|password, password, publishAt, unpublishAt, requireTicket} effects: page-wide decorative layers — {background: none|sparkles|floating-shapes|gradient-mesh|mesh-grain|animated-gradient|noise|bokeh|emoji-float|aurora|snow|petals|film-grain|starfield, onLoad: none|confetti|fireworks, interaction: none|click-confetti|cursor-trail|cursor-spotlight, emojiSet: emoji string used by emoji-float, backgroundVideo, foregroundVideo} typography: {bodyFont, headingFont, bodyFontSize, bodyFontUrl, headingFontUrl} advanced: {redirectFrom, bodyClass, customHead, disableContainerQueries} responsive: {mobile, tablet, desktop} customCss, customJs
page_idYesPage UUID to update.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
hintYes
messageYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-destructive, idempotent update. The description adds useful behavior beyond annotations: config and style are merged shallowly, and the home page slug has a special restriction. It does not discuss permissions or error behavior, but the key mutation semantics are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and updatable fields, then adds the merge behavior and slug constraint without repetition. Every sentence carries useful information for invoking the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotations, 100% schema coverage, nested config object, and output schema, the description is largely complete. It explains the mutation semantics and one important edge case, though it could do more to route between this tool and closely related site-update siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining shallow merge behavior for config and style and by stating the home page slug constraint, which the slug schema field does not mention.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: update a registration site page, with the updatable fields named as title, slug, config, and style. It is clearly distinct from create/delete/duplicate/read siblings by resource, but it does not explicitly distinguish itself from update_site_settings or update_site_block.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when modifying an existing page and gives one concrete exclusion: the home page's slug cannot be changed away from '/'. However, it does not say when to choose this tool over update_site_settings, update_site_block, or update_site_section_styles, nor does it state prerequisites beyond the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_site_section_stylesUpdate Site Section StylesA
Idempotent
Inspect

Update section-level styles (background, padding, gap, alignItems, justifyContent, textAlign, maxWidth, etc.). Also supports 'separators' for decorative top/bottom shapes between sections: {separators: {top: {type, color, height, width?, flip?}, bottom: {...}}}. The shape is drawn inside this section, filled with 'color', hugging its top or bottom edge, so it reads as the neighbouring section's background flowing into this one. Pick 'color' from the neighbour, not from this section: a top separator should usually use the previous section's background colour and a bottom separator the next section's (read them with get_site_section first; a colour that matches this section's own background makes the shape invisible). Prefer a bottom separator on the section above over a top separator on the one below. Skip separators against image, video or gradient backgrounds unless the colour is chosen to blend with them. Use separators sparingly: they are an accent, not a default. Only add one where two adjacent sections have clearly different background colours and the transition benefits from softening, at most a few per page, and stick to one or two shape types across the whole site so it looks designed rather than busy. Do not add them unless the user asked for them or the design clearly calls for one. 'height' is a px value (e.g. '60px') that scales down on phones. 'flip' mirrors the shape horizontally; vertical orientation is derived from the edge, so 'invert' is ignored. Separator types: wave, wave-opacity, curve, curve-asymmetric, tilt, triangle, triangle-asymmetric, arrow, split, book, clouds, mountains. Background supports colour, image, gradient and video: {backgroundType: color|image|gradient|video, backgroundColor, backgroundImage, backgroundGradient, backgroundVideo, backgroundVideoProvider: direct|youtube|vimeo, backgroundSize, backgroundPosition, backgroundRepeat, backgroundAttachment, backgroundOverlay, backgroundOverlayOpacity, backgroundBlur}. Shape and photo treatments live on the same object: {clipPath, filter, opacity, boxShadow, borderRadius}.

NameRequiredDescriptionDefault
page_idYesPage UUID.
event_idYesEvent UUID returned by search_events.
propertiesYesStyle properties to merge with existing section styles.
section_idYesSection UUID.

Output Schema

NameRequiredDescription
hintYes
messageYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly=false, idempotent=true, destructive=false), yet the description adds substantial operational context: separator color must come from the neighbouring section or the shape becomes invisible, separators are drawn inside this section hugging its edge, height scales down on phones, and 'invert' is silently ignored because vertical orientation derives from the edge. These are real behavioral gotchas not expressible in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, but it is a single dense paragraph packed with nested parentheticals and repeated restraint advice ('use separators sparingly' and 'do not add them unless the user asked') that could be collapsed. The separator guidance, which is a secondary feature, dominates the length relative to the core style update.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations plus an output schema mean the safety profile and return shape are already covered, and the description fills the large remaining gap of the untyped properties object with concrete field lists and design rules. It is nearly complete; what's missing is how merges behave against existing nested styles (e.g. whether a partial background replaces or augments the current one).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The four top-level params are 100% schema-documented, but the required 'properties' object is free-form (additionalProperties: true) with no nested schema, so the description must carry the payload — and it does, documenting background fields (backgroundType enum values, overlay, blur), separator shape structure with type/color/height/width/flip, and the clipPath/filter/opacity/shape treatment family. It falls short of 5 because the list ends in 'etc.' and the merge semantics for nested/array values are left to the schema's one-line note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opening sentence states a precise verb+resource ('Update section-level styles') and enumerates the concrete properties (background, padding, gap, alignItems, justifyContent, textAlign, maxWidth). The scope word 'section-level' plus the separator/background sub-topics make it clear this is not the block, page, or settings updater. An agent can distinguish it from update_site_block/update_site_page/update_site_settings 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Unusually rich: it gives explicit when-to-use (two adjacent sections with clearly different backgrounds), when-not to use ('Do not add them unless the user asked for them or the design clearly calls for one'), an alternative preference ('Prefer a bottom separator on the section above over a top separator on the one below'), and a prerequisite ('read them with get_site_section first'). The only blemish is that the named prerequisite tool doesn't match a sibling exactly (read_site_sections), and there is no guidance on choosing this over update_site_block.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_site_settingsUpdate Site SettingsA
Idempotent
Inspect

Update registration site settings. Dispatch via target:

  • theme: Update the registration site's theme colors (10 color tokens plus a background image URL). Only provided keys are changed. Takes colors object.

  • typography: Update the registration site's typography. Send the complete tokens hash when changing tokens: body and h1-h6 must include font_family, font_size, font_weight, line_height, and letter_spacing (each with base; sm is optional). Send the complete font_faces array when changing fonts. Takes typography object.

  • navigation: Update the registration site's navigation config (visibility) and/or navigation_data. navigation_data is a single section object {id, type: 'section', name, blocks, styles} typically with styles.position = 'fixed', height '4rem', width '100vw', and zIndex 10. Colors for nav block styling: prefer theme color variables like 'rgba(var(--theme-primary-color), 1.0)'. Takes navigation_config and/or navigation_data object(s). Required event_id must be the event UUID returned by search_events. This restyles the live registration site. When the styling request is vague or subjective (e.g. "make it pop"), confirm the intended look with the user before changing anything.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
hintYes
targetYes
messageYes

TDQS

A4.3/5.0
Behavior5/5

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

Beyond annotations, the description discloses that this restyles the live registration site, that theme updates only change provided keys, and that typography merges shallowly so complete token hashes and font_faces arrays must be sent. The warning to confirm vague subjective requests adds important behavioral safety context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and well structured with target-specific bullets, which suits a complex multi-mode tool. It is somewhat long, but most detail earns its place by preventing payload mistakes in the typography and navigation modes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich oneOf schema, annotations, and output schema, the description provides enough context to call the tool correctly. It covers target dispatch, required event_id provenance, shallow merge behavior, live-site impact, and confirmation for ambiguous styling requests.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds value by explaining how `target` selects distinct payloads and by giving concrete navigation_data styling details such as fixed positioning and theme color variables. It does not need to repeat every nested typography field because the schema documents those thoroughly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource (update registration site settings) and enumerates the three target modes: theme, typography, and navigation. It clearly scopes the tool to site styling/settings, though it does not explicitly name sibling tools such as update_site_section_styles or update_site_block to reinforce the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains dispatch via `target` and gives practical usage guidance, including that `event_id` must come from search_events. It also advises confirming vague/subjective styling requests before mutation, but it does not explicitly state when to choose a sibling styling tool instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_sponsorUpdate SponsorBInspect

Update one sponsor in the provided event. Use read_interests action 'list' for interest ids and read_services action 'list' for service ids.

NameRequiredDescriptionDefault
webNo
nameNo
aboutNo
emailNo
phoneNo
event_idYesEvent UUID returned by search_events.
positionNo
sponsor_idYes
cover1_url_altNoCover image URL.
logo_image_urlNoLogo image URL.
add_interest_idsNoInterest UUIDs to add. Use read_interests action 'list' to get valid ids.
add_services_neededNoService UUIDs to add as needed. Use read_services action 'list' to get valid ids.
remove_interest_idsNoInterest UUIDs to remove.
sponsor_category_idNo
add_services_offeredNoService UUIDs to add as offered. Use read_services action 'list' to get valid ids.
remove_services_neededNoService UUIDs to remove from needed.
remove_services_offeredNoService UUIDs to remove from offered.

Output Schema

NameRequiredDescription
hintYes
messageYes
sponsorYes
feature_selection_idYes

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context beyond that — it does not state whether this is a partial or full replacement update (critical given 15 optional fields), what happens to omitted fields, or whether any permission is required. Given idempotentHint=false, a note on repeat-call semantics would have been valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the core action front-loaded and the ID-lookup tip following. No filler, though the sentence could have absorbed one more clause about update semantics at no structural cost.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 17-parameter mutation tool, though, the omission of partial-vs-full update semantics and the silence on the majority of scalar fields leaves an agent guessing about side effects on unspecified data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 53%, so the description must carry weight on roughly half the parameters. It usefully explains how to obtain valid interest and service UUIDs, reinforcing the add_*/remove_* parameters. But the scalar fields (web, name, about, email, phone, position, sponsor_category_id) get no semantic elaboration in either the schema or description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update one sponsor') scoped to an event, which is clearly distinguishable from create_sponsor, delete_sponsor, and read_sponsors. It does not explicitly differentiate from update_sponsor_category or update_exhibitor, but the resource noun carries that distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a concrete prerequisite workflow: use read_interests action 'list' for interest ids and read_services action 'list' for service ids. However, it never says when to choose update_sponsor over create_sponsor (re-adding) or update_sponsor_category (changing the category entity), and no exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_sponsor_categoryUpdate Sponsor CategoryCInspect

Update one sponsor category in the provided event.

NameRequiredDescriptionDefault
titleYes
event_idYesEvent UUID returned by search_events.
category_idYes

Output Schema

NameRequiredDescription
hintYes
messageYes
categoryYes
feature_selection_idYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent, closed-world operation. The description adds no meaningful behavioral context beyond restating the action, such as which fields can change, whether the category must exist, or what happens on 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is front-loaded and waste-free. However, for a mutation tool with low schema coverage, the extreme terseness creates under-specification rather than effective conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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. Still, for a three-parameter mutation tool with extensive sibling competition and only partial schema documentation, the description leaves important semantics and behavioral context unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, with event_id documented but category_id and title undocumented. The description vaguely maps 'event' and 'category' but never explains category_id or mentions the required title parameter, so it does not compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Update one sponsor category.' It also scopes the operation to 'the provided event.' It does not differentiate this from sibling tools such as create_sponsor_category, delete_sponsor_category, or update_sponsor, which prevents a top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, nor any prerequisites such as requiring an existing category or event permissions. The sentence only implies usage from the verb 'Update.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_survey_scheduleUpdate Survey ScheduleA
Idempotent
Inspect

Schedule, reschedule, or unschedule a future publish or close action on a survey. Pass a future datetime in scheduled_at to schedule, or null to remove the schedule. Times are interpreted in the event's timezone: pass a naked local datetime such as 2026-08-21T15:00:00; datetimes carrying a timezone designator are rejected.

NameRequiredDescriptionDefault
event_idYesEvent UUID returned by search_events.
survey_idYesUUID of the survey.
scheduled_atYesNew scheduled time in the event's timezone, or null to remove the schedule.
schedule_actionYesThe action to schedule or unschedule: 'publish' or 'close'.

Output Schema

NameRequiredDescription
hintYes
surveyYes
messageYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare idempotent=true and destructive=false, so the description earns credit for the extra rules it adds: times are read in the event's timezone, timezone-designated datetimes are rejected outright, and null clears the schedule. The rejection rule is a real failure mode an agent would otherwise hit. It does not cover permission requirements or error behavior beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each doing distinct work: purpose, the schedule/unschedule switch, and the timezone pitfall. The most error-prone detail is front-loaded in the sentence an agent reads before constructing the call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, annotations covering the safety and idempotency profile, and full parameter descriptions, the only thing the description needed to add was the datetime format trap, and it does so explicitly. Nothing required to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the property descriptions already spell out the local-datetime format and the null-to-remove behavior, so the schema does the heavy lifting. The description restates the same semantics in prose, adding only the explicit 'rejected' consequence for tz-aware values, which justifies the baseline 3 rather than higher.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb set and resource: schedule/reschedule/unschedule a future publish or close action on a survey. That is far more precise than the tautological title. It does not, however, explicitly distinguish itself from siblings like publish_survey, close_survey, or update_poll_schedule.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly states the mechanics of both modes: pass a future datetime to schedule, pass null to remove the schedule. The 'future' constraint gives a firm boundary. It stops short of saying when to use this versus calling publish_survey/close_survey immediately, which is the main remaining ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_ticket_typeUpdate Ticket TypeCInspect

Update one ticket type in the provided event.

NameRequiredDescriptionDefault
nameNo
amountNo
currencyNo
end_timeNoSale window end as a local event-time datetime without a timezone designator, e.g. 2026-08-21T15:00:00; interpreted in the event's timezone.
event_idYesEvent UUID returned by search_events.
quantityNo
is_hiddenNo
is_enabledNo
start_timeNoSale window start as a local event-time datetime without a timezone designator, e.g. 2026-08-21T15:00:00; interpreted in the event's timezone.
descriptionNo
ticket_type_idYes
max_registrationsNo
is_waitlist_enabledNo
mail_merge_descriptionNo

Output Schema

NameRequiredDescription
hintYes
messageYes
ticket_typeYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnly=false, destructive=false, and idempotent=false, so the write/no-delete profile is covered. The description adds nothing beyond them: it does not say whether this is a partial update, what happens to fields omitted from the payload, whether sale-window changes affect already-sold tickets, or what the response contains beyond the presence of an 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler and no redundancy. It is terse rather than padded; the problem is omission, not wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter mutation tool with 21% schema coverage, one sentence is far from sufficient. An output schema exists so return values need not be explained, but partial-update behavior, field mutability and identification requirements are all missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 21% — just event_id, start_time and end_time carry descriptions — so 11 parameters (name, amount, currency, quantity, is_hidden, is_enabled, max_registrations, is_waitlist_enabled, mail_merge_description, ticket_type_id, description) are undocumented. The description compensates for none of them and gives no hint about partial-update semantics or which fields are actually modifiable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Update') and resource ('one ticket type') and anchors scope to a single event. The verb cleanly separates it from create_ticket_type and delete_ticket_type among siblings, though it never names those alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites (e.g. that the ticket type must already exist, that the event must be accessible), and no routing to create_ticket_type for new types. The agent must infer everything from the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_trackUpdate TrackB
Idempotent
Inspect

Update an existing agenda track. You can rename the track or change its color.

NameRequiredDescriptionDefault
colorNoNew hex color.
titleNoNew track title.
event_idYesEvent UUID returned by search_events.
track_idYesTrack UUID.

Output Schema

NameRequiredDescription
trackYes
messageYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description usefully narrows the mutation surface to exactly two fields, which is consistent with the idempotent hint, but says nothing about failure behavior (unknown track_id), permission requirements, or whether omitted fields are preserved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and resource, with zero preamble. The second sentence slightly restates the schema but does add the 'only these two fields' constraint, so it still earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and all parameters are described, so the description needn't cover return values. However, for a mutation tool with no stated error or partial-update semantics, it is only minimally sufficient to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters (including the two required IDs) are already documented in structured form. The description restates the two mutable fields without adding format or constraint detail beyond the schema's 'New hex color' and 'New track title' notes, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Update an existing agenda track') and enumerates the two mutable fields, so it is clearly distinct from create_tracks and delete_track. It does not explicitly name those siblings, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus create_tracks, delete_track, or read_agenda, and no prerequisites stated (e.g. that the track must already exist, or that event_id comes from search_events — that fact lives only in the schema). The reader must infer usage entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_flowValidate Zuno FlowA
Idempotent
Inspect

Dry run of publishing: every error and warning of the draft, each with a JSON pointer into the spec.

NameRequiredDescriptionDefault
flow_idYesFlow UUID returned by list_flows.
event_idYesEvent UUID returned by search_events.

Output Schema

NameRequiredDescription
messageYes
validationYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is partly covered. The description adds meaningful context beyond them: this is a non-mutating rehearsal of publishing and it reports both errors and warnings with spec locations, which tells the agent what to expect rather than just that nothing is destroyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the key mental model ('dry run of publishing') and then the output shape. Nothing is redundant or padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and both params are fully described in the schema. What's slightly missing is whether a failing validation returns normally (as a report) versus raising an error, and any precondition that a draft must exist — small but relevant gaps for a validation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented with provenance hints (flow UUID from list_flows, event UUID from search_events). The description adds no further meaning about how flow_id/event_id scope the validation, so the schema carries the load — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific operation (a dry-run validation of a draft flow) and states the return content (every error and warning with a JSON pointer into the spec). The 'dry run of publishing' framing implicitly separates it from publish_flow, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Use is only implied by the phrase 'dry run of publishing' — an agent can infer it should be called before publish_flow. There is no explicit when-to-use statement, no exclusion (e.g. don't call on a published flow), and no named alternative such as get_flow or publish_flow.

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.

  1. 3 tool updates
    • Changedcreate_ticket_type2 fields changed
      • addedOutput schema / properties / ticket_types / items / properties / mail_merge_description
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • changedOutput schema / properties / ticket_types / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "amount",
        -  "currency",
        -  "quantity",
        -  "available_quantity",
        -  "consumed_quantity",
        -  "tickets_count",
        -  "is_enabled",
        -  "is_hidden",
        -  "is_default",
        -  "priority",
        -  "start_time",
        -  "end_time",
        -  "timezone",
        -  "is_waitlist_enabled",
        -  "is_guest",
        -  "addons",
        -  "registration_perks"
        -]New value: +[
        +  "id",
        +  "name",
        +  "amount",
        +  "currency",
        +  "quantity",
        +  "available_quantity",
        +  "consumed_quantity",
        +  "tickets_count",
        +  "is_enabled",
        +  "is_hidden",
        +  "is_default",
        +  "priority",
        +  "start_time",
        +  "end_time",
        +  "timezone",
        +  "is_waitlist_enabled",
        +  "is_guest",
        +  "mail_merge_description",
        +  "addons",
        +  "registration_perks"
        +]
    • Changedread_tickets1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "enum": [
        -          "list_ticket_types"
        -        ],
        -        "type": "string"
        -      },
        -      "guest_ticket_types": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "addons": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "amount": {
        -                    "type": "number"
        -                  },
        -                  "consumed_quantity": {
        -                    "type": "integer"
        -                  },
        -                  "description": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "id": {
        -                    "type": "string"
        -                  },
        -                  "is_enabled": {
        -                    "type": "boolean"
        -                  },
        -                  "name": {
        -                    "type": "string"
        -                  },
        -                  "position": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "quantity": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "ticket_type_ids": {
        -                    "items": {
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  }
        -                },
        -                "required": [
        -                  "id",
        -                  "name",
        -                  "amount",
        -                  "consumed_quantity",
        -                  "is_enabled",
        -                  "ticket_type_ids"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "amount": {
        -              "type": "number"
        -            },
        -            "available_quantity": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "consumed_quantity": {
        -              "type": "integer"
        -            },
        -            "currency": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "end_time": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "is_default": {
        -              "type": "boolean"
        -            },
        -            "is_enabled": {
        -              "type": "boolean"
        -            },
        -            "is_guest": {
        -              "type": "boolean"
        -            },
        -            "is_hidden": {
        -              "type": "boolean"
        -            },
        -            "is_waitlist_enabled": {
        -              "type": "boolean"
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "priority": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "quantity": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "registration_perks": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "id": {
        -                    "type": "string"
        -                  },
        -                  "name": {
        -                    "type": "string"
        -                  },
        -                  "position": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "required": [
        -                  "id",
        -                  "name"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "start_time": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "tickets_count": {
        -              "type": "integer"
        -            },
        -            "timezone": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "name",
        -            "amount",
        -            "currency",
        -            "quantity",
        -            "available_quantity",
        -            "consumed_quantity",
        -            "tickets_count",
        -            "is_enabled",
        -            "is_hidden",
        -            "is_default",
        -            "priority",
        -            "start_time",
        -            "end_time",
        -            "timezone",
        -            "is_waitlist_enabled",
        -            "is_guest",
        -            "addons",
        -            "registration_perks"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "hint": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "primary_ticket_types": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "addons": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "amount": {
        -                    "type": "number"
        -                  },
        -                  "consumed_quantity": {
        -                    "type": "integer"
        -                  },
        -                  "description": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "id": {
        -                    "type": "string"
        -                  },
        -                  "is_enabled": {
        -                    "type": "boolean"
        -                  },
        -                  "name": {
        -                    "type": "string"
        -                  },
        -                  "position": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "quantity": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  },
        -                  "ticket_type_ids": {
        -                    "items": {
        -                      "type": "string"
        -                    },
        -                    "type": "array"
        -                  }
        -                },
        -                "required": [
        -                  "id",
        -                  "name",
        -                  "amount",
        -                  "consumed_quantity",
        -                  "is_enabled",
        -                  "ticket_type_ids"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "amount": {
        -              "type": "number"
        -            },
        -            "available_quantity": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "consumed_quantity": {
        -              "type": "integer"
        -            },
        -            "currency": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "end_time": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "is_default": {
        -              "type": "boolean"
        -            },
        -            "is_enabled": {
        -              "type": "boolean"
        -            },
        -            "is_guest": {
        -              "type": "boolean"
        -            },
        -            "is_hidden": {
        -              "type": "boolean"
        -            },
        -            "is_waitlist_enabled": {
        -              "type": "boolean"
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "priority": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "quantity": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "registration_perks": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "id": {
        -                    "type": "string"
        -                  },
        -                  "name": {
        -                    "type": "string"
        -                  },
        -                  "position": {
        -                    "anyOf": [
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "null"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "required": [
        -                  "id",
        -                  "name"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "start_time": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "tickets_count": {
        -              "type": "integer"
        -            },
        -            "timezone": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "name",
        -            "amount",
        -            "currency",
        -            "quantity",
        -            "available_quantity",
        -            "consumed_quantity",
        -            "tickets_count",
        -            "is_enabled",
        -            "is_hidden",
        -            "is_default",
        -            "priority",
        -            "start_time",
        -            "end_time",
        -            "timezone",
        -            "is_waitlist_enabled",
        -            "is_guest",
        -            "addons",
        -            "registration_perks"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "total_count": {
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "primary_ticket_types",
        -      "guest_ticket_types",
        -      "total_count",
        -      "message",
        -      "hint"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "enum": [
        -          "get_ticket_type"
        -        ],
        -        "type": "string"
        -      },
        -      "hint": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "ticket_type": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "addons": {
        -            "items": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "amount": {
        -                  "type": "number"
        -                },
        -                "consumed_quantity": {
        -                  "type": "integer"
        -                },
        -                "description": {
        -                  "anyOf": [
        -                    {
        -                      "type": "string"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "id": {
        -                  "type": "string"
        -                },
        -                "is_enabled": {
        -                  "type": "boolean"
        -                },
        -                "name": {
        -                  "type": "string"
        -                },
        -                "position": {
        -                  "anyOf": [
        -                    {
        -                      "type": "integer"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "quantity": {
        -                  "anyOf": [
        -                    {
        -                      "type": "integer"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "ticket_type_ids": {
        -                  "items": {
        -                    "type": "string"
        -                  },
        -                  "type": "array"
        -                }
        -              },
        -              "required": [
        -                "id",
        -                "name",
        -                "amount",
        -                "consumed_quantity",
        -                "is_enabled",
        -                "ticket_type_ids"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "amount": {
        -            "type": "number"
        -          },
        -          "available_quantity": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "consumed_quantity": {
        -            "type": "integer"
        -          },
        -          "currency": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "end_time": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "is_default": {
        -            "type": "boolean"
        -          },
        -          "is_enabled": {
        -            "type": "boolean"
        -          },
        -          "is_guest": {
        -            "type": "boolean"
        -          },
        -          "is_hidden": {
        -            "type": "boolean"
        -          },
        -          "is_waitlist_enabled": {
        -            "type": "boolean"
        -          },
        -          "name": {
        -            "type": "string"
        -          },
        -          "priority": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "quantity": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "registration_perks": {
        -            "items": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "id": {
        -                  "type": "string"
        -                },
        -                "name": {
        -                  "type": "string"
        -                },
        -                "position": {
        -                  "anyOf": [
        -                    {
        -                      "type": "integer"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "id",
        -                "name"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "start_time": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "tickets_count": {
        -            "type": "integer"
        -          },
        -          "timezone": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "name",
        -          "amount",
        -          "currency",
        -          "quantity",
        -          "available_quantity",
        -          "consumed_quantity",
        -          "tickets_count",
        -          "is_enabled",
        -          "is_hidden",
        -          "is_default",
        -          "priority",
        -          "start_time",
        -          "end_time",
        -          "timezone",
        -          "is_waitlist_enabled",
        -          "is_guest",
        -          "addons",
        -          "registration_perks"
        -        ],
        -        "type": "object"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "ticket_type",
        -      "message",
        -      "hint"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "enum": [
        -          "list_addons"
        -        ],
        -        "type": "string"
        -      },
        -      "addons": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "amount": {
        -              "type": "number"
        -            },
        -            "consumed_quantity": {
        -              "type": "integer"
        -            },
        -            "description": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "is_enabled": {
        -              "type": "boolean"
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "position": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "quantity": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "ticket_type_ids": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "name",
        -            "amount",
        -            "consumed_quantity",
        -            "is_enabled",
        -            "ticket_type_ids"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "total_count": {
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "addons",
        -      "total_count",
        -      "message"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "enum": [
        -          "list_coupon_codes"
        -        ],
        -        "type": "string"
        -      },
        -      "coupons": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "code": {
        -              "type": "string"
        -            },
        -            "discount_amount": {
        -              "anyOf": [
        -                {
        -                  "type": "number"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "discount_percent": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "discount_type": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "end_time": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "is_enabled": {
        -              "type": "boolean"
        -            },
        -            "kind": {
        -              "type": "string"
        -            },
        -            "max_discount": {
        -              "anyOf": [
        -                {
        -                  "type": "number"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "quantity": {
        -              "anyOf": [
        -                {
        -                  "type": "integer"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "sale": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "gross_sale": {
        -                  "anyOf": [
        -                    {
        -                      "type": "number"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "net_sale": {
        -                  "anyOf": [
        -                    {
        -                      "type": "number"
        -                    },
        -                    {
        -                      "type": "null"
        -                    }
        -                  ]
        -                },
        -                "qty": {
        -                  "type": "integer"
        -                }
        -              },
        -              "required": [
        -                "gross_sale",
        -                "net_sale",
        -                "qty"
        -              ],
        -              "type": "object"
        -            },
        -            "start_time": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "ticket_types": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "id": {
        -                    "type": "string"
        -                  },
        -                  "name": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "id",
        -                  "name"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "timezone": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "code",
        -            "kind",
        -            "discount_type",
        -            "discount_percent",
        -            "discount_amount",
        -            "max_discount",
        -            "quantity",
        -            "start_time",
        -            "end_time",
        -            "timezone",
        -            "is_enabled",
        -            "sale",
        -            "ticket_types"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "total_count": {
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "coupons",
        -      "total_count",
        -      "message"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "action": {
        -        "enum": [
        -          "config"
        -        ],
        -        "type": "string"
        -      },
        -      "config": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "allow_plus_ones": {
        -            "type": "boolean"
        -          },
        -          "allow_reprint": {
        -            "type": "boolean"
        -          },
        -          "background_image_url": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "badge_template": {
        -            "anyOf": [
        -              {
        -                "type": "string"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "bulk_purchase_enabled": {
        -            "type": "boolean"
        -          },
        -          "enable_guest_tickets": {
        -            "type": "boolean"
        -          },
        -          "max_adults": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "max_kids": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "qr_height": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "qr_width": {
        -            "anyOf": [
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "self_checkin_allow_register": {
        -            "type": "boolean"
        -          },
        -          "self_checkin_enable_lookup": {
        -            "type": "boolean"
        -          },
        -          "self_checkin_review_before_print": {
        -            "type": "boolean"
        -          },
        -          "ticketing_currency": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "badge_template",
        -          "qr_width",
        -          "qr_height",
        -          "allow_plus_ones",
        -          "max_adults",
        -          "max_kids",
        -          "self_checkin_review_before_print",
        -          "self_checkin_enable_lookup",
        -          "background_image_url",
        -          "allow_reprint",
        -          "self_checkin_allow_register",
        -          "ticketing_currency",
        -          "enable_guest_tickets",
        -          "bulk_purchase_enabled"
        -        ],
        -        "type": "object"
        -      },
        -      "message": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "action",
        -      "config",
        -      "message"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "action": {
        +        "enum": [
        +          "list_ticket_types"
        +        ],
        +        "type": "string"
        +      },
        +      "guest_ticket_types": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "addons": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "amount": {
        +                    "type": "number"
        +                  },
        +                  "consumed_quantity": {
        +                    "type": "integer"
        +                  },
        +                  "description": {
        +                    "anyOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "is_enabled": {
        +                    "type": "boolean"
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  },
        +                  "position": {
        +                    "anyOf": [
        +                      {
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "quantity": {
        +                    "anyOf": [
        +                      {
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "ticket_type_ids": {
        +                    "items": {
        +                      "type": "string"
        +                    },
        +                    "type": "array"
        +                  }
        +                },
        +                "required": [
        +                  "id",
        +                  "name",
        +                  "amount",
        +                  "consumed_quantity",
        +                  "is_enabled",
        +                  "ticket_type_ids"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "amount": {
        +              "type": "number"
        +            },
        +            "available_quantity": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "consumed_quantity": {
        +              "type": "integer"
        +            },
        +            "currency": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "end_time": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "is_default": {
        +              "type": "boolean"
        +            },
        +            "is_enabled": {
        +              "type": "boolean"
        +            },
        +            "is_guest": {
        +              "type": "boolean"
        +            },
        +            "is_hidden": {
        +              "type": "boolean"
        +            },
        +            "is_waitlist_enabled": {
        +              "type": "boolean"
        +            },
        +            "mail_merge_description": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "priority": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "quantity": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "registration_perks": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  },
        +                  "position": {
        +                    "anyOf": [
        +                      {
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "id",
        +                  "name"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "start_time": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "tickets_count": {
        +              "type": "integer"
        +            },
        +            "timezone": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "name",
        +            "amount",
        +            "currency",
        +            "quantity",
        +            "available_quantity",
        +            "consumed_quantity",
        +            "tickets_count",
        +            "is_enabled",
        +            "is_hidden",
        +            "is_default",
        +            "priority",
        +            "start_time",
        +            "end_time",
        +            "timezone",
        +            "is_waitlist_enabled",
        +            "is_guest",
        +            "mail_merge_description",
        +            "addons",
        +            "registration_perks"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "hint": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "primary_ticket_types": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "addons": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "amount": {
        +                    "type": "number"
        +                  },
        +                  "consumed_quantity": {
        +                    "type": "integer"
        +                  },
        +                  "description": {
        +                    "anyOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "is_enabled": {
        +                    "type": "boolean"
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  },
        +                  "position": {
        +                    "anyOf": [
        +                      {
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "quantity": {
        +                    "anyOf": [
        +                      {
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  },
        +                  "ticket_type_ids": {
        +                    "items": {
        +                      "type": "string"
        +                    },
        +                    "type": "array"
        +                  }
        +                },
        +                "required": [
        +                  "id",
        +                  "name",
        +                  "amount",
        +                  "consumed_quantity",
        +                  "is_enabled",
        +                  "ticket_type_ids"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "amount": {
        +              "type": "number"
        +            },
        +            "available_quantity": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "consumed_quantity": {
        +              "type": "integer"
        +            },
        +            "currency": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "end_time": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "is_default": {
        +              "type": "boolean"
        +            },
        +            "is_enabled": {
        +              "type": "boolean"
        +            },
        +            "is_guest": {
        +              "type": "boolean"
        +            },
        +            "is_hidden": {
        +              "type": "boolean"
        +            },
        +            "is_waitlist_enabled": {
        +              "type": "boolean"
        +            },
        +            "mail_merge_description": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "priority": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "quantity": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "registration_perks": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  },
        +                  "position": {
        +                    "anyOf": [
        +                      {
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "id",
        +                  "name"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "start_time": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "tickets_count": {
        +              "type": "integer"
        +            },
        +            "timezone": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "name",
        +            "amount",
        +            "currency",
        +            "quantity",
        +            "available_quantity",
        +            "consumed_quantity",
        +            "tickets_count",
        +            "is_enabled",
        +            "is_hidden",
        +            "is_default",
        +            "priority",
        +            "start_time",
        +            "end_time",
        +            "timezone",
        +            "is_waitlist_enabled",
        +            "is_guest",
        +            "mail_merge_description",
        +            "addons",
        +            "registration_perks"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "total_count": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "primary_ticket_types",
        +      "guest_ticket_types",
        +      "total_count",
        +      "message",
        +      "hint"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "action": {
        +        "enum": [
        +          "get_ticket_type"
        +        ],
        +        "type": "string"
        +      },
        +      "hint": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "ticket_type": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "addons": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "amount": {
        +                  "type": "number"
        +                },
        +                "consumed_quantity": {
        +                  "type": "integer"
        +                },
        +                "description": {
        +                  "anyOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "id": {
        +                  "type": "string"
        +                },
        +                "is_enabled": {
        +                  "type": "boolean"
        +                },
        +                "name": {
        +                  "type": "string"
        +                },
        +                "position": {
        +                  "anyOf": [
        +                    {
        +                      "type": "integer"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "quantity": {
        +                  "anyOf": [
        +                    {
        +                      "type": "integer"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "ticket_type_ids": {
        +                  "items": {
        +                    "type": "string"
        +                  },
        +                  "type": "array"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "name",
        +                "amount",
        +                "consumed_quantity",
        +                "is_enabled",
        +                "ticket_type_ids"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "amount": {
        +            "type": "number"
        +          },
        +          "available_quantity": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "consumed_quantity": {
        +            "type": "integer"
        +          },
        +          "currency": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "end_time": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "is_default": {
        +            "type": "boolean"
        +          },
        +          "is_enabled": {
        +            "type": "boolean"
        +          },
        +          "is_guest": {
        +            "type": "boolean"
        +          },
        +          "is_hidden": {
        +            "type": "boolean"
        +          },
        +          "is_waitlist_enabled": {
        +            "type": "boolean"
        +          },
        +          "mail_merge_description": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "priority": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "quantity": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "registration_perks": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "id": {
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "type": "string"
        +                },
        +                "position": {
        +                  "anyOf": [
        +                    {
        +                      "type": "integer"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "name"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "start_time": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "tickets_count": {
        +            "type": "integer"
        +          },
        +          "timezone": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "amount",
        +          "currency",
        +          "quantity",
        +          "available_quantity",
        +          "consumed_quantity",
        +          "tickets_count",
        +          "is_enabled",
        +          "is_hidden",
        +          "is_default",
        +          "priority",
        +          "start_time",
        +          "end_time",
        +          "timezone",
        +          "is_waitlist_enabled",
        +          "is_guest",
        +          "mail_merge_description",
        +          "addons",
        +          "registration_perks"
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "ticket_type",
        +      "message",
        +      "hint"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "action": {
        +        "enum": [
        +          "list_addons"
        +        ],
        +        "type": "string"
        +      },
        +      "addons": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "amount": {
        +              "type": "number"
        +            },
        +            "consumed_quantity": {
        +              "type": "integer"
        +            },
        +            "description": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "is_enabled": {
        +              "type": "boolean"
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "position": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "quantity": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "ticket_type_ids": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "name",
        +            "amount",
        +            "consumed_quantity",
        +            "is_enabled",
        +            "ticket_type_ids"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "total_count": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "addons",
        +      "total_count",
        +      "message"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "action": {
        +        "enum": [
        +          "list_coupon_codes"
        +        ],
        +        "type": "string"
        +      },
        +      "coupons": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "code": {
        +              "type": "string"
        +            },
        +            "discount_amount": {
        +              "anyOf": [
        +                {
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "discount_percent": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "discount_type": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "end_time": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "is_enabled": {
        +              "type": "boolean"
        +            },
        +            "kind": {
        +              "type": "string"
        +            },
        +            "max_discount": {
        +              "anyOf": [
        +                {
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "quantity": {
        +              "anyOf": [
        +                {
        +                  "type": "integer"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "sale": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "gross_sale": {
        +                  "anyOf": [
        +                    {
        +                      "type": "number"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "net_sale": {
        +                  "anyOf": [
        +                    {
        +                      "type": "number"
        +                    },
        +                    {
        +                      "type": "null"
        +                    }
        +                  ]
        +                },
        +                "qty": {
        +                  "type": "integer"
        +                }
        +              },
        +              "required": [
        +                "gross_sale",
        +                "net_sale",
        +                "qty"
        +              ],
        +              "type": "object"
        +            },
        +            "start_time": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "ticket_types": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "id",
        +                  "name"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "timezone": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "code",
        +            "kind",
        +            "discount_type",
        +            "discount_percent",
        +            "discount_amount",
        +            "max_discount",
        +            "quantity",
        +            "start_time",
        +            "end_time",
        +            "timezone",
        +            "is_enabled",
        +            "sale",
        +            "ticket_types"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "total_count": {
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "coupons",
        +      "total_count",
        +      "message"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "action": {
        +        "enum": [
        +          "config"
        +        ],
        +        "type": "string"
        +      },
        +      "config": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "allow_plus_ones": {
        +            "type": "boolean"
        +          },
        +          "allow_reprint": {
        +            "type": "boolean"
        +          },
        +          "background_image_url": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "badge_template": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "bulk_purchase_enabled": {
        +            "type": "boolean"
        +          },
        +          "enable_guest_tickets": {
        +            "type": "boolean"
        +          },
        +          "max_adults": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "max_kids": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "qr_height": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "qr_width": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "self_checkin_allow_register": {
        +            "type": "boolean"
        +          },
        +          "self_checkin_enable_lookup": {
        +            "type": "boolean"
        +          },
        +          "self_checkin_review_before_print": {
        +            "type": "boolean"
        +          },
        +          "ticketing_currency": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "badge_template",
        +          "qr_width",
        +          "qr_height",
        +          "allow_plus_ones",
        +          "max_adults",
        +          "max_kids",
        +          "self_checkin_review_before_print",
        +          "self_checkin_enable_lookup",
        +          "background_image_url",
        +          "allow_reprint",
        +          "self_checkin_allow_register",
        +          "ticketing_currency",
        +          "enable_guest_tickets",
        +          "bulk_purchase_enabled"
        +        ],
        +        "type": "object"
        +      },
        +      "message": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "action",
        +      "config",
        +      "message"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedupdate_ticket_type2 fields changed
      • addedOutput schema / properties / ticket_type / properties / mail_merge_description
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • changedOutput schema / properties / ticket_type / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "amount",
        -  "currency",
        -  "quantity",
        -  "available_quantity",
        -  "consumed_quantity",
        -  "tickets_count",
        -  "is_enabled",
        -  "is_hidden",
        -  "is_default",
        -  "priority",
        -  "start_time",
        -  "end_time",
        -  "timezone",
        -  "is_waitlist_enabled",
        -  "is_guest",
        -  "addons",
        -  "registration_perks"
        -]New value: +[
        +  "id",
        +  "name",
        +  "amount",
        +  "currency",
        +  "quantity",
        +  "available_quantity",
        +  "consumed_quantity",
        +  "tickets_count",
        +  "is_enabled",
        +  "is_hidden",
        +  "is_default",
        +  "priority",
        +  "start_time",
        +  "end_time",
        +  "timezone",
        +  "is_waitlist_enabled",
        +  "is_guest",
        +  "mail_merge_description",
        +  "addons",
        +  "registration_perks"
        +]
  2. 129 tool updates
    • First observedactivate_mailer
    • First observedadd_attendees_to_groups
    • First observedadd_site_block
    • First observedadd_site_section_preset
    • First observedarchive_flow
    • First observedban_attendee
    • First observedclose_poll
    • First observedclose_survey
    • First observedcreate_additional_user_field
    • First observedcreate_addon
    • First observedcreate_attendee
    • First observedcreate_coupon_code
    • First observedcreate_event
    • First observedcreate_exhibitor
    • First observedcreate_exhibitor_category
    • First observedcreate_flow
    • First observedcreate_group
    • First observedcreate_interest
    • First observedcreate_locations
    • First observedcreate_mailer
    • First observedcreate_notification
    • First observedcreate_poll
    • First observedcreate_question
    • First observedcreate_service
    • First observedcreate_session_categories
    • First observedcreate_sessions
    • First observedcreate_site_page
    • First observedcreate_speakers
    • First observedcreate_sponsor
    • First observedcreate_sponsor_category
    • First observedcreate_survey
    • First observedcreate_ticket_type
    • First observedcreate_tracks
    • First observeddeactivate_mailer
    • First observeddelete_additional_user_field
    • First observeddelete_addon
    • First observeddelete_attendee
    • First observeddelete_coupon_code
    • First observeddelete_exhibitor
    • First observeddelete_exhibitor_category
    • First observeddelete_group
    • First observeddelete_interest
    • First observeddelete_location
    • First observeddelete_mailer
    • First observeddelete_notification
    • First observeddelete_poll
    • First observeddelete_question
    • First observeddelete_service
    • First observeddelete_session
    • First observeddelete_session_category
    • First observeddelete_site_page
    • First observeddelete_sponsor
    • First observeddelete_sponsor_category
    • First observeddelete_survey
    • First observeddelete_ticket_type
    • First observeddelete_track
    • First observedduplicate_mailer
    • First observedduplicate_site_page
    • First observedexport_survey_responses
    • First observedget_flow
    • First observedlist_flow_templates
    • First observedlist_flows
    • First observedpublish_draft_notification
    • First observedpublish_flow
    • First observedpublish_poll
    • First observedpublish_survey
    • First observedread_agenda
    • First observedread_analytics
    • First observedread_attendees
    • First observedread_email_templates
    • First observedread_event_content
    • First observedread_exhibitors
    • First observedread_flow_results
    • First observedread_groups
    • First observedread_interests
    • First observedread_locations
    • First observedread_mailers
    • First observedread_notifications
    • First observedread_orders
    • First observedread_polls
    • First observedread_question_bank
    • First observedread_registration
    • First observedread_services
    • First observedread_site
    • First observedread_site_pages
    • First observedread_site_sections
    • First observedread_speakers
    • First observedread_sponsors
    • First observedread_surveys
    • First observedread_tickets
    • First observedremove_attendees_from_groups
    • First observedremove_site_block
    • First observedremove_site_section
    • First observedreopen_poll
    • First observedreopen_survey
    • First observedreorder_site_blocks
    • First observedreorder_site_sections
    • First observedsearch_events
    • First observedsend_test_mailer
    • First observedunban_attendee
    • First observedunpublish_flow
    • First observedupdate_additional_user_field
    • First observedupdate_addon
    • First observedupdate_attendee
    • First observedupdate_coupon_code
    • First observedupdate_default_user_field
    • First observedupdate_email_template
    • First observedupdate_exhibitor
    • First observedupdate_exhibitor_category
    • First observedupdate_flow
    • First observedupdate_interest
    • First observedupdate_location
    • First observedupdate_mailer
    • First observedupdate_notification_schedule
    • First observedupdate_poll_schedule
    • First observedupdate_question
    • First observedupdate_service
    • First observedupdate_session
    • First observedupdate_session_category
    • First observedupdate_site_block
    • First observedupdate_site_page
    • First observedupdate_site_section_styles
    • First observedupdate_site_settings
    • First observedupdate_sponsor
    • First observedupdate_sponsor_category
    • First observedupdate_survey_schedule
    • First observedupdate_ticket_type
    • First observedupdate_track
    • First observedvalidate_flow

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    23 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources