Skip to main content
Glama

Zola MCP

CI npm license

A Model Context Protocol server that connects Claude to Zola, giving you natural-language access to your wedding vendors, budget, guest list, seating chart, events, registry, inquiries, and more.

WARNING

AI-developed project. This codebase was entirely built and is actively maintained by Claude Code. No human has audited the implementation. Review all code and tool permissions before use.

What you can do

Ask Claude things like:

  • "How's wedding planning going?"

  • "Find a photographer in Charlotte, NC"

  • "Update the venue cost to $25,000"

  • "Who hasn't RSVP'd yet?"

  • "Seat Jennifer at Table 1"

  • "Any new vendor messages?"

  • "Add my cousin Mike to the guest list"

  • "Show me the gift tracker"

Related MCP server: honeybook-mcp

Requirements

Acknowledgement of Terms

By using this MCP server, you acknowledge and agree to the following:

1. This server accesses your own Zola account. Auth happens via your own credentials. It does not — and cannot — access anyone else's wedding website, registry, or guest list.

2. Zola's Terms of Use govern your use of this server, just as they govern your direct use of zola.com. The clauses most relevant here:

[You may not use] any hardware or software intended to surreptitiously intercept or otherwise obtain any information… including but not limited to the use of any "scraping" or other data mining techniques, robots or similar data gathering and extraction tools.

And, critically, on agent-acting-as-you: "You are responsible for maintaining the confidentiality of your account and password… You accept full responsibility for all activities that occur under your account and password, even if such actions are undertaken by your Authorized Agent or other third party."

You are agreeing to those terms — read by the maintainer 2026-05-23 — every time you invoke a tool in this server. Zola's ToU is explicit: this MCP acting as your Authorized Agent counts as you.

3. Personal, non-commercial use only. This project is not affiliated with, endorsed by, sponsored by, or in partnership with Zola, Inc. It is a personal automation tool for one couple to manage their own wedding website, registry, vendor research, and guest list. Do not use it to bulk-extract Zola's vendor directory, scrape registries, or compete with Zola.

4. Stability is not guaranteed. This server may call internal Zola endpoints that change without notice. It may break.

5. You accept full responsibility for any consequences of using this server in connection with your Zola account — rate limiting, account warnings, suspension, or any enforcement action. Per Zola's ToU, anything this MCP does under your account is your action — review guest list edits, registry changes, and inquiries before confirming. If Zola objects to your use, stop using this server.

This section is the maintainer's good-faith summary of the terms — it is not legal advice and does not modify or supersede Zola's actual ToU.

Installation

Download the latest .mcpb bundle from Releases and install:

claude mcp add-from-mcpb zola-mcp-x.y.z.mcpb

You'll be prompted for your ZOLA_REFRESH_TOKEN (see Getting your refresh token below).

Option B — npm

npx -y zola-mcp

Add to your Claude config (.mcp.json or Claude Desktop config):

{
  "mcpServers": {
    "zola": {
      "command": "npx",
      "args": ["-y", "zola-mcp"],
      "env": {
        "ZOLA_REFRESH_TOKEN": "your-refresh-token-jwt"
      }
    }
  }
}

Option C — from source

git clone https://github.com/chrischall/zola-mcp.git
cd zola-mcp
npm install
npm run build

Add to Claude Desktop config:

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "zola": {
      "command": "node",
      "args": ["/absolute/path/to/zola-mcp/dist/bundle.js"],
      "env": {
        "ZOLA_REFRESH_TOKEN": "your-refresh-token-jwt"
      }
    }
  }
}

Getting your refresh token

You have two options. Both produce the same usr cookie value — a ~1-year JWT that doubles as the refresh token.

  1. Install the fetchproxy extension (Chrome Web Store or Safari .dmg).

  2. Sign in at zola.com/account/login in that browser.

  3. Leave ZOLA_REFRESH_TOKEN unset in your Claude config.

On the first tool call, the MCP asks the extension for the HttpOnly usr cookie via chrome.cookies.get, then operates direct-to-API from Node — the bridge is never in the hot path.

That cookie is the ~1-year refresh token, so it is cached at $MCP_DATA_DIR/.zola-mcp/refresh-token.json (falling back to $HOME, mode 0600). Later starts read it from there and need no browser at all, which is what makes the server usable on a remote host where none exists. If the API ever rejects the cached token — you signed out, or it aged past its year — it is discarded automatically and the extension is asked again. To re-auth, just sign back in to zola.com. Set ZOLA_TOKEN_CACHE=false to keep nothing on disk and ask the browser every time.

You can opt out of this fallback with ZOLA_DISABLE_FETCHPROXY=1 (e.g. in headless / CI environments where no extension is available).

Option B — manual (DevTools)

  1. Sign in at zola.com/account/login in any browser.

  2. Open DevTools → ApplicationCookieshttps://www.zola.com.

  3. Copy the value of the usr cookie.

  4. Paste it into .env as ZOLA_REFRESH_TOKEN=<value> (or into your Claude config env block).

Restart Claude Desktop

Quit completely (Cmd+Q on Mac) and relaunch.

Verify

Ask Claude: "How's wedding planning going?" — it should show your wedding dashboard.

Credentials

Env var

Required

Notes

ZOLA_REFRESH_TOKEN

Conditional

Refresh token JWT (~1 year lifetime). When unset, the MCP falls back to the fetchproxy extension to read the usr cookie from your signed-in zola.com tab.

ZOLA_DISABLE_FETCHPROXY

No

Set to 1 to opt out of the fetchproxy fallback (headless / CI). Does not disable the token cache — a headless run can still reuse a token an earlier bootstrap cached, since reading a file is not opening a browser.

ZOLA_TOKEN_CACHE

No

Set to false to disable the on-disk refresh-token cache and ask the browser on every start. Defaults to enabled, and is inert when ZOLA_REFRESH_TOKEN is set.

ZOLA_TOKEN_FILE

No

Absolute path for the cache file. Defaults to $MCP_DATA_DIR/.zola-mcp/refresh-token.json, else $HOME/.zola-mcp/refresh-token.json.

ZOLA_ACCOUNT_ID

No

Auto-resolved from API on first use

ZOLA_REGISTRY_ID

No

Auto-resolved from API on first use

Available tools

27 tools across 8 domains. Read-only tools run automatically. Write tools ask for confirmation.

Vendors

Tool

What it does

Permission

list_vendors

List all booked vendors

Auto

search_vendors

Search vendors by name/category

Auto

add_vendor

Book a new vendor

Confirm

update_vendor

Update vendor details

Confirm

remove_vendor

Unbook a vendor

Confirm

Budget

Tool

What it does

Permission

get_budget

Budget summary with all items

Auto

update_budget_item

Update cost or note

Confirm

Guests

Tool

What it does

Permission

list_guests

List all guest groups with stats

Auto

add_guest

Add a guest group

Confirm

update_guest_address

Update mailing address

Confirm

remove_guest

Remove a guest group

Confirm

Seating

Tool

What it does

Permission

list_seating_charts

List seating charts

Auto

get_seating_chart

Chart with tables/seats/occupants

Auto

list_unseated_guests

Guests not yet seated

Auto

assign_seat

Assign guest to a seat

Confirm

Inquiries

Tool

What it does

Permission

list_inquiries

All vendor inquiries with status

Auto

get_inquiry_conversation

Full conversation messages

Auto

mark_inquiry_read

Mark as read

Confirm

Events & RSVPs

Tool

What it does

Permission

list_events

All events with RSVP counts

Auto

track_rsvps

RSVP tracking per event

Auto

update_event

Update event details

Confirm

Registry & Gifts

Tool

What it does

Permission

get_registry

Registry items with per-item purchase state (requested_qty, purchased_qty, marked_fulfilled, availability, inconsistent); paged via limit/offset

Auto

get_gift_tracker

Gifts received, thank-you status

Auto

reconcile_registry

Joins the registry against the gift tracker: DUPLICATE_RISK (flagged fulfilled but nothing purchased — still buyable), UNATTRIBUTED (purchased with no order, so giver and value are lost), ORPHAN_ORDER, MATCHED

Auto

Discovery

Tool

What it does

Permission

get_wedding_dashboard

Planning dashboard overview

Auto

zola_healthcheck

Verify the credential and Zola reachability; says which hop failed

Auto

search_storefronts

Search marketplace by category/location

Auto

get_storefront

Full vendor storefront details

Auto

list_favorites

Favorited vendors

Auto

Troubleshooting

"Zola auth: set ZOLA_REFRESH_TOKEN, or install the fetchproxy extension…" — either set ZOLA_REFRESH_TOKEN in your config or install the fetchproxy extension and sign into zola.com.

"Zola session refresh failed" — your refresh token has expired (~1 year) or been revoked. Either capture a new usr cookie (DevTools) or sign back into zola.com with the fetchproxy extension installed.

403 from mobile API — the x-zola-session-id header may be missing. Update to the latest version.

Tools not appearing in Claude — go to Claude Desktop → Settings → Developer to see connected servers. Make sure you fully quit and relaunched after editing the config.

Security

  • The refresh token lives only in your local .env or config file (when set) or in the user's browser cookie store (fetchproxy path)

  • It is passed as an environment variable and never logged

  • The server authenticates with Zola's mobile API using the same flow as the iOS app

  • Account and registry IDs are auto-resolved from the API (no manual configuration needed)

Development

npm test        # run the test suite (vitest)
npm run build   # compile TypeScript → dist/

Project structure

src/
  client.ts         Zola mobile API client (auth, token refresh, context)
  index.ts          MCP server entry point
  tools/
    vendors.ts      list, search, add, update, remove vendors
    budget.ts       get budget, update budget items
    guests.ts       list, add, update, remove guests
    seating.ts      seating charts, seat assignment
    inquiries.ts    vendor inquiry conversations
    events.ts       events, RSVPs, gift tracker, registry
    discover.ts     dashboard, storefront search, favorites
tests/
  client.test.ts
  vendors.test.ts
  budget.test.ts
  guests.test.ts
  seating.test.ts
  inquiries.test.ts
  events.test.ts
  discover.test.ts

Auth flow

All tools use the Zola mobile API (mobile-api.zola.com) with Bearer JWT auth:

  1. POST /v3/sessions/refresh with refresh token JWT → returns 30-min session token

  2. All API calls use Authorization: Bearer <session_token> + x-zola-session-id header

  3. On 401, auto-refreshes and retries once

  4. Session tokens are cached for their lifetime (30 min)

Building the MCPB bundle

The .mcpb bundle is built automatically by the Release workflow when a version tag is pushed. To build locally:

npm run build
npx @anthropic-ai/mcpb pack

This produces zola-mcp.mcpb using the configuration in manifest.json. The bundle includes the compiled dist/bundle.js and user config prompts for ZOLA_REFRESH_TOKEN.

Releasing

Releases are automated via GitHub Actions:

  1. Run the Cut & Bump workflow (manual trigger) — tags the current version and bumps patch

  2. The tag push triggers the Release workflow which:

    • Runs CI (build + test)

    • Packages .skill and .mcpb bundles

    • Publishes to npm

    • Creates a GitHub Release with the bundles

License

MIT

Available Tools

77 tools
add_faqA

Add a new FAQ (question + answer) to the website FAQ page

ParametersJSON Schema
NameRequiredDescriptionDefault
answerYesThe FAQ answer
questionYesThe FAQ question
display_orderNoPosition in the FAQ list (defaults to 0)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare destructiveHint: false, which description aligns with ('Add'). No additional behavioral context beyond 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?

Single short sentence, no redundancy. Every word serves purpose.

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?

Adequate for simple creation tool, but lacks mention of success return (e.g., ID) or error handling (e.g., duplicate questions).

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 descriptions cover 100% of parameters; description adds no extra meaning beyond 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?

Clearly states verb 'Add', resource 'FAQ', and destination 'website FAQ page'. Distinguishes from siblings like update_faq, remove_faq, list_faqs.

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 tool versus alternatives (e.g., update_faq for existing FAQs). Lacks prerequisites or exclusion criteria.

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

add_guestA

Add a new guest group (household) to the guest list

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoGuest email address
phoneNoGuest phone number
last_nameYesPrimary guest last name
first_nameYesPrimary guest first name
affiliationNoAffiliation (default: PRIMARY_FRIEND)
plus_one_last_nameNoPlus-one last name
plus_one_first_nameNoPlus-one first name

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=false, so the description adds minimal behavioral context. It clarifies that the tool creates a 'guest group (household)', which is useful but does not disclose side effects, authentication requirements, or what happens upon success.

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 sentence that efficiently conveys the core purpose. It is front-loaded with the verb and resource, with no redundant or misleading 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?

While the description covers the basic purpose, it does not mention return values, error conditions, or relevant side effects. Given the tool has 7 parameters, a moderate complexity, and no output schema, more completeness would be helpful.

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 input schema already documents all parameter meanings. The description adds no additional parameter information beyond the high-level purpose. 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 clearly states the verb 'Add', the resource 'guest group (household)', and the target 'guest list'. It distinguishes this tool from sibling tools like 'add_vendor' and 'invite_guest_to_event' by specifying it adds a household group rather than an individual or vendor.

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 is provided on when to use this tool versus alternatives such as 'invite_guest_to_event' for existing guests or 'update_guest_address' for modifications. The description lacks context for the agent to decide between related tools.

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

add_home_sectionC

Add a story section to the home page (title + subtitle + description block)

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
hiddenNo
subtitleYes
descriptionYes
display_orderNo

TDQS

C2.8/5.0
Behavior2/5

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

Annotations only set destructiveHint: false, which the description does not expand upon. The description fails to disclose whether the tool is idempotent, what permissions are needed, or what happens on duplicate titles. No behavioral context beyond the bare minimum.

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, clear sentence that conveys the primary action and key parameters. No extraneous information is included.

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 creation tool with five parameters and no output schema, the description is incomplete. It does not mention the return value (e.g., ID of the created section), nor does it address optional parameters or system behavior (e.g., limits, conflicts).

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 0% schema description coverage, the description partially compensates by naming the three required parameters (title, subtitle, description) but omits the optional ones (hidden, display_order). It does not explain data types, constraints, or the function of optional 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?

The description clearly states the action ('Add a story section to the home page') and specifies the key components (title, subtitle, description). It distinguishes from other add_* tools by targeting the home page resource, but does not elaborate on what constitutes a 'story section'.

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 is provided on when to use this tool versus alternatives like update_home_section or remove_home_section. There are no prerequisites, conditions, or exclusions mentioned.

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

add_poiC

Add a point-of-interest to the Things-to-Do page (restaurant, attraction, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
cityNo
titleYesName of the place
address1No
address2No
latitudeNoDecimal degrees as string
longitudeNoDecimal degrees as string
descriptionNo
postal_codeNo
country_codeNoDefault: US
contact_phoneNo
display_orderNo
state_provinceNo
google_place_idNo

TDQS

C2.7/5.0
Behavior2/5

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

Description only states 'add', which aligns with annotations (destructiveHint: false). No additional behavioral context provided (e.g., side effects, authorization needs, or validation 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?

Single sentence is efficient and front-loaded with clear action and resource. Could be slightly expanded for completeness without becoming verbose.

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

Completeness1/5

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

With 14 parameters, no output schema, and low schema coverage, the description is grossly incomplete. It does not inform the agent about required fields, data formats, or expected behavior.

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

Parameters1/5

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

Schema coverage is low (29%), and description provides no parameter details. Agent cannot infer meaning of parameters like url, city, address1, etc., from the description alone.

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?

Clearly states verb 'Add' and resource 'point-of-interest to the Things-to-Do page', with examples like restaurant or attraction. Distinguishes from sibling tools such as list_pois, remove_poi, update_poi.

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 tool versus alternatives. Does not mention prerequisites or context, such as that it's for creating new POIs, not editing existing ones.

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

add_registry_itemA

Add a product (by SKU) to the registry. If collection_id is omitted, the default collection is looked up automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
sku_idYesProduct SKU ID (e.g., from search_registry_products)
quantityNoDefault 1
most_wantedNoMark as a most-wanted gift. Default false
collection_idNoCollection to add into; defaults to the registry's default collection
enable_group_giftingNoAllow multiple guests to chip in. Default false

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate non-destructive (destructiveHint=false). Description adds that if collection_id is omitted, the default collection is looked up automatically—a behavioral detail not in annotations. No contradictions.

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 sentence that gets straight to the point, but it could be slightly more structured to separate the main action from the default behavior note. Front-loaded with the primary purpose.

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?

Given 5 parameters and no output schema, the description covers the core action and default collection lookup but omits success indicators, constraints (e.g., uniqueness), or error cases. Adequate but not rich.

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?

Input schema covers all 5 parameters with descriptions (100% coverage). The description adds value by noting that collection_id defaults to the registry's default collection and that sku_id comes from search_registry_products, enriching parameter understanding.

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 starts with 'Add a product (by SKU) to the registry,' which is a clear verb-resource pairing. It distinguishes from siblings like remove_registry_item and update_registry_item, and specifies the key identifier (SKU).

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 the tool is for adding items to a registry, but does not explicitly state when to use this vs alternatives or provide exclusions or prerequisites. No guidance on when not to use it is given.

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

add_travel_itemC

Add a travel item (hotel, flight, train, car, bus) to the Travel page

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoBooking link
cityNo
codeNoBooking code or group rate code
nameYesName of the hotel/airline/etc.
noteNoFree-text notes (e.g., booking code instructions)
typeYesTravel item type
sourceNoHow the address was sourced
address1No
address2No
latitudeNoDecimal degrees as string
timezoneNoe.g. America/New_York
longitudeNoDecimal degrees as string
postal_codeNo
country_codeNoDefault: US
display_orderNo
email_addressNo
contact_numberNo
state_provinceNo
google_place_idNo

TDQS

C2.7/5.0
Behavior2/5

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

Annotations provide only destructiveHint=false, and the description merely states the action without disclosing behavioral traits such as permissions, limits, or side effects. It does not contradict annotations but adds no extra transparency.

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 concise sentence that front-loads the key action. It is efficient with no wasted words, though it could be slightly expanded for clarity without losing brevity.

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?

Given the tool has 19 parameters and no output schema, the description is too minimal. It lacks context about the Travel page, item display behavior, constraints, or how parameters relate, making it incomplete for complex usage.

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 53%, and the description adds no parameter explanations beyond listing example types. It does not clarify optional parameters like city, address1, or their format, leaving gaps for the agent.

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 'Add' and resource 'travel item' with examples of types (hotel, flight, etc.) and the target location 'Travel page'. It distinguishes from sibling add tools by specifying the entity type and context.

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 tool versus alternatives like update_travel_item or list_travel_items. There are no prerequisites, exclusions, or comparisons with siblings, leaving the agent to infer usage from the tool name alone.

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

add_vendorC

Book a new vendor

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity
nameYesVendor business name
emailNoVendor email
phoneNoVendor phone
event_dateNoEvent date ISO 8601
price_centsNoTotal price in cents
vendor_typeYesVendor type (VENUE, PHOTOGRAPHER, FLORIST, MUSICIAN_DJ, PLANNER, VIDEOGRAPHER, HAIR_MAKEUP, CAKES_DESSERTS)
state_provinceYesState abbreviation (e.g. NC)
reference_vendor_idNoReference vendor ID from search_vendors

TDQS

C2.9/5.0
Behavior2/5

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

Annotations provide 'destructiveHint: false', but the description adds no extra behavioral context (e.g., permissions, side effects, or constraints). The agent gains no additional insight beyond the annotation.

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 extremely concise at 4 words, effectively front-loaded. It could be expanded slightly to add context without losing 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?

With 9 parameters, no output schema, and no behavioral notes, the description is insufficient for an agent to fully understand usage. Missing details like return values, idempotency, or prerequisite steps.

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 parameters have descriptions. The tool description 'Book a new vendor' adds no extra meaning beyond the schema, meeting the baseline but not compensating for any gaps.

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 'Book a new vendor' clearly indicates the tool's action and resource (adding a vendor). However, it does not distinguish from sibling 'add_*' tools beyond the resource name, which is acceptable but not explicit.

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 tool versus alternatives like 'update_vendor' or 'remove_vendor'. The description lacks context for choosing among sibling tools.

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

assign_seatC

Assign a guest to a specific seat in a seating chart

ParametersJSON Schema
NameRequiredDescriptionDefault
seat_uuidYesSeat UUID from get_seating_chart
guest_uuidYesGuest UUID from list_unseated_guests
table_uuidYesTable UUID from get_seating_chart
seating_chart_uuidYesSeating chart UUID from list_seating_charts

TDQS

C2.9/5.0
Behavior2/5

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

Annotations only provide destructiveHint: false. The description adds no additional behavioral context, such as whether assignments are overwrite-only or can be modified, or any side effects. Without further details, the agent lacks understanding of the tool's behavior beyond the annotation.

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?

Single sentence, no wasted words. Could be slightly expanded with key context, but it is appropriately concise for a straightforward assignment tool. Structure is fine.

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?

Given 4 required parameters and no output schema, the description is incomplete. It does not specify return behavior (e.g., success indication) or any constraints like idempotency. For a mutation tool, more contextual detail is needed to ensure correct usage.

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 baseline is 3. The description does not add any meaning beyond the parameter descriptions in the schema. Thus, meets the baseline but does not exceed 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?

Description clearly states the verb 'assign' and the resource 'guest to a specific seat in a seating chart'. However, it does not differentiate from sibling tools that also assign guests to entities (e.g., set_event_guests), so clarity is good but not maximally helpful.

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 tool versus alternatives. It does not mention prerequisites like needing to fetch seating chart data or that guests must be unseated first. The parameter descriptions hint at these, but the tool description itself offers no usage context.

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

create_card_projectA

Create a new invitation project from a design suite and a lead variation (specific size/paper).

ParametersJSON Schema
NameRequiredDescriptionDefault
quantityNoQuantity to order. Default: 150.
suite_uuidYesSuite UUID from search_card_catalog or get_card_suite
lead_variation_uuidYesLead variation UUID (specific size/paper/color from the suite)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate non-destructive (destructiveHint=false). The description adds no further behavioral traits like side effects, default behavior, or what happens to existing projects. It is adequate but does not go beyond 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?

Single sentence with no wasted words, front-loaded with the key action and resources. Highly 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?

Simple tool with 3 parameters and no output schema. The description covers inputs and sources but omits default quantity value and return value. Adequate but incomplete for full agent understanding.

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 clear parameter descriptions. The tool description does not add extra semantic value beyond rephrasing the parameter descriptions. Baseline score of 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 clearly states the action (create) and the resource (invitation project) with specific inputs (suite and lead variation), distinguishing it from sibling tools like list_card_projects or get_card_project.

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 tool versus alternatives such as swap_card_project_variation or get_card_project. No mention of prerequisites or exclusions, leaving the agent to infer context from sibling names.

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

get_budgetA
Read-only

Get the wedding budget summary including total budgeted, actual cost, paid, and all budget items

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds value by specifying the exact data returned (total budgeted, actual cost, paid, all budget items), which is beyond the annotation. No behavioral contradictions.

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 immediately states the purpose and lists key data fields. No wasted words.

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 zero-parameter read tool, the description fully explains what the tool returns. No output schema is present, but the description compensates by listing the returned data elements. No missing context.

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 input schema has 0 parameters with 100% coverage, so the schema fully defines the parameter space. The description adds no param info but none is needed; baseline for no parameters is 4.

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 uses the verb 'Get' with the resource 'wedding budget summary' and lists specific data fields (total budgeted, actual cost, paid, all budget items). It clearly distinguishes from sibling tools like update_budget_item or list_* tools.

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 clearly implies when to use this tool (to retrieve budget summary), though it does not explicitly state when not to use it or suggest alternatives. No exclusions are needed given the tool's specificity.

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

get_card_projectA
Read-only

Get full details for one invitation project including all customizations (invitation, envelope, RSVP card, details card), paper/color options, and per-customization pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_uuidYesProject UUID from list_card_projects

TDQS

A3.9/5.0
Behavior4/5

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

The description adds behavioral context beyond the 'readOnlyHint' annotation by detailing what is included in the response (customizations, paper/color options, pages). It does not contradict the annotation.

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 sentence that efficiently delivers key information. It is front-loaded with the core action and resource. Minor length but no unnecessary words.

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 no output schema, the description adequately outlines the return structure, listing customization categories and options. For a simple retrieval tool with one parameter, this provides sufficient completeness.

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 mentions 'from list_card_projects' which is already in the schema description. No additional meaning or format details are added 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?

The description clearly identifies the action ('Get full details') and resource ('invitation project'), and specifies the scope ('including all customizations...'). It effectively distinguishes the tool from siblings like 'list_card_projects' which lists projects, and 'get_card_project_guests' which retrieves guests only.

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 usage when full project details are needed, but it does not explicitly state when to use this tool versus alternatives like 'get_card_project_guests' or 'list_card_projects'. No exclusions or prerequisites are provided.

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

get_card_project_guestsA
Read-only

List the guest groups assigned to an invitation project, including per-group font-size overrides for printed addressing.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_uuidYesProject UUID from list_card_projects

TDQS

A4/5.0
Behavior3/5

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

The readOnlyHint annotation already declares this as a safe read operation. The description adds the detail about including font-size overrides, which is useful but not critical. No contradictions or additional behavioral caveats are provided, and the annotation carries most of the transparency burden.

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 sentence of 17 words, front-loaded with the main action 'list the guest groups', and includes the key output detail about font-size overrides. Every word contributes value, with no 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?

For a simple read tool with one parameter and no output schema, the description covers the key aspects: what is returned (guest groups and font-size overrides). While pagination or array format is not mentioned, 'list' implies a collection. The tool's purpose is fully captured given the annotations and sibling context.

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 the parameter 'project_uuid' already documented as 'Project UUID from list_card_projects'. The description does not add further meaning to the parameter itself; it only describes the output. With high schema coverage, baseline score is 3.

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 the verb 'list', the resource 'guest groups assigned to an invitation project', and adds a specific detail about 'per-group font-size overrides'. This distinguishes it from siblings like 'set_card_project_guests' (write) and 'list_card_projects' (different resource).

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 implies usage when you need to view guest groups and their font-size overrides for a specific project. It does not explicitly mention when not to use or alternatives, but the sibling 'set_card_project_guests' is available for modifications. The single required parameter makes the context clear.

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

get_card_suiteA
Read-only

Get details for an invitation design "suite" (the family of matching invitation + RSVP + details cards), including paper types, sizes, and price range.

ParametersJSON Schema
NameRequiredDescriptionDefault
suite_uuidYesSuite UUID (e.g. from search_card_catalog or list_favorite_card_suites)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=true, so the description adds value by specifying the return details (paper types, sizes, price range). No contradictions; behavioral context is clear.

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?

Single sentence of 20 words, front-loaded with the main purpose, no wasted words.

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 simple get-by-ID operation with one parameter and no output schema, the description is complete, covering what the tool returns. No gaps.

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 parameter description already explains its purpose and provides example sources. The tool description does not add additional meaning beyond that.

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 the tool retrieves details for an invitation design suite, specifying the exact resource and what information is included (paper types, sizes, price range). This distinguishes it from siblings like get_card_project and search_card_catalog.

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 usage by mentioning that the suite_uuid can be sourced from search_card_catalog or list_favorite_card_suites, but does not explicitly state when to use this tool versus alternatives or when not to use it.

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

get_current_themeA
Read-only

Get the currently-selected website theme: key, name, swatch color, layout type

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, consistent with description. The description adds value by specifying the return fields, which is beyond what annotations provide. No contradictions.

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?

Single sentence, concise, front-loaded with verb and resource. No extra words.

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?

Adequate for a simple read-only tool with no parameters. Lists return fields. Could mention edge cases (e.g., no theme set) but still complete enough.

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?

Input schema has zero parameters and 100% coverage. Baseline is 3 as per guidelines. Description does not add parameter info (none needed).

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 the action 'get' and the resource 'currently-selected website theme', and lists the specific fields returned (key, name, swatch color, layout type). It distinguishes itself from siblings like 'search_themes' and 'update_current_theme'.

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?

Implied usage context: retrieve current theme. With sibling 'update_current_theme', the agent can infer when to use this read tool. No explicit exclusions or alternatives mentioned, but context is clear.

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

get_gift_trackerA
Read-only

View gift tracking: total gifts received, values, thank-you note status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

The readOnlyHint annotation already declares read-only behavior. The description adds specific data fields viewed, which is useful context. However, it doesn't disclose whether data is per-wedding, return format, or what happens if no gifts tracked.

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?

Description is a single concise sentence covering key points. Could be slightly improved with a colon or list structure, but no unnecessary words.

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?

Without an output schema, the description provides a reasonable expectation of return data (three components). It could mention scope (current wedding?) despite no parameters, but overall adequate.

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 input schema has no parameters, so baseline is 4. The description adds meaning beyond the schema by stating the data returned (total gifts, values, thank-you status), which is sufficient for parameter-free tools.

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 the tool's purpose: viewing gift tracking data including total gifts, values, and thank-you note status. It uses specific nouns and distinguishes itself from sibling tools like get_registry that focus on registry items.

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 tool versus alternatives (e.g., get_registry) or any preconditions. The description only states what it does, not when it should be invoked.

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

get_inquiry_conversationA
Read-only

Get full conversation for a vendor inquiry including messages and inquiry details

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesInquiry UUID from list_inquiries

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, indicating a safe read operation. Description adds that it retrieves 'full conversation including messages and inquiry details', but does not disclose any additional behavioral traits 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?

Single efficient sentence with clear verb and resource. No superfluous words. Front-loaded with 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?

For a simple read-only retrieval tool with one parameter, the description adequately covers what the tool returns (full conversation including messages and details). Could mention that it returns the conversation object, but still sufficient.

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 a clear description for the uuid parameter. The tool description does not add any extra meaning or context for the parameter 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?

Description clearly states verb 'Get', resource 'full conversation for a vendor inquiry', and what is included ('messages and inquiry details'). Distinguishes from sibling tools like list_inquiries (which lists inquiries) and mark_inquiry_read.

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?

Description implies usage for retrieving conversation details of a specific inquiry but does not explicitly mention when to use vs alternatives like list_inquiries or mark_inquiry_read. No prerequisites or exclusions stated.

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

get_registryA
Read-only

View the couple's registry items with derived purchase state per item (requested_qty, purchased_qty, marked_fulfilled, availability, inconsistent). Paged via limit/offset.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items to return. Default 100
offsetNoItem offset. Default 0

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, so the safety profile is covered. The description adds value by disclosing that the purchase state is derived and listing the specific derived fields (requested_qty, purchased_qty, marked_fulfilled, availability, inconsistent). However, it does not clarify whether the state is computed on the fly or from reconciled data, nor does it describe the return format or default ordering. This is adequate but 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.

Conciseness4/5

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

The description is one clear sentence with a second short sentence for pagination. It is front-loaded with the resource and derived-state details, and every word earns its place. Minor deduction for not stating the default limit in the description, but that is already in 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?

For a read-only, no-required-param listing tool with schema-covered pagination parameters, the description is largely complete. It names the unique derived fields, and no output schema exists, so the description carries the burden of telling the agent what state information will come back. It could mention whether the state reflects reconciliation or live data, and could explicitly note that no mutations happen, but the readOnlyHint covers that. Overall complete for its simplicity.

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% for both limit and offset, so the schema already documents their meaning and defaults. The description adds the parenthetical that both are used for paging, which slightly reinforces their purpose but does not add new syntax or behavioral detail 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.

Purpose5/5

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

The description clearly states the action ('View'), the resource ('the couple's registry items'), and the distinctive derived purchase state fields (requested_qty, purchased_qty, marked_fulfilled, availability, inconsistent). This differentiates it from sibling tools like search_registry_products and add_registry_item by describing the read-only listing behavior and its computed state semantics.

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 implies this is for viewing registry items with derived purchase state, and the mention of paging via limit/offset suggests when pagination is needed. It does not explicitly exclude alternatives like search_registry_products or get_gift_tracker, but the read-only 'View' framing and the sibling list context make the use case reasonably clear. No explicit when-not-to-use guidance is given.

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

get_rsvp_pageA
Read-only

Get the RSVP page settings on the wedding website (title, intro copy, visibility, customization).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With readOnlyHint=true annotation, the description adds minor context about the returned fields (title, intro copy, etc.), but does not disclose any behavioral traits beyond what annotations already imply. No mention of side effects or limitations.

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 sentence with no wasted words. It front-loads the verb and resource, and efficiently conveys the purpose and scope.

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 tool has no parameters and no output schema, the description adequately lists representative fields. It could be more complete by noting that it returns a full RSVP page settings object, but the coverage is sufficient for understanding its purpose.

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 input schema has zero parameters with 100% schema description coverage, so there is no structural deficiency. The description adds meaning by listing example fields (title, intro copy, visibility, customization) that the tool returns, going beyond the empty 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 clearly states 'Get the RSVP page settings on the wedding website' with specific examples of fields (title, intro copy, visibility, customization). This is a specific verb+resource that distinguishes it from generic 'get_website_customizations' or 'get_wedding_settings'.

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 usage for retrieving RSVP page settings, but does not explicitly state when to use this tool over alternatives like 'get_website_customizations' or 'list_pages'. No guidance on exclusions or prerequisites.

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

get_seating_chartA
Read-only

Get full seating chart with all tables, seats, and current occupants

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesSeating chart UUID from list_seating_charts

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the tool is known to be safe. The description adds that it returns 'full' data with specific entities (tables, seats, occupants), which gives some context beyond the annotation but no extra behavioral traits like rate limits or auth needs.

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?

Single sentence with 10 words, no redundancy, immediately states action and scope. Front-loaded and efficient.

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 get tool with one parameter and no output schema, the description adequately describes the return content. Lacks mention of potential pagination or permissions but is sufficient given the tool's simplicity and the readOnlyHint annotation.

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 a clear description of the uuid parameter. The tool description does not add semantic value beyond the schema, so baseline score of 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 uses a specific verb 'Get' and resource 'seating chart', and clarifies it includes all tables, seats, and occupants, which distinguishes it from sibling tools like list_seating_charts that likely only list chart IDs.

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?

No explicit guidance on when to use vs alternatives like list_seating_charts or assign_seat. The description implies it's for retrieving full details but does not state when to prefer it over listing or other get tools.

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

get_storefrontA
Read-only

Get full details for a vendor storefront (pricing, reviews, photos, about, FAQs)

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesStorefront UUID from search_storefronts or list_favorites

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description does not need to reiterate safety. The description adds no extra behavioral details (e.g., rate limits, permissions). It does list the fields returned, which provides some content transparency, but not for behavior beyond the annotation.

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 sentence with a parenthetical list, front-loaded with the main purpose. Every word is relevant; no unnecessary 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?

Given the simple tool (one parameter, no output schema) and annotations providing readOnlyHint, the description is fairly complete. It specifies the returned fields (pricing, reviews, photos, about, FAQs) and the source of the uuid. It lacks details on error responses or pagination, but these are not critical for completeness here.

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 the uuid parameter already described. The tool description adds 'Storefront UUID from search_storefronts or list_favorites', which reinforces the schema description but does not add new semantic meaning beyond what is already 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 clearly states the verb 'Get' and the resource 'storefront details', listing specific fields (pricing, reviews, photos, about, FAQs). This distinguishes it from siblings like search_storefronts (search) and list_favorites (list), which serve different purposes.

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 that the tool is used after obtaining a UUID from search_storefronts or list_favorites (as noted in the parameter description), but it does not explicitly state when to use this tool over alternatives or provide exclusions. Usage guidance is only implicit.

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

get_website_customizationsA
Read-only

Get current website colors, font settings, and available font/color options

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, so the safety profile is clear. The description adds that it retrieves 'current' settings and 'available options', providing some context beyond annotations but not extensive behavioral traits.

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 sentence of 13 words, no waste, front-loaded with action and resource. Every word contributes.

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 no output schema and no parameters, the description adequately states what the tool returns. It could be slightly more complete by mentioning the response structure, but it suffices for a simple getter.

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 tool has no parameters, and schema coverage is 100% (empty). The description adds meaning by specifying what the tool returns, which is sufficient for a parameterless tool.

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 the verb 'Get' and the specific resource 'current website colors, font settings, and available font/color options'. It distinguishes the tool from siblings like get_current_theme and update_website_customization by focusing on customization options.

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 does not explicitly state when to use this tool versus alternatives (e.g., get_current_theme). It implies usage for retrieving customization settings but lacks when-not-to-use or alternative recommendations.

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

get_wedding_dashboardA
Read-only

Get the wedding planning dashboard overview (invites, paper, planning progress)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, indicating a safe read operation. The description adds that it returns an overview of invites, paper, and planning progress, but does not disclose additional behavioral traits such as response format or data freshness. With annotations covering read safety, the description provides adequate but not rich context.

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 front-loads the purpose and enumerates key content areas. Every word is necessary, with no redundancy or extraneous detail.

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 parameterless read tool with no output schema, the description sufficiently conveys the tool's function and output scope (dashboard overview). It could optionally mention the format, but is adequate for selection and basic understanding.

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?

There are no parameters (0 params, 100% schema coverage). Baseline of 4 applies. The description adds meaning by specifying what the dashboard overview includes, which helps the agent understand the output content.

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 'Get the wedding planning dashboard overview' with specific content areas (invites, paper, planning progress). It distinguishes itself from sibling 'get_' tools like get_budget or get_card_project by specifying it returns a dashboard overview.

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 is provided on when to use this tool versus alternatives. The description only states what it does, without mentioning context, exclusions, or prerequisites.

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

get_wedding_settingsA
Read-only

Get top-level wedding settings: title, URL slug, partner names, date, city, hashtag, guest count, search visibility

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

The annotation 'readOnlyHint: true' already indicates no side effects. The description adds no further behavioral context (e.g., auth needs, rate limits). It is adequate but not enriched beyond the annotation.

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 sentence that efficiently lists the returned fields with no redundancy or unnecessary words.

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 description covers what the tool returns. Given no output schema, it could mention that it returns a single object, but the context is sufficient for a simple getter. Minor improvement possible.

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 tool has no parameters and the schema coverage is 100%. According to guidelines, zero parameters baseline is 4. The description correctly implies no inputs needed.

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 the action ('Get') and the resource ('top-level wedding settings'), and lists the specific fields returned. This distinguishes it from sibling tools like 'update_wedding_settings' and other 'get_*' tools.

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 as a simple retrieval of wedding settings, but no explicit guidance is given on when to use this tool versus alternatives. There are no prerequisites or exclusion criteria mentioned.

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

invite_guest_to_eventA

Invite a single guest or guest group to an event (additive — does not affect other events). Pass exactly one of guest_group_id (invites all guests in the group) or guest_id (invites just that guest). Idempotent.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesEvent entity ID from list_events (event_entity_id)
guest_idNoSingle guest ID — invites just that guest
guest_group_idNoGuest group ID — invites every guest in the group

TDQS

A4.4/5.0
Behavior4/5

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

Adds 'additive — does not affect other events' and 'Idempotent' beyond annotations (only destructiveHint: false). These are key behavioral traits for a mutation tool, though it lacks details on side effects or failure modes.

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

Conciseness5/5

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

Three efficient sentences front-load purpose and key characteristics, with no wasted words. Instruction on param usage is direct.

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 mutation tool with 3 params, no output schema, and minimal annotations, the description covers purpose, param usage, and idempotency. Could mention return value or prerequisite (guest/group exists), but overall adequate.

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% (baseline 3), but description adds value by clarifying mutual exclusivity and explaining the effect of each optional parameter ('invites just that guest' vs 'invites every guest in the group').

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?

Description clearly states the action ('Invite a single guest or guest group to an event'), specifies the resource, and distinguishes from siblings like add_guest (add guest to list) and remove_event_invitation.

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 instructs to pass exactly one of guest_id or guest_group_id, mentions idempotency, and implies when to use. Does not explicitly state when not to use, but context with siblings provides clarity.

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

list_card_projectsA
Read-only

List your invitation / save-the-date / shower-invite "card" projects (paper or digital). Returns project UUID, name, customizations, suite, and quantity.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax projects to return. Default: 30.
include_completedNoInclude orders that have already been placed. Default: false (drafts only).

TDQS

A3.8/5.0
Behavior3/5

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

Read-only nature is covered by annotation. Description adds scope and return fields but does not disclose default behavior (drafts only if include_completed false) or pagination beyond parameter 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, front-loaded with key information, no wasted words.

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 simple parameters and no output schema, description lists return fields and covers purpose. Minor gap in explaining default behavior of include_completed, but adequate for listing 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%; description does not add meaning beyond schema for parameters. Baseline score 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?

Description provides a specific verb ('List'), resource ('card projects'), and scope ('invitation / save-the-date / shower-invite'), and mentions return fields. It clearly distinguishes from siblings like 'search_card_catalog' and 'create_card_project'.

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?

No explicit when-to-use guidance or alternatives. The context is implied but not stated, and there are no exclusions.

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

list_eventsA
Read-only

List all wedding events (ceremony, reception, rehearsal dinner, etc.) with RSVP counts

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. Description adds that it lists all events with RSVP counts, but does not disclose additional behavioral traits like response format 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?

Single sentence, front-loaded with verb, no unnecessary words.

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?

Adequate for simple list tool with no params; provides examples and notes RSVP counts. However, lacks details on response structure or ordering.

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?

No parameters in schema; schema coverage 100%. Baseline 4 for 0 params, description does not add parameter info but is not needed.

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?

Description clearly states verb 'List', resource 'wedding events', and adds context with 'RSVP counts' and examples (ceremony, reception, etc.). Distinguishes from sibling tools like list_guests.

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?

Implies usage for listing events with RSVP counts, but no explicit guidance on when to use this vs alternatives, or when not to use.

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

list_faqsA
Read-only

List all FAQs on the wedding website

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true, and the description confirms a read operation. No additional behavioral details needed; no contradiction.

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

Conciseness5/5

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

Single sentence, front-loaded with key information (verb and resource), no unnecessary words.

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 no parameters and no output schema, the description provides complete information for a simple list-all tool. Context from sibling tools further clarifies its role.

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?

No parameters exist, so the description does not need to add parameter information. Baseline score of 4 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?

Description clearly states a specific verb (List) and resource (all FAQs on the wedding website), distinguishing it from sibling tools like add_faq and remove_faq.

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?

No explicit guidance on when to use this tool versus alternatives, but the simplicity of the tool (no parameters, read-only) makes it implicitly clear for retrieving all FAQs.

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

list_favorite_card_suitesA
Read-only

List invitation design suites you have favorited (hearted).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true. Description adds context that it lists favorited suites, but doesn't disclose additional behavior like ordering or pagination. With annotations, this is acceptable.

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?

Single sentence with no waste. Verb front-loaded, clear and concise.

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?

Simple tool with no parameters and no output schema. Description is fully adequate for the task.

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?

No parameters, so baseline 4. Description doesn't need to add parameter info as schema coverage is 100%.

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?

Clear verb 'List' with specific resource 'invitation design suites you have favorited (hearted)'. Distinct from sibling 'list_favorites' which likely lists all favorites.

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?

No explicit when to use vs alternatives. Implies it's for listing favorited card suites, but doesn't mention sibling tools like 'list_favorites' that could be alternatives.

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

list_favoritesA
Read-only

List all favorited/saved vendors

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint, but description adds that it lists only favorited/saved vendors, providing behavioral context beyond the annotation.

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?

Single, front-loaded sentence with no unnecessary words, effectively communicating the tool's 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?

For a simple tool with no parameters and no output schema, description adequately covers what the tool does; no major gaps but could mention pagination if applicable.

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?

No parameters in input schema; baseline score of 4 applies as description does not need to add parameter meaning.

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?

Description uses specific verb 'List' and resource 'favorited/saved vendors', clearly differentiating from sibling tools like list_vendors that list all vendors.

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?

No explicit when/why to use this tool versus alternatives like list_vendors; usage context is implied but not stated.

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

list_guestsA
Read-only

List all guest groups with stats (total, invited, missing addresses)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so no need to restate. The description adds value by specifying the exact statistics returned (total, invited, missing addresses), which goes beyond the annotation's read-only indication.

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-structured sentence with no redundancy. It front-loads the key information (list guest groups) and adds the stats context concisely.

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 tool has no parameters, no output schema, and simple task, the description is mostly complete. It mentions the stats returned, though it does not detail the exact fields. For a simple list tool, this is sufficient.

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 tool has no parameters, so the description does not need to add parameter semantics. Baseline for 0 parameters is 4.

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 the action ('list all guest groups') and the additional information provided ('stats: total, invited, missing addresses'). It effectively distinguishes from sibling tools like add_guest or remove_guest, which have different verbs.

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 usage when needing an overview of guest group statistics, but it does not explicitly state when to use this tool versus alternatives like list_unseated_guests or get_rsvp_page. No exclusions or alternatives are mentioned.

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

list_home_sectionsA
Read-only

List the story sections on the website home page

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description does not need to reiterate safety. However, the description adds no further behavioral context (e.g., whether the list is ordered, if sections can be empty). It is neutral but does not enhance transparency beyond the annotation.

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, concise sentence that conveys the exact purpose. It is front-loaded with the verb and resource, and every word earns its place. No unnecessary 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?

Given the tool's simplicity (no parameters, no output schema, read-only annotation), the description is largely complete. It could optionally mention that the result is a list, but 'List the story sections' inherently implies that. Thus it is adequate but not exhaustive.

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?

There are zero parameters, and schema description coverage is 100% (the schema is empty). The description does not need to explain parameters. Baseline score of 4 applies for zero-parameter tools.

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 specifies the verb 'List' and the resource 'story sections on the website home page', distinguishing it from sibling list tools like list_pages or list_guests. It leaves no ambiguity about the tool's function.

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, such as list_pages or other listing tools. It only states what it does, leaving the agent to infer context from the tool name alone.

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

list_inquiriesA
Read-only

List all vendor inquiries with status, vendor name, and unread flag

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already mark readOnlyHint=true, so the description does not need to reiterate. It adds minor context about the output fields, but does not disclose pagination, ordering, or limits. Adequate but not exemplary.

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?

Single sentence, front-loaded with action verb 'List', no redundant words. Efficient and to the point.

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 no output schema, the description provides enough context by listing the fields returned. However, it omits details like whether the list is sorted, paginated, or filtered. Still, for a simple list tool, it is mostly complete.

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?

No parameters in schema, so the description does not need to explain any. Baseline 4 for zero-parameter tool is appropriate; no additional meaning needed.

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?

Description clearly states the action (list) and resource (vendor inquiries) and specifies the fields returned (status, vendor name, unread flag). It is specific enough to distinguish from sibling list tools like list_guests or list_vendors.

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 tool versus alternatives like get_inquiry_conversation or mark_inquiry_read. No mention of prerequisites, context, or exclusions. Sibling tools are many but no comparative hints.

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

list_pagesA
Read-only

List all wedding-website pages with their IDs, types, display order, visibility, and theme info

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description adds value by specifying the exact fields returned. It does not disclose any additional behavioral traits beyond what annotations indicate.

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?

Single sentence with no filler; front-loads the purpose and efficiently lists the output fields.

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 zero-parameter, read-only list tool with no output schema, the description sufficiently explains what the tool returns. It omits ordering details but the output field 'display order' implies the list order.

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?

No parameters exist, so the description carries no burden. Baseline of 4 is appropriate as there are no parameter details to add.

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 uses a specific verb 'list' and resource 'pages', and clearly enumerates the output fields (IDs, types, display order, visibility, theme info), distinguishing it from sibling list tools.

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?

No explicit when-to-use or when-not-to-use guidance is provided, but the tool is self-explanatory as a simple list operation with no parameters. Usage is implied.

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

list_poisA
Read-only

List points-of-interest on the "Things to Do" page

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates this is a read-only operation. The description does not add further behavioral details such as pagination, ordering, or response format. It is adequate for a simple list tool but lacks additional context.

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, clear sentence with no filler. It efficiently conveys the tool's 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?

Given the tool has no parameters, a readOnly annotation, and no output schema, the description is sufficiently complete. It provides the location context, but could optionally mention the format of the list (e.g., array of objects).

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?

There are zero parameters, so the baseline is 4. The description does not need to add parameter meaning beyond the schema, as none exist.

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 the verb 'list' and the resource 'points-of-interest', and specifies the location 'on the "Things to Do" page'. This effectively differentiates it from sibling tools like 'add_poi', 'remove_poi', and 'update_poi'.

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 provides no explicit guidance on when to use this tool versus alternatives. It is implied that one uses it to retrieve the list, but no context about when to prefer it or exclusions are given.

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

list_seating_chartsA
Read-only

List all seating charts with their UUID and event name

ParametersJSON Schema
NameRequiredDescriptionDefault

No 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=true. The description adds transparency about the return fields (UUID and event name), which is beyond the annotation.

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?

Single sentence, concise, and directly states the tool's functionality without any fluff.

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 list tool with no parameters and only one output field mentioned, the description is complete enough. It does not explain additional context like pagination, but for this tool it may not be needed.

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?

No parameters exist (schema coverage 100%), and the description adds no parameter info, which is appropriate given there are none to document.

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 it lists all seating charts and specifies the returned fields (UUID and event name). It distinguishes itself from sibling tools like 'get_seating_chart'.

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 implicitly makes it clear when to use this tool (to list all seating charts) but does not explicitly state when not to use it or mention alternatives.

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

list_travel_itemsA
Read-only

List hotels, flights, and transportation on the website Travel page

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is known. Description adds context about the scope (Travel page), which is beyond the annotation.

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 clear sentence with no unnecessary words. Perfectly concise for the information needed.

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 no parameters and no output schema, the description adequately explains what the tool does. Could optionally mention return type (list), but not required for completeness.

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?

No parameters exist, so schema coverage is 100% by default. Description adds value by specifying what is listed (hotels, flights, transportation) and where (Travel page), which is meaningful beyond the empty 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?

Clearly states it lists hotels, flights, and transportation on the Travel page, specifying the verb and resource. Distinguishes from sibling list tools like list_guests or list_vendors.

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?

No explicit when-to-use or when-not-to-use guidance, but context from sibling tools (add/update/remove_travel_item) implies usage for viewing existing travel items. Adequate but minimal.

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

list_unseated_guestsA
Read-only

List all guests who have not yet been assigned a seat

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's statement about listing unseated guests adds specific behavioral context beyond the annotation.

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?

Single sentence of 10 words, no redundant information, perfectly concise.

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?

Adequate for a simple read-only tool with no parameters and no output schema. Could mention return type but not essential.

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?

No parameters exist; schema coverage is 100%. Baseline 4 applies as no parameter documentation is needed.

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 the verb 'List' and the specific resource 'guests who have not yet been assigned a seat', distinguishing it from sibling tools like list_guests (all guests) and assign_seat.

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 tool versus alternatives like list_guests. The description is purely functional with no contextual advice.

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

list_vendorsA
Read-only

List all booked vendors with details

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description does not need to reiterate safety. It adds value by specifying 'booked' vendors and 'with details', providing context beyond the annotation. However, it lacks details on pagination or ordering, which are minor gaps given no parameters.

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 concise sentence with no unnecessary words. It front-loads the key action and resource, and every word adds value.

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 tool's simplicity (no parameters, no output schema), the description is largely complete. It states the scope and that details are returned. However, it could mention if there is any default ordering or if the list is exhaustive, but these are minor omissions.

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?

Since there are zero parameters and schema coverage is 100%, the baseline is 3. The description adds no parameter information, but none is needed.

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 the verb 'list', the resource 'vendors', and the scope 'all booked vendors with details'. It effectively distinguishes from sibling tools like search_vendors (which implies filtering) and add/remove/update vendors.

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 usage when you need a complete list of all booked vendors, but it does not explicitly mention when to use this tool versus alternatives like search_vendors for specific queries. No when-not-to-use or alternative guidance is provided.

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

mark_inquiry_readA

Mark a vendor inquiry conversation as read

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesInquiry UUID from list_inquiries

TDQS

A3.7/5.0
Behavior3/5

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

Annotations only provide destructiveHint: false, indicating it is not destructive. The description adds that it marks as read (a write operation), but no further behavioral context (e.g., idempotency, effects on notifications). For a simple operation, this is adequate but minimal.

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 sentence, concise and front-loaded. It contains no fluff, though it could benefit from slightly more context without becoming verbose.

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 tool's low complexity (one parameter, no output schema), the description is minimally complete. It states the action and the parameter is clear. No major gaps for this simple write 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 coverage is 100% with a single parameter documented as 'Inquiry UUID from list_inquiries'. The description adds no additional meaning beyond the schema, so 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 clearly states the tool marks a vendor inquiry conversation as read, which is a specific verb+resource. It distinguishes from sibling tools like list_inquiries (listing) and get_inquiry_conversation (retrieving content).

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?

No explicit when-to-use or when-not-to-use guidance is provided. The usage is implied (after reading a conversation), but no alternatives or exclusions are mentioned. With many sibling tools, this could be improved.

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

preview_card_templateA
Read-only

Render an invitation template preview with text substituted in. Use to see how a design would look with your couple's names and wedding date. Returns the template structure including page layouts.

ParametersJSON Schema
NameRequiredDescriptionDefault
last_nameNoSubstitute for {{last_name}}
first_nameNoSubstitute for {{first_name}} placeholders
wedding_dateNoSubstitute for {{wedding_date}}, YYYY-MM-DD. Defaults to the wedding date on file.
variation_uuidsYesOne or more variation UUIDs to preview (e.g. a specific size+paper of an invitation)
partner_last_nameNoSubstitute for {{partner_last_name}}
partner_first_nameNoSubstitute for {{partner_first_name}}

TDQS

A4/5.0
Behavior4/5

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

The description states that the tool returns the template structure including page layouts, adding behavioral context beyond the readOnlyHint annotation. It does not contradict any annotations and explains the output, though it could detail side effects (none expected).

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 sentences, front-loading the purpose and usage. There is no fluff; every sentence contributes meaningfully.

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 tool has 6 parameters (1 required) and no output schema, the description adequately explains the function and return type. It could mention error conditions or prerequisites, but the context is largely complete for a preview tool with readOnlyHint.

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?

All 6 parameters have descriptions in the input schema (100% coverage), so the description adds minimal value beyond summarizing their purpose as substitutions. The baseline of 3 is appropriate as the schema already documents parameter semantics adequately.

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 the tool renders a preview of an invitation template with text substitutions, identifying the specific verb and resource. It distinguishes from siblings like get_card_project or preview_qrcode by focusing on preview with substitution.

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 says 'Use to see how a design would look' which provides a clear use case. However, it does not explicitly mention when not to use this tool or provide alternatives among siblings, leaving some ambiguity.

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

preview_qrcodeA
Read-only

Generate a QR-code PNG for an invitation. Returns the image so it can be inspected. Use set_card_project_qrcode to actually place it on a card.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL the QR code will resolve to
enabledNoWhether the QR code is enabled. Default: true.
url_typeNoCUSTOM (default) | WEDDING_WEBSITE | WEDDING_WEBSITE_RSVP
dimensionNoSMALL | MEDIUM (default) | LARGE

TDQS

A4.3/5.0
Behavior4/5

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

Description aligns with readOnlyHint annotation by stating it generates an image for inspection. No contradictions. Adds context that it's a preview.

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?

Extremely concise with two sentences. Front-loaded with the action 'Generate a QR-code PNG' and efficiently states return value and sibling relationship.

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?

Comprehensive for a simple preview tool: covers purpose, return value, and sibling tool. No output schema needed.

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 has 100% coverage, so the description adds no extra meaning beyond the schema. Baseline score of 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?

Clearly states it generates a QR-code PNG for inspection. Distinguishes from sibling tool 'set_card_project_qrcode' which actually places the QR code on a card.

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 tells when to use this tool versus the sibling for placement. Could be more detailed, but the guidance is clear and practical.

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

reconcile_registryA
Read-only

Reconcile the registry against the gift tracker. Returns DUPLICATE_RISK (flagged fulfilled but purchased count is 0 — still buyable), UNATTRIBUTED (purchased with no order behind it, so giver and value are lost), ORPHAN_ORDER (an order with no matching registry item) and a MATCHED count. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

The description goes beyond the readOnlyHint annotation by explaining exactly what kinds of results are returned and what each means: DUPLICATE_RISK, UNATTRIBUTED, ORPHAN_ORDER, and MATCHED count. It also explicitly states 'Read-only,' reinforcing that no mutation occurs.

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 compact and front-loaded with the core action. Each parenthetical earns its place by clarifying what each result category means, and the final 'Read-only' is a useful behavioral reinforcement despite also being in the annotations.

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 no parameters and no output schema, the description carries the full burden of explaining return semantics. It does so thoroughly by naming all four result categories and explaining the implications of the risk cases. An agent has enough context to call this tool 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?

The tool has zero parameters, so the baseline is 4; there is nothing for the description to explain. Schema coverage is vacuously 100%, and the description correctly focuses on behavior instead.

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 pair: 'Reconcile the registry against the gift tracker.' It also distinguishes this from simple read tools like get_registry and get_gift_tracker by describing a mismatch-detection operation with named result categories.

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 use case clear: this is a read-only reconciliation operation that surfaces discrepancies between registry and gift-tracker data. It does not explicitly name alternatives or exclusion conditions, but with zero parameters and a self-contained purpose, the intended context is evident.

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

remove_event_invitationA

Remove an event invitation for a single guest or guest group. Pass exactly one of guest_group_id (removes for all guests in the group) or guest_id (removes for just that guest). Other events’ invitations are preserved. Idempotent.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesEvent entity ID from list_events (event_entity_id)
guest_idNoSingle guest ID — removes for just that guest
guest_group_idNoGuest group ID — removes for every guest in the group

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare destructiveHint: false. The description adds idempotency and clarifies that other events' invitations are preserved. It does not discuss error handling for conflicting parameter usage or permissions, but the added context is sufficient.

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 sentences, front-loaded with the purpose, followed by parameter usage and additional behavior. Every sentence adds meaningful information with no 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?

Given the tool's simplicity (3 parameters, no output schema), the description covers purpose, parameter usage, and behavioral traits. It lacks any mention of return value or error states, but for a non-destructive, idempotent operation, this is a minor gap.

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?

The input schema has 100% description coverage, and the description adds significant value by explaining the distinction between 'guest_group_id' (removes for all in group) and 'guest_id' (removes for single guest) and the requirement to pass exactly one.

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 the action ('remove an event invitation') and the resource ('for a single guest or guest group'). It distinguishes from sibling tools like 'invite_guest_to_event' and 'remove_guest' by specifying it removes only invitations, not guests entirely.

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 explicit guidance on which parameter to use ('pass exactly one of guest_group_id or guest_id') and notes that other events' invitations are preserved. It implicitly tells when to use the tool but does not explicitly mention alternatives or when not to use it.

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

remove_faqA
Destructive

Remove an FAQ from the website

ParametersJSON Schema
NameRequiredDescriptionDefault
faq_entity_idYesFAQ entity ID from list_faqs

TDQS

A3.5/5.0
Behavior2/5

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

Annotations provide destructiveHint: true, which aligns with 'Remove'. The description adds no additional behavioral details such as permanence, side effects, or authentication 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?

A single, clear sentence with no extraneous words. Front-loaded and 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?

With no output schema, the description could mention the response or side effects. It is functional but lacks completeness for a removal operation.

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%, but the description adds value by specifying that the faq_entity_id comes from list_faqs, guiding the agent on parameter sourcing.

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 'Remove an FAQ from the website' clearly states the action and resource. It distinguishes from sibling tools like add_faq and update_faq, which perform different operations.

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 tool versus alternatives. The parameter name hints at using list_faqs first, but there is no explicit context or exclusion criteria.

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

remove_guestA
Destructive

Remove a guest group from the guest list

ParametersJSON Schema
NameRequiredDescriptionDefault
guest_group_idYesGuest group ID from list_guests

TDQS

A3.8/5.0
Behavior3/5

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

The destructiveHint annotation already signals a destructive operation. The description adds no further behavioral detail (e.g., irreversibility, permissions, side effects). With annotation present, the description is adequate but not enhanced.

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?

Single sentence, no extraneous words, directly communicates the tool's purpose. Front-loaded and efficient.

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 tool with one parameter and a destructive annotation, the description is nearly complete. However, it could mention potential effects on linked data (e.g., invitations or seating) for fuller context.

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 a clear description for the only parameter ('Guest group ID from list_guests'). The description adds no additional meaning beyond the schema, so 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?

Description clearly states the verb 'Remove' and resource 'guest group' from 'guest list'. This precisely defines the tool's action and distinguishes it from sibling tools like add_guest or invite_guest_to_event.

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?

No explicit guidance on when to use or not use this tool versus alternatives. The usage context is implied by the tool name and description, but there are no exclusions or conditional advice.

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

remove_home_sectionC
Destructive

Remove a story section from the home page

ParametersJSON Schema
NameRequiredDescriptionDefault
homepage_entity_idYes

TDQS

C2.7/5.0
Behavior2/5

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

The description states it removes a section, which is destructive, and annotations already provide destructiveHint: true. However, the description does not add further behavioral context (e.g., permanence, cascading effects, 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.

Conciseness3/5

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

The description is very concise (one short sentence), which is good for efficiency. However, it misses useful details, making it under-specified for a tool that likely needs context about the parameter.

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?

Given the tool's complexity (one required parameter, no output schema), the description should clarify the source of the ID and any side effects. It does not, leaving the agent with insufficient context to use the tool correctly.

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

Parameters1/5

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

The schema coverage is 0%, and the description does not explain the 'homepage_entity_id' parameter. The agent is not told what this ID represents or how to obtain it, leaving the parameter undocumented.

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 'Remove a story section from the home page' clearly states the action (remove) and the resource (home page story section). It distinguishes from sibling tools like 'add_home_section' and 'list_home_sections'.

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. It does not mention prerequisites, such as needing to list home sections first to obtain the ID, or any conditions under which removal is appropriate.

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

remove_poiC
Destructive

Remove a point-of-interest from the Things-to-Do page

ParametersJSON Schema
NameRequiredDescriptionDefault
poi_entity_idYes

TDQS

C2.9/5.0
Behavior2/5

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

The annotation already indicates destructiveHint: true, so the description adds no extra behavioral context. It does not mention irreversibility, side effects, or authorization 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 a single, concise sentence that front-loads the action and resource. No unnecessary 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?

Despite the destructiveHint annotation, the description omits parameter semantics and return behavior. For a simple deletion tool, it is incomplete without explaining how to find the ID.

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

Parameters1/5

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

The single parameter 'poi_entity_id' has 0% schema description coverage. The tool description does not explain what this ID is or how to obtain it (e.g., from list_pois). This is a significant gap.

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 the verb 'remove', the resource 'point-of-interest', and the context 'Things-to-Do page'. It distinguishes from sibling tools like add_poi, update_poi, and list_pois.

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 is provided on when to use this tool vs alternatives (e.g., for removing a POI, one might need to first list them to get the ID). No prerequisites or exclusions are mentioned.

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

remove_registry_itemC
Destructive

Remove an item from the registry

ParametersJSON Schema
NameRequiredDescriptionDefault
collection_item_idYes

TDQS

C2.6/5.0
Behavior2/5

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

The annotation already marks the tool as destructive. The description adds no further behavioral details such as reversibility, side effects, or post-removal state reliance. Beyond the annotation, there is no value added.

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 description is concise with no extraneous content, but it lacks necessary details, scoring average on the conciseness-structure trade-off.

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?

Given the tool is destructive with one required parameter and no output schema, the description fails to mention prerequisites, expected outcomes, or potential side effects. It feels incomplete for safe agent usage.

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 0%, and the description does not explain the sole required parameter 'collection_item_id'. The agent must infer its purpose from the name alone, which is insufficient for precise invocation.

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 'Remove' and resource 'an item from the registry', making the purpose unambiguous. It distinguishes from sibling tools like 'remove_guest' by specifying the registry context.

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 is provided on when to use this tool versus alternatives like 'update_registry_item' or 'add_registry_item'. The agent receives no context for decision-making.

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

remove_travel_itemB
Destructive

Remove a travel item from the Travel page

ParametersJSON Schema
NameRequiredDescriptionDefault
travel_entity_idYes

TDQS

B3.3/5.0
Behavior3/5

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

The destructiveHint annotation already indicates data loss risk. The description confirms 'Remove' but adds no additional behavioral context beyond the annotation. It does not contradict annotations.

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

Conciseness5/5

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

A single concise sentence that effectively communicates the core purpose. No unnecessary 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?

The description is brief but lacks essential details for correct invocation, such as parameter semantics and usage context. For a simple destructive tool with one parameter, more completeness is expected.

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 0% schema description coverage, the description fails to explain the single required parameter 'travel_entity_id', such as its purpose or how to obtain it. The meaning is only partially inferable from the tool name.

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 the action 'Remove', the resource 'travel item', and the location 'Travel page'. It distinguishes this from sibling tools like add_travel_item, update_travel_item, and list_travel_items.

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 is provided on when to use this tool versus alternatives, prerequisites (e.g., obtaining the travel_entity_id from list_travel_items), or consequences of use.

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

remove_vendorC
Destructive

Unbook a vendor

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesVendor UUID from list_vendors

TDQS

C2.8/5.0
Behavior2/5

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

The annotation already declares destructiveHint=true, so the agent knows it's destructive. The description adds no extra behavioral context (e.g., whether it permanently deletes or just unbooks, impact on associated data). The vague term 'unbook' could mislead about reversibility.

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 description is very short (3 words), which is concise but sacrifices important information. It could include context about the destructive action or return value. 'Unbook' is not standard terminology. It earns a borderline score.

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?

Given no output schema and only one parameter, the description should at least clarify the effect of the action (e.g., 'Permanently removes the vendor') and any side effects. The current description is too minimal to be fully informative for an AI agent.

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 the uuid parameter as 'Vendor UUID from list_vendors', which is clear. The description adds no additional semantics beyond the schema, so 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 'Unbook a vendor' combined with the tool name 'remove_vendor' and sibling tools like add_vendor and list_vendors makes the purpose clear: to remove a vendor from the vendor list. However, 'unbook' is slightly ambiguous and could imply cancellation rather than deletion, preventing a perfect 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?

The description provides no guidance on when to use this tool, prerequisites (e.g., vendor must exist via list_vendors), or when to avoid it (e.g., preferring update_vendor to deactivate). No alternatives are mentioned.

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

reorder_pagesA

Reorder pages in the website navigation. Pass the complete ordered list of page IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idsYesFull ordered list of page IDs in desired nav order

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=false, so the description adds minimal behavioral context beyond restating the action. It doesn't disclose potential side effects (e.g., navigation order changes, caching implications) or prerequisites, but for a simple reordering tool, this is acceptable.

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 wasted words. The essential information is front-loaded: what the tool does and how to use it. Every sentence serves a purpose.

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 simplicity (single parameter, no output schema, no nested objects), the description fully covers what the agent needs: the action and the required input format. It is contextually 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?

The input schema provides a full description of the parameter (100% coverage). The description merely restates the same guidance without adding new meaning or constraints beyond what the schema already conveys.

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 the verb 'reorder' and resource 'pages in the website navigation'. It distinguishes this tool from siblings like 'list_pages' or 'update_page', making the purpose specific and 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 description instructs to 'pass the complete ordered list of page IDs', which tells the agent how to use the parameter correctly. While it doesn't explicitly exclude partial reorderings or mention when not to use, the guidance is clear and sufficient for correct invocation.

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

search_card_catalogA
Read-only

Search the invitation design catalog. Faceted search returning suites matching the requested card type.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax suites to return. Default: 50.
card_typeNoLead card type: INVITATION (default), SAVE_THE_DATE, WEDDING_SHOWER_INVITATION, REHEARSAL_DINNER_INVITATION, THANK_YOU_CARD, etc.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, indicating no destructive side effects. The description's 'Search' verifies this, but adds no additional behavioral traits (e.g., pagination, rate limits, or sorting). It meets the baseline without contradiction.

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, 11 words total, with no redundancy. Every word adds value: 'Search' as verb, 'invitation design catalog' as resource, 'faceted search' as method, and 'returning suites matching card type' as 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?

No output schema exists, but the description partially compensates by stating it returns suites. It also implies the use of card_type as filter. The limit default is in schema. Slight gap: no mention of sorting or ordering, but adequate for a simple search.

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 clear descriptions. The description adds 'faceted search' context and ties card_type to the return, but doesn't enrich meaning 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.

Purpose5/5

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

The description clearly states the tool searches the invitation design catalog and returns suites matching the requested card type. It uses a specific verb ('Search') and identifies the resource ('invitation design catalog'), distinguishing it from sibling search tools like search_registry_products or search_themes.

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 explicit guidance on when to use this tool versus alternatives, nor any when-not-to-use conditions. Among 70+ sibling tools, the description only implies usage for searching card suites by type, leaving the agent without decision-making cues.

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

search_registry_productsA
Read-only

Browse Zola products in a category, scoped to your registry. Category IDs are Zola constants (e.g. 544 = Kitchen) — exposed via GET /v3/categories in the iOS app.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoDefault 50
offsetNoDefault 0
category_idYesZola product category ID

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate read-only nature (readOnlyHint: true), but the description adds value by specifying that results are scoped to the user's registry and that category IDs are external constants. It does not contradict annotations. However, it could mention behavior for invalid IDs or empty 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?

The description is two sentences with no fluff. The first sentence delivers the core purpose, and the second provides essential context for the category_id parameter. Every word earns its place, and the structure is front-loaded for quick understanding.

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 tool's simplicity and full schema coverage, the description covers the key aspects: what it does, how to get category IDs, and the registry scope. However, since no output schema exists, it would be beneficial to briefly describe the response format (e.g., product list fields) to enhance completeness.

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 input schema has 100% description coverage, but the description adds significant semantic meaning for the required 'category_id' parameter (constant IDs from a specific endpoint). This helps the agent understand how to obtain valid values. For 'limit' and 'offset', the description adds nothing 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?

The description clearly states the tool browses Zola products within a category scope to the user's registry. It provides a specific verb 'browse' and resource 'Zola products', and distinguishes from sibling tools like 'search_card_catalog' by specifying the product-and-registry context.

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 gives clear context for when to use the tool (browsing registry products by category) and hints at how to find valid category IDs via an API endpoint. However, it does not explicitly state when not to use it or mention alternative tools like 'search_storefronts' or 'search_vendors', which would strengthen guidance.

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

search_storefrontsB
Read-only

Search Zola vendor marketplace by category and location (1=Venues, 2=Photographers, 3=Florists, 7=Planners, 9=Bands/DJs)

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity name (e.g. Charlotte)
limitNoResults per page (default 24)
offsetNoPagination offset (default 0)
state_provinceYesState abbreviation (e.g. NC)
taxonomy_node_idYesVendor category ID (1=Venues, 2=Photographers, 3=Florists, 7=Planners, 9=Bands/DJs)

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=true. The description adds no behavioral context beyond the basic search action, such as pagination behavior, rate limits, or what happens with missing parameters.

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 sentence that efficiently conveys the tool's purpose and includes the key category mappings. It is front-loaded and avoids unnecessary detail.

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?

Given there is no output schema, the description should hint at what is returned (e.g., storefront details). It does not, and also lacks mention of defaults for limit/offset. The description feels incomplete for a tool with 5 parameters.

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 parameters. The description adds value by mapping taxonomy_node_id numbers to categories, but does not enhance other parameters like city or state_province 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 the tool searches the Zola vendor marketplace by category and location, listing specific category IDs (1=Venues, etc.). However, it does not explicitly differentiate from sibling tool 'search_vendors', which may be similar.

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 searching vendors by category and location, but provides no guidance on when not to use this tool or how it compares to alternatives like 'search_vendors'.

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

search_themesB
Read-only

Browse the catalog of available wedding-website themes

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoDefault 50
offsetNoDefault 0
theme_layout_typesNoDefault ["MULTI_PAGE"]

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description aligns with a read operation. No additional behavioral context is provided beyond what annotations offer.

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, clear sentence that efficiently conveys the tool's purpose. No wasted words.

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?

Given no output schema, the description does not explain return values or pagination behavior. It is adequate for a simple browse tool but could be more informative.

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?

Input schema has 100% description coverage for all three parameters. The description adds no extra meaning beyond the schema-provided defaults and types.

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 tool browses the catalog of wedding-website themes, using the verb 'Browse' and resource 'themes'. However, it does not differentiate from similar sibling tools like search_card_catalog or search_vendors.

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 is given on when to use this tool versus alternatives. It does not mention context, exclusions, or prerequisites.

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

search_vendorsA
Read-only

Search for vendors by name (typeahead) within a vendor category

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesVendor name to search for
taxonomy_keyNoVendor category key (e.g. wedding-venues, wedding-photographers, wedding-planners, wedding-bands-djs). Default: wedding-venues

TDQS

A3.8/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, and description adds 'typeahead' hint but no deeper behavioral context like return format or pagination.

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?

Single sentence, front-loaded with key verb and purpose, no unnecessary words.

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 search tool, description covers purpose and constraints; could mention return format but not necessary given typical expectations.

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 already covers both parameters with descriptions; description adds minimal value beyond connecting 'within a vendor category' to taxonomy_key.

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?

Description clearly states it searches for vendors by name with typeahead support within a category, distinguishing it from list_vendors and other vendor tools.

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?

Implied usage for name-based search with category filter, but no explicit guidance on when to use versus list_vendors or other methods.

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

set_card_project_guestsA

Enable / disable guest groups for an invitation project and optionally override font sizes for printed names and addresses. Pass the full list of guest groups you want recorded.

ParametersJSON Schema
NameRequiredDescriptionDefault
guest_groupsYesFull list of guest groups to record. Omitted groups are not affected by this call.
project_uuidYesProject UUID from list_card_projects

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate non-destructive behavior. The description adds that omitted groups are unaffected (from schema), but doesn't reveal other potential side effects like overwriting existing settings.

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 concise sentences with front-loaded purpose, no unnecessary words.

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 no output schema and simple parameters, the description covers the core action and constraint. Missing return value or error details, but adequate 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 parameters are well-documented. The description reinforces the full-list requirement but adds little beyond schema definitions.

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 it enables/disables guest groups and optionally overrides font sizes, distinguishing it from read-only tools like get_card_project_guests.

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 says to pass the full list, implying a batch operation, but does not explicitly contrast with individual group modifications or other tools, leaving the when-to-use context vague.

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

set_card_project_qrcodeA

Place (or update) a QR code on a specific page of an invitation project. The page UUID comes from get_card_project (look under the customization's pages array).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL the QR code will resolve to
colorNoHex color (no #). Default: 000000
enabledNoWhether to enable the QR code. Default: true.
url_typeNoCUSTOM (default) | WEDDING_WEBSITE | WEDDING_WEBSITE_RSVP
dimensionNoSMALL | MEDIUM (default) | LARGE
page_uuidYesPage UUID of the customization to put the QR on
project_uuidYesProject UUID from list_card_projects

TDQS

A4/5.0
Behavior3/5

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

Annotations declare destructiveHint=false, and the description adds 'or update', indicating idempotency. However, it does not disclose other behavioral traits such as permissions, rate limits, or side effects. The description adds some value beyond annotations but is 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?

Extremely concise: one sentence for the purpose and one for a key hint. No redundant information; every sentence adds value. Front-loaded with the action.

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 tool's complexity (7 parameters, no output schema), the description covers the core action and a crucial dependency (page UUID source). It is sufficient for an agent to invoke the tool correctly, though it could optionally mention return behavior.

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 parameters are well-documented in the schema. The tool description provides a summary but no additional semantic information beyond what the schema already offers. Baseline score of 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 clearly states the action ('Place (or update) a QR code'), the resource ('on a specific page of an invitation project'), and differentiates from sibling tools like preview_qrcode or other set/update tools.

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?

Description provides explicit guidance on where to obtain the page UUID ('from get_card_project'), which is a key prerequisite. While it does not explicitly say when not to use this tool, the context of sibling tools and the specificity of the action make usage clear.

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

set_event_guestsA

Set which guest groups are invited to an event (bulk). For each group, invited:true ensures every guest in the group is invited to the event; invited:false removes the invitation. Other events’ invitations are preserved. Idempotent. Use this to assign guests to events in bulk (e.g. by tier/affiliation/location).

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesEvent entity ID from list_events (event_entity_id)
guest_groupsYesGuest groups to set for this event. Only the listed groups are affected.

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses idempotency, the effect of invited:true/false on each group, and that only listed groups are affected. Annotations only provide destructiveHint:false, so the description adds significant behavioral context beyond annotations, fully addressing agent decision needs.

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 concise sentences, front-loaded with the purpose and followed by key details. No superfluous information; every sentence earns its place, making it efficient and easy to parse.

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 no output schema, the description is largely complete for a setter tool—it explains behavior and usage. However, it lacks any mention of return values (e.g., confirmation or error handling), which would make it more complete for agents expecting to process results. Still, it covers the core aspects well.

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%, but the description adds critical meaning: it explains that invited:true 'ensures every guest in the group is invited' and invited:false 'removes the invitation', and clarifies that guest_groups only affects listed groups. It also mentions event_id comes from list_events, adding value 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?

The description clearly states the verb 'Set' and resource 'guest groups invited to an event' with '(bulk)'. It distinguishes from siblings like invite_guest_to_event (individual) and remove_event_invitation, making the tool's specific purpose 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 description provides context: 'Use this to assign guests to events in bulk (e.g. by tier/affiliation/location)' and notes that other events' invitations are preserved. It implies appropriate use for bulk group operations but does not explicitly mention when not to use it or name alternative tools like invite_guest_to_event, which would strengthen guidance.

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

set_page_hiddenA

Show or hide a page on the wedding website (e.g., hide the RSVP page until invites go out)

ParametersJSON Schema
NameRequiredDescriptionDefault
hiddenYestrue to hide the page, false to show it
page_idYesPage ID from list_pages

TDQS

A4/5.0
Behavior3/5

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

Annotations only indicate nondestructive behavior. Description clarifies the effect (toggle visibility) but lacks details on side effects, reversibility, or permissions. Adequate for a simple toggle, but could add more context.

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?

Single sentence, front-loaded with action and resource, with a clarifying example. No wasted words.

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?

Tool is simple (2 params, no output schema). Description is sufficient for basic usage and covers the core functionality. Minor gap: no mention of what happens to page content or user experience, but not critical.

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 covers both parameters with description; schema description coverage is 100%. Description does not add new semantic meaning beyond what the schema provides, so baseline score 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?

Description clearly states the verb (show/hide), resource (page), and domain (wedding website). Includes a concrete example (hiding RSVP page) that distinguishes it from sibling page tools like update_page or reorder_pages.

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 an explicit use case ('hide the RSVP page until invites go out') implying appropriate contexts. Does not explicitly state when not to use or list alternatives, but the example suffices for understanding when to apply.

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

swap_card_project_variationA

Swap one or more customizations on a project to different variations (e.g. switch paper type, color, or size). Pass a map of customization UUID → new variation UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_uuidYesProject UUID from list_card_projects
customizationsYes{ customization_uuid: new_variation_uuid }

TDQS

A3.7/5.0
Behavior2/5

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

Annotations only provide destructiveHint=false. The description adds no further behavioral context such as side effects, permission requirements, or whether changes are reversible. For a mutation tool, this is insufficient.

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 concise sentences that immediately convey the purpose and usage pattern. No wasted words.

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?

No output schema exists; description does not mention return values or error conditions. For a simple operation, it is adequate but missing expected behavioral details.

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% with descriptions. The description adds value by explaining the map structure ('customization UUID → new variation UUID') and providing an example, which goes 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?

The description clearly states the verb 'swap' and the resource 'customizations on a project', with concrete examples (paper type, color, size). It distinguishes from siblings by being specific to swapping variations.

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 usage by showing the parameter pattern (map of UUIDs), but does not explicitly state when to use this tool versus alternatives like update_website_customization. No exclusions or alternatives are mentioned.

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

track_rsvpsA
Read-only

Get RSVP tracking summary per event (attending, declined, not responded)

ParametersJSON Schema
NameRequiredDescriptionDefault

No 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=true, so the description's behavioral contribution is limited to stating it returns a summary with RSVP status counts. This adds value but does not disclose additional traits like data freshness or aggregation logic.

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 is front-loaded with the action and resource. Every word is necessary, providing maximum information in minimal space without 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?

For a parameterless tool with annotations, the description covers the key functionality. However, it does not specify the output format (e.g., per event list or aggregated counts) or any limitations, which would improve completeness.

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?

There are no parameters, and schema description coverage is 100%. According to the rubric, 0 parameters yields a baseline of 4. The description does not need to add parameter information.

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 it 'Get RSVP tracking summary per event' and specifies the data fields (attending, declined, not responded). It is specific enough to distinguish from sibling tools like get_rsvp_page, though explicit differentiation is missing.

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 like get_rsvp_page or list_events. It does not include any exclusions or context for optimal use.

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

update_budget_itemB

Update a budget item's actual cost and/or note by UUID

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoNote for the budget item
uuidYesBudget item UUID from get_budget
actual_cost_centsNoActual cost in cents

TDQS

B3.3/5.0
Behavior2/5

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

Annotations indicate destructiveHint: false, but the description does not add behavioral context such as whether the update is partial or replaces existing values, or any permissions required. Minimal disclosure beyond the verb.

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?

Single sentence with clear subject and action, front-loaded with the verb and target. No unnecessary words.

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?

Tool has simple parameters and no output schema. The description adequately specifies what is updated but lacks details on success/error behavior or whether other fields are unaffected. Acceptable for a low-complexity 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 the schema already documents all parameters. The description adds that it uses 'actual cost' and 'note' (mapping to actual_cost_cents and note) and 'by UUID'. This provides limited added meaning over 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 clearly states the tool updates a budget item's actual cost and/or note by UUID, using a specific verb and resource. It distinguishes from sibling tools like get_budget.

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 is provided on when to use this tool versus alternatives (e.g., get_budget to retrieve items first). Missing prerequisites or context for invocation.

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

update_current_themeA

Switch the wedding website to a different theme template

ParametersJSON Schema
NameRequiredDescriptionDefault
theme_keyYesTheme key from search_themes (e.g., "galata", "blake-cranberry")
theme_layout_typeNoDefault MULTI_PAGE

TDQS

A3.5/5.0
Behavior2/5

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

The description only says 'Switch' without detailing side effects, such as whether existing customizations are preserved or lost, or if the change is immediate. Annotations provide destructiveHint: false, which is consistent, but no additional behavioral context is given.

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 clear sentence with no unnecessary words. It communicates the essential function efficiently.

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 simple update tool with two parameters and no output schema, the description is minimally acceptable. It could be more complete by explaining the effect of the switch or confirming that theme_key must come from search_themes, but that information is already in 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?

Both parameters are fully described in the input schema (100% coverage). The description does not add extra meaning beyond what is already in the schema, so the baseline score 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?

The description clearly states the action ('Switch') and resource ('wedding website to a different theme template'). It uniquely identifies this as the tool for changing the theme, distinguishing it from read tools like get_current_theme and search_themes.

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 the usage context (changing theme) but does not explicitly state when to use this vs alternatives, nor does it mention prerequisites or when not to use it. The schema references search_themes for theme_key, providing implicit guidance, but the description itself lacks explicit directions.

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

update_eventC

Update a wedding event (name, time, venue, location, dress code, RSVP settings)

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
nameNoEvent name
noteNoEvent notes/description
attireNoDress code
end_atNoEnd time ISO 8601
address1NoStreet address
event_idYesEvent entity ID from list_events
start_atNoStart time ISO 8601 (e.g. 2026-10-17T18:30:00Z)
venue_nameNoVenue name
postal_codeNo
country_codeNoDefault: US
collect_rsvpsNoWhether to collect RSVPs for this event
state_provinceNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations only provide destructiveHint=false. The description does not disclose behavioral traits beyond 'Update', such as whether fields are merged or replaced, required permissions, or response behavior. No output schema exists to compensate.

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?

Single sentence, no extraneous text, directly conveys the purpose. Perfectly 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?

With 13 parameters, no output schema, and moderate annotation coverage, the description is too brief. It does not explain update behavior (e.g., partial vs full update), required fields, or response structure. Incomplete for a complex 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 description coverage is 77% (10 of 13 parameters have descriptions). The tool description adds a high-level list of fields but does not provide additional meaning beyond what the schema already offers. Baseline score 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 clearly states it updates a wedding event and lists the fields (name, time, venue, location, dress code, RSVP settings). It distinguishes from siblings by specifying it's an update operation on an event, but does not explicitly differentiate from other update tools like update_wedding_settings.

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 tool versus alternatives (e.g., set_event_guests, update_wedding_settings). No prerequisites, context, or when-not-to-use information is provided.

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

update_faqC

Update an existing FAQ — all three fields (question, answer, display_order) must be supplied

ParametersJSON Schema
NameRequiredDescriptionDefault
answerYes
questionYes
display_orderYes
faq_entity_idYesFAQ entity ID from list_faqs

TDQS

C2.9/5.0
Behavior3/5

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

Annotations indicate destructiveHint=false, which is consistent with an update. The description adds that all three fields must be supplied, implying partial updates are not allowed—a useful behavioral trait beyond annotations. However, it does not detail effects like overwriting existing data or idempotency.

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 sentence that is front-loaded with the core purpose. It contains no filler, though the em dash is slightly informal. The information is concise and to the point.

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 no output schema, so the description should explain what the tool returns or any side effects. It does not. Additionally, it omits error conditions, preconditions (e.g., FAQ must exist), and how the update affects list_faqs or other reports.

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 25% (only faq_entity_id described). The description lists the three fields but provides no semantics or constraints beyond their names. It fails to compensate for the low coverage, leaving agents without understanding of what 'question', 'answer', or 'display_order' mean.

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 'Update an existing FAQ', indicating the action (update) and resource (FAQ). It distinguishes from sibling tools like add_faq and remove_faq through the verb 'update', though it does not explicitly 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?

The description provides the constraint that all three fields must be supplied, which is a usage guideline. However, it does not specify when to use this tool versus alternatives like add_faq or remove_faq, nor does it mention prerequisites like needing a valid faq_entity_id.

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

update_guest_addressC

Update a guest group's mailing address

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
address1No
address2No
postal_codeNo
country_codeNoDefault: US
guest_group_idYesGuest group ID from list_guests
state_provinceNo

TDQS

C2.6/5.0
Behavior2/5

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

The only annotation is destructiveHint: false, indicating the operation is not destructive. The description adds 'Update', which aligns with mutation but does not disclose other behavioral traits like whether the change is reversible, requires authentication, or has side effects (e.g., updating related records). Given minimal annotation coverage, the description carries the burden but provides insufficient detail.

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, clear sentence with no redundancy. It is appropriately brief for a straightforward update operation, though it could benefit from a slightly expanded structure to cover key behavioral aspects.

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?

Given 7 parameters, no output schema, and minimal annotations, the description lacks completeness. It does not mention return values, error conditions, permission requirements, or constraints on which fields can be updated simultaneously. The tool is simple, but critical context for correct usage is missing.

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

Parameters1/5

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

Only 2 of 7 parameters have descriptions in the schema (country_code and guest_group_id), resulting in 29% coverage. The description does not explain any parameter semantics, such as the meaning of address fields or their optionality. This fails to compensate for the low schema coverage, leaving the agent to guess the role of parameters like city, address1, etc.

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 action ('Update') and the resource ('a guest group's mailing address'), making the tool's purpose immediately understandable. However, it does not explicitly differentiate it from sibling tools like 'update_event' or 'update_faq', which also update other resources, but the resource specificity is sufficient.

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, such as when to update an address versus creating a new group or using a different update tool. There is no mention of prerequisites, exclusion criteria, or typical use cases, leaving the agent to infer context on its own.

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

update_home_sectionC

Update a home page story section — all fields must be supplied

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
hiddenYes
subtitleYes
descriptionYes
display_orderYes
homepage_entity_idYesHome section ID from list_home_sections

TDQS

C2.7/5.0
Behavior2/5

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

The description adds a behavioral constraint (all fields required) but does not disclose other behaviors like side effects, required permissions, or what occurs upon update. Annotations are sparse, so description could have done more.

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 short sentence, making it very concise. It front-loads the purpose. However, it sacrifices informativeness for brevity.

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

Completeness1/5

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

Given 6 required parameters, no output schema, and low schema coverage, the description is grossly incomplete. It fails to explain the function of each parameter or the overall effect of the update.

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

Parameters1/5

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

With only 17% schema description coverage, the description should compensate for the undocumented parameters. Instead, it provides no meaning for the five other parameters beyond the schema's basic types.

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 the verb 'Update' and the resource 'home page story section', and includes a notable constraint 'all fields must be supplied'. This distinguishes it from sibling tools like 'add_home_section' and 'remove_home_section'.

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 only mentions a constraint ('all fields must be supplied') but provides no guidance on when to use this tool versus alternatives, or when not to use it.

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

update_pageA

Update page-level metadata (title, intro copy, nav title, visibility, layout customization)

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoOn-page title
hiddenNoHide the page from the public site
page_idYesPage ID from list_pages
nav_titleNoTitle shown in nav bar
intro_copyNoIntroductory paragraph on the page
menu_titleNoTitle shown in mobile menu
descriptionNoPage description
customizationNoLayout customization object (see list_pages for shape)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=false, so the description's 'update' is consistent and non-contradictory. However, the description adds no further behavioral details (e.g., whether partial updates are supported, permission requirements, or side effects). Since annotations already cover the main concern, a score of 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.

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and key fields. No unnecessary words or repetition.

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 tool has 8 parameters (all documented in schema) and no output schema. The description does not explain the return value or behavior for partial updates. However, the schema covers parameter shapes, and the description lists the categories of metadata. For a tool with this complexity, some additional context (e.g., response format) would improve completeness, but it is minimally 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 coverage is 100%, so the description does not need to add parameter details. The description mentions some fields ('visibility' mapping to 'hidden', 'layout customization' mapping to 'customization') but adds no additional meaning beyond the parameter descriptions in the schema. Baseline 3 is correct.

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 uses a specific verb 'Update' and resource 'page', and lists the metadata fields affected (title, intro copy, nav title, visibility, layout customization). This clearly distinguishes it from sibling tools like set_page_hidden (which focuses on hiding) and reorder_pages.

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 is provided on when to use this tool versus alternatives (e.g., set_page_hidden for toggling visibility alone, or other update tools). The description does not exclude scenarios or mention prerequisites 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.

update_poiB

Update a point-of-interest. Provide only the fields you want to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
cityNo
titleNo
address1No
address2No
latitudeNo
longitudeNo
descriptionNo
postal_codeNo
country_codeNo
contact_phoneNo
display_orderNo
poi_entity_idYesPOI ID from list_pois
state_provinceNo
google_place_idNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations indicate non-destructive behavior; description adds partial update semantics. No contradiction, but misses details on authorization or return value.

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?

Very short and to the point, but could be slightly more structured to include parameter details without sacrificing brevity.

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?

Given 15 parameters, no output schema, and many sibling tools, the description lacks critical context about parameter meanings and usage flow.

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 7% schema description coverage, the description does not elaborate on any of 14 undocumented parameters, failing to add 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?

Clearly states the action (update) and resource (point-of-interest), distinguishing it from add_poi, remove_poi, and list_pois among 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?

Provides a partial update hint ('provide only fields you want to change') but lacks guidance on when to use this tool versus alternatives or prerequisites.

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

update_registry_itemA

Update an existing registry item — all fields must be supplied (it's a full replace)

ParametersJSON Schema
NameRequiredDescriptionDefault
quantityYes
group_giftYes
most_wantedYes
collection_idYesCollection the item belongs to
personal_noteYes
marked_fulfilledYes
collection_item_idYesItem ID from get_registry

TDQS

A4/5.0
Behavior4/5

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

The description adds the critical behavior of being a full replace beyond annotations (only destructiveHint: false). It warns that missing fields would be overwritten, but doesn't detail consequences or return behavior.

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?

Single, efficient sentence that conveys the key constraint immediately. No wasted words.

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?

Provides essential behavioral context (full replace) but lacks return format, prerequisites (e.g., item existence), and error handling. With 7 required params and no output schema, more guidance is warranted.

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 29% schema coverage, the description should compensate for undocumented parameters but does not. It only states the overall replace behavior, not individual field meanings.

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?

Clearly states the action (update) and resource (registry item), with the qualifier 'full replace' differentiating from adding or removing. Sibling tool names confirm distinct purpose.

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 says all fields must be supplied and it's a full replace, guiding the agent to use this only when it has complete data. However, no explicit when-not or alternative references.

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

update_travel_itemA

Update a travel item. Provide only the fields you want to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
cityNo
codeNo
nameNo
noteNo
typeNo
sourceNo
address1No
address2No
latitudeNo
timezoneNo
longitudeNo
postal_codeNo
country_codeNo
display_orderNo
email_addressNo
contact_numberNo
state_provinceNo
google_place_idNo
travel_entity_idYesTravel entity ID from list_travel_items

TDQS

A4/5.0
Behavior4/5

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

Description indicates mutation ('update') and specifies partial update behavior. Annotations show destructiveHint=false, consistent with a non-destructive update. No contradiction; description adds useful context beyond 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?

Two sentences, front-loaded with purpose, and no unnecessary words. Each 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?

Adequate for a simple update action, but with 20 parameters and no output schema, the description omits return values, error handling, and field-specific details. Could be more complete.

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 has 20 parameters with only 5% description coverage (only 'travel_entity_id' documented). Description adds no parameter-level meaning beyond schema types and enums, failing to compensate for low 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?

Description clearly states 'Update a travel item' with the verb 'update' and resource 'travel item'. Distinguishes from sibling tools like 'add_travel_item' and 'remove_travel_item'.

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?

Description provides guidance to 'Provide only the fields you want to change', implying partial update behavior. However, it does not explicitly specify when to use this tool versus other update tools or mention prerequisites.

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

update_vendorC

Update a booked vendor's details

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
nameNo
uuidYesVendor UUID from list_vendors
emailNo
event_dateNoISO 8601 date
price_centsNo
state_provinceNo

TDQS

C2.6/5.0
Behavior2/5

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

The description states 'update' but does not elaborate on behavioral traits beyond what the annotations (destructiveHint: false) already convey. It omits details on partial vs full updates, side effects, 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.

Conciseness3/5

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

The description is very concise (5 words), but this brevity sacrifices valuable context. It is front-loaded but lacks essential details, making it adequate but not well-structured for decision-making.

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?

Given the complexity (7 parameters, no output schema, minimal annotations), the description is insufficient. It does not cover return values, partial update behavior, or how it differs from similar update tools among the 70+ siblings.

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 29% schema description coverage (only uuid and event_date have descriptions), the description should compensate by clarifying parameter semantics, but it does not. The description adds no meaning beyond the parameter names and types in 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 identifies the action ('Update') and the resource ('a booked vendor's details'), distinguishing it from sibling tools like add_vendor and remove_vendor. However, the term 'booked' is somewhat specialized and may not be universally understood.

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 is provided on when to use this tool versus alternatives such as add_vendor or other update_* tools. The description does not mention prerequisites, conditions, or exclusions.

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

update_website_customizationA

Update website colors and fonts. Provide only what changes. Colors are 6-char hex without #. Note: when header_font_family_id changes, the wrapper auto-fetches current state and re-sends all active colors to defend against a Zola partial-update wipe bug. body_font_family_id is restricted to [68, 198]. header_color and nav_font_color exist on Zola's web-api endpoint but are NOT writable via the mobile-api this MCP uses — change them in the Zola web UI for now.

ParametersJSON Schema
NameRequiredDescriptionDefault
accent_colorNo6-char hex (no #)
header_colorNoWritable only via Zola's web-api (cookie+CSRF), not the mobile-api this MCP uses. Passing this throws.
nav_font_colorNoWritable only via Zola's web-api (cookie+CSRF), not the mobile-api this MCP uses. Passing this throws.
body_font_colorNo
background_colorNo
body_font_family_idNoRestricted to 68 (Libre Baskerville) or 198 (Circular). Other IDs return a generic API error.
header_font_family_idNoFont family ID — call get_website_customizations to see available font_family_ids
navigation_background_colorNo

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses important behavioral traits: a bug workaround when changing header_font_family_id, field restrictions (body_font_family_id limited to [68, 198]), and fields that cause errors if passed (header_color, nav_font_color). This adds significant value beyond the annotations which only set destructiveHint: 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?

The description is concise with four sentences that are front-loaded with the main purpose. Every sentence provides necessary information without waste. It efficiently conveys purpose, usage, constraints, and a bug workaround.

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 complexity of 8 parameters and no output schema, the description covers key behavioral aspects, constraints, and usage hints. It is mostly complete, though it could mention what the response looks like or any side effects beyond the bug workaround.

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 description adds meaning beyond the input schema by clarifying the color format (6-char hex without #), explaining which fields are not writable via mobile-api, and noting restrictions on body_font_family_id. The schema has 63% coverage, and the description compensates well for the remaining parameters.

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 the tool updates website colors and fonts, and specifies that only changed fields should be provided. This differentiates it from other update tools and is specific about the resource being modified.

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 guidance on when to use this tool (for updating colors and fonts) and notes that certain fields (header_color, nav_font_color) are not writable via this API and should be changed in the Zola web UI. It also advises calling get_website_customizations for font family IDs. However, it does not explicitly compare with sibling tools.

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

update_wedding_settingsA

Update top-level wedding settings. Provide only the fields you want to change; the rest are preserved.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
slugNoURL slug — appears in the public website URL
titleNoWedding title (e.g., "Alex & Jordan")
hashtagNoe.g. #merchris2026 — empty string clears it
guest_countNo
wedding_dateNoYYYY-MM-DD
state_provinceNo
owner_last_nameNo
owner_first_nameNo
partner_last_nameNo
enable_search_zolaNoAllow Zola search to find the site
partner_first_nameNo
enable_search_engineNoAllow search engines (Google, etc.) to index the site

TDQS

A4.2/5.0
Behavior4/5

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

Annotations provide destructiveHint=false. The description adds partial update semantics (preserving unprovided fields), which is beyond annotations. It does not disclose permissions or error states, but the addition is valuable.

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 redundancy. First sentence states purpose, second explains usage pattern. Efficient front-loading.

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 13 parameters, no output schema, and only destructiveHint annotation, the description covers core behavior. It lacks output specification and constraints but is sufficient for basic 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 coverage is 46%, with 6 of 13 parameters described. The description provides general guidance ('provide only fields you want to change') but does not detail individual parameters. This is acceptable but not exceptional.

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 'Update top-level wedding settings', specifying the verb and resource. It distinguishes from siblings like get_wedding_settings (read) and other update tools (update_event, update_guest_address) by focusing on top-level settings.

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 explicitly says 'Provide only the fields you want to change; the rest are preserved', indicating partial update usage. While it doesn't enumerate when not to use, the context implies using this for top-level settings and other tools for specific updates.

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

validate_card_projectA
Read-only

Validate an invitation project — reports any text-fit, image, or guest-addressing errors per customization. Use before placing an order.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_uuidYesProject UUID from list_card_projects

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description confirms read-only behavior by stating it 'reports errors,' adding context about what is checked (per customization) beyond the annotation.

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: first defines action and error types, second gives usage timing. No wasted words, front-loaded with key 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?

For a validation tool with one param, no output schema, and annotations, the description adequately explains functionality and usage. Could optionally mention return format but not necessary.

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 description 'Project UUID from list_card_projects'. The tool description adds no extra info about the parameter, so 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 uses a specific verb 'Validate' and resource 'invitation project', lists the types of errors reported (text-fit, image, guest-addressing), and distinguishes it from siblings like get_card_project by focusing on pre-order validation.

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 explicitly states 'Use before placing an order,' providing clear context for when to use. While it doesn't exclude alternatives, the sibling tools are mostly CRUD, implying this is the validation step.

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

zola_healthcheckVerify credentials and upstream reachabilityA
Read-onlyIdempotent

Resolves the credential the way real tools do, then makes one authenticated request to mobile-api.zola.com. Reports which source supplied the credential, whether mobile-api.zola.com accepted it, the round-trip time, and a plain-English hint distinguishing 'no credential' from 'credential rejected' from 'a mobile-api.zola.com-side problem'. Call this when a real tool fails and you want to know which hop broke. Read-only; never returns the credential itself.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description adds valuable behavioral detail: it performs exactly one authenticated request, reports the credential source, distinguishes three failure modes, and never returns the credential itself. This is substantial context beyond what annotations alone 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 compact and front-loaded: it states the mechanism, enumerates the report contents, gives a clear use case, and ends with a safety note. Every sentence contributes necessary information without repetition.

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 there is no output schema, the description explicitly lists what the tool reports: credential source, acceptance by the upstream, round-trip time, and a plain-English hint categorizing failures. Combined with the annotations and zero-parameter schema, an agent has everything needed to invoke and interpret this 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?

The tool has zero parameters and the schema coverage is 100%, so there are no parameter semantics to clarify. The description appropriately focuses on behavior and output instead of inputs.

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 names a specific diagnostic operation: resolves credentials the way real tools do, makes one authenticated request to a named upstream, and reports the result. This clearly distinguishes it from the many data-operation siblings, none of which are healthcheck tools.

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 gives explicit guidance: 'Call this when a real tool fails and you want to know which hop broke.' It does not enumerate when-not-to-use cases or alternatives, but the diagnostic intent is clear enough that an agent can select it appropriately.

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. Dates show when Glama detected each change.

  1. 1 tool updatev1.11.0
    • Addedzola_healthcheck
  2. 2 tool updatesv1.10.0
    • Changedget_registry3 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Max items to return. Default 100",
        +  "type": "number"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Item offset. Default 0",
        +  "type": "number"
        +}
    • Addedreconcile_registry
  3. 75 tool updatesv1.4.2
    • First observedadd_faq
    • First observedadd_guest
    • First observedadd_home_section
    • First observedadd_poi
    • First observedadd_registry_item
    • First observedadd_travel_item
    • First observedadd_vendor
    • First observedassign_seat
    • First observedcreate_card_project
    • First observedget_budget
    • First observedget_card_project
    • First observedget_card_project_guests
    • First observedget_card_suite
    • First observedget_current_theme
    • First observedget_gift_tracker
    • First observedget_inquiry_conversation
    • First observedget_registry
    • First observedget_rsvp_page
    • First observedget_seating_chart
    • First observedget_storefront
    • First observedget_website_customizations
    • First observedget_wedding_dashboard
    • First observedget_wedding_settings
    • First observedinvite_guest_to_event
    • First observedlist_card_projects
    • First observedlist_events
    • First observedlist_faqs
    • First observedlist_favorite_card_suites
    • First observedlist_favorites
    • First observedlist_guests
    • First observedlist_home_sections
    • First observedlist_inquiries
    • First observedlist_pages
    • First observedlist_pois
    • First observedlist_seating_charts
    • First observedlist_travel_items
    • First observedlist_unseated_guests
    • First observedlist_vendors
    • First observedmark_inquiry_read
    • First observedpreview_card_template
    • First observedpreview_qrcode
    • First observedremove_event_invitation
    • First observedremove_faq
    • First observedremove_guest
    • First observedremove_home_section
    • First observedremove_poi
    • First observedremove_registry_item
    • First observedremove_travel_item
    • First observedremove_vendor
    • First observedreorder_pages
    • First observedsearch_card_catalog
    • First observedsearch_registry_products
    • First observedsearch_storefronts
    • First observedsearch_themes
    • First observedsearch_vendors
    • First observedset_card_project_guests
    • First observedset_card_project_qrcode
    • First observedset_event_guests
    • First observedset_page_hidden
    • First observedswap_card_project_variation
    • First observedtrack_rsvps
    • First observedupdate_budget_item
    • First observedupdate_current_theme
    • First observedupdate_event
    • First observedupdate_faq
    • First observedupdate_guest_address
    • First observedupdate_home_section
    • First observedupdate_page
    • First observedupdate_poi
    • First observedupdate_registry_item
    • First observedupdate_travel_item
    • First observedupdate_vendor
    • First observedupdate_website_customization
    • First observedupdate_wedding_settings
    • First observedvalidate_card_project

TDQS

B3.3/5.0
Disambiguation4/5

Most tools have distinct verbs and nouns (add/remove/update/list/get + specific resource), making them easily tell apart. However, guest management has many closely related tools (invite_guest_to_event, set_event_guests, assign_seat, set_card_project_guests) that could cause confusion, and search tools are numerous but target different catalogs.

Naming Consistency4/5

The naming follows a consistent verb_noun pattern (e.g., add_guest, list_faqs, update_budget_item). Minor inconsistencies exist: 'preview_qrcode' abbreviates 'QR code', 'mark_inquiry_read' uses a different verb structure, and 'track_rsvps' deviates slightly, but overall the pattern is clear and predictable.

Tool Count2/5

With 75 tools, the set is extremely large for a typical MCP server. While Zola is a comprehensive wedding platform and each tool serves a specific purpose, the count exceeds what is manageable for agents, leading to decision fatigue and higher selection error rates.

Completeness3/5

The tool surface covers many domains (guests, website, registry, vendors, invitations, budget, seating), but there are notable gaps: no tools to create or delete events, delete card projects, delete budget items, or send vendor inquiries. Basic CRUD lifecycle is incomplete in several areas.

Maintenance

ActivityActive
ResponsivenessWithin a week

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrischall/zola-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server