haus
Server Details
OneHaus household tools: tasks, calendar, contacts, pets, vehicles, documents and more.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.2/5 across 68 of 68 tools scored. Lowest: 3.4/5.
Each tool targets a distinct resource and action, with clear descriptions separating similar-sounding tools like create_calendar_event vs create_recurring_calendar_event. Shopping list operations (add, buy, remove, update) are clearly delineated.
All tools follow a verb_noun snake_case pattern: create_*, list_*, update_*, delete_*, get_*, etc. Even special operations like store_memory, recall_memory, and skip_recommendation fit the pattern.
With 68 tools, this server vastly exceeds a reasonable scope; the instruction manual indicates 50+ tools is an extreme mismatch. The breadth suggests the server should be split into focused sub-servers (tasks, shopping, calendar, etc.) rather than a single monolithic interface.
The tool surface covers full CRUD/lifecycle for all major resources: tasks, shopping, calendar, contacts, documents, appliances, vehicles, pets, recipes, meal plans, subscriptions, and memories. Additional features like house review, weather, and profile round out the household management domain.
Available Tools
68 toolsadd_shopping_list_itemAInspect
Add an item to the household's shopping list. A brand-new item gets a category auto-assigned from its name. If an unbought item with a matching name already exists, its quantity is merged into that item instead of creating a duplicate, keeping the existing item's category unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the item to add, e.g. 'Milk' or 'Paper towels'. Maximum 200 characters. For a brand-new item, a category is auto-assigned from the name. If an unbought item with a matching name is already on the list, its quantity is increased instead of creating a duplicate entry, and the existing item keeps its current category unchanged. | |
| quantity | No | How many of the item to add. Defaults to 1 if omitted. Minimum 1, maximum 9999. When merged into an existing unbought item, this is added to the existing quantity (capped at 9999). |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses important side effects: auto-assigning a category for new items, merging quantities into existing unbought items, and preserving the existing item's category. This gives the agent a clear picture of what happens when the tool is invoked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, dense with relevant information, no redundancy. The most important actions (add, merge, auto-category) are front-loaded, and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple write operation with only 2 parameters, full schema coverage, and an output schema, the description covers the essential behavioral nuances (new vs. existing items, category preservation). No significant gaps for an agent to misuse the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'name' and 'quantity' fully described including merge and limit details. The tool description adds no new parameter-specific meaning beyond what the schema already provides, so the baseline of 3 is maintained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add an item') and the resource ('the household's shopping list'), and elaborates on key behaviors like auto-categorization and quantity merging. This distinguishes it from sibling tools like batch_add_shopping_list_items and buy_shopping_list_item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by stating it adds an item to the household shopping list, implying it is for single-item additions. It does not explicitly mention alternatives like batch_add_shopping_list_items for multiple items, but the purpose is sufficiently clear. No exclusions are given, so a 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_taskAInspect
Assign or unassign a task to a household member.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The task's ID, as returned by create_task or list_tasks. | |
| assignedToMemberId | No | The member ID of the household member. Get this from list_house_members. Pass null or empty string to unassign. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag this as non-readOnly and non-destructive. The description adds no behavioral detail beyond that, such as whether existing assignments are overwritten, whether unassigning removes the member from the task, or any permission requirements. The unassign behavior is only documented in the schema, not the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that captures the core action. No filler or redundant phrasing; every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutating tool with a full schema and an output schema present, the description covers the essential purpose. The schema fills in parameter details and the unassign edge case. Some context about side effects is missing, but the tool is simple enough that the current description is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters having clear descriptions. The tool description does not add extra parameter meaning beyond the schema, but since the schema is comprehensive, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb pair 'Assign or unassign' and identifies the resource ('a task') and target ('a household member'). It clearly distinguishes this from sibling tools like create_task, update_task, or complete_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for changing task assignment but does not explicitly state when to prefer this over update_task or when not to use it. The schema hints at prerequisites by referencing list_house_members, but no explicit alternatives 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.
batch_add_shopping_list_itemsAInspect
Add multiple items to the shopping list at once
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | List of items to add to the shopping list in a single call. Up to 25 items per call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false) and non-destructive behavior (destructiveHint=false). The description adds no behavioral context beyond those annotations—it simply says 'add.' The schema documents deduplication and merging behavior, but the description itself does not contribute additional transparency, such as side effects on existing list items or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is clear, front-loaded with the verb, and contains zero filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema (per context) and the highly detailed input schema, the description need not explain return values. The tool is simple (one parameter) and the description, while minimal, is sufficient for performing a batch add. The only gap is explicit usage guidance relative to siblings, but overall it is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with detailed descriptions for the 'items' array and each nested field (name max, quantity range, deduplication merge rules). The description adds no parameter-level semantics, but the schema carries the full burden. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add multiple items to the shopping list at once' clearly states the action (Add), the resource (shopping list), and the scope (multiple items in a single call). It explicitly distinguishes this tool from the singular sibling add_shopping_list_item by emphasizing 'multiple' and 'at once.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'at once' implies batch usage for multiple items, and the singular sibling add_shopping_list_item is evident from context. However, the description does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buy_shopping_list_itemAInspect
Buy item (decrements quantity; removes at zero)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the shopping list item to buy, as returned by add_shopping_list_item, batch_add_shopping_list_items, or list_shopping_list_items. | |
| quantityToBuy | No | How many units to mark as bought. Defaults to 1. Minimum: 1, maximum 9999. If this meets or exceeds the item's remaining quantity, the item is fully bought and removed from the active list; otherwise its quantity is reduced by this amount. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly discloses the key behavioral traits: decrementing quantity and removing the item when quantity reaches zero. This goes beyond the annotations, which only indicate readOnlyHint=false and destructiveHint=false. The description adds critical side-effect information without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence effectively communicates the action and primary side effect. No fluff, front-loaded with the verb 'Buy' and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and fully specified: purpose is clear, behavior is disclosed, parameters are exhaustively documented in the schema, and an output schema exists so return values need no description. No critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters fully described including examples and edge-case behavior for quantityToBuy. The tool description itself adds no parameter-specific meaning, so the baseline of 3 is appropriate when the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Buy item (decrements quantity; removes at zero)' clearly identifying the action, resource, and side effects. It distinguishes from sibling tools like remove_shopping_list_item and update_shopping_list_item by specifying the decrement-and-remove behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (buying an item) but does not explicitly mention alternatives or exclusions. However, the clear action verb and schema details provide sufficient context for most use cases, and the tool name itself clarifies its purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_taskAInspect
Marks a task as completed and records the completion for the household's momentum stats. Fails with a conflict if the task is already completed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The task's ID, as returned by create_task or list_tasks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the mutating nature is known. The description adds context beyond annotations: it records completion for momentum stats and fails with a conflict on already-completed tasks, which is genuinely useful behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and every sentence earns its place. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (a single ID parameter) and the presence of an output schema, the description covers the core action, side effects (momentum stats), and an important error condition (conflict on already-completed). This is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the 'id' parameter fully (coverage 100%). The description adds no additional parameter details, but the schema's description ('The task's ID, as returned by create_task or list_tasks') is sufficient, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('marks') and resource ('task'), with additional detail ('records the completion for the household's momentum stats' and 'fails with a conflict if already completed') that distinguishes it from sibling tools like create_task or uncomplete_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for completing tasks, but offers no explicit guidance on when to use it over alternatives or when not to use it. The conflict warning hints at a precondition but does not elaborate on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_applianceAInspect
Create an appliance record for the household, tracking purchase date, warranty expiry, and optional references to previously created warranty/insurance documents.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the appliance, e.g. what it is or where it's located. | |
| brand | No | Manufacturer or brand name. | |
| model | No | Model name or number, as printed on the appliance or its manual. | |
| notes | No | Freeform notes about the appliance. | |
| purchaseDate | No | Date the appliance was purchased, in YYYY-MM-DD format. | |
| serialNumber | No | Manufacturer serial number, used when contacting support or filing a warranty claim. | |
| warrantyDocumentId | No | ID of a previously created document containing the warranty paperwork. | |
| warrantyExpiryDate | No | Date the manufacturer warranty expires, in YYYY-MM-DD format. Must not be before purchaseDate. | |
| insuranceDocumentId | No | ID of a previously created document containing the insurance policy. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, non-destructive operation. The description adds that warranty/insurance document references must be to previously created documents, a meaningful dependency beyond the annotations. It does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence containing only essential information. It is concise, with no redundant or irrelevant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema and presence of an output schema, the description covers the core purpose and the key dependency on previously created documents. It could mention explicit alternatives or edge-case constraints, but those are already captured in the schema and annotations, making it adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents each parameter. The description only restates the purpose of a few fields (purchase date, warranty expiry, document references) without adding new syntax or constraints beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create' and the resource 'appliance record', and specifies the key data tracked (purchase date, warranty expiry) and optional document references. This distinguishes it from other create_* sibling tools by focusing on the appliance domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (adding a new appliance with purchase/warranty details) but does not explicitly mention alternatives like update_appliance. It provides clear context without exclusions or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_calendar_eventAInspect
Creates a single, one-off calendar event on the household calendar. For a repeating schedule use create_recurring_calendar_event instead.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Freeform notes attached to the event. Up to 5000 characters. | |
| title | Yes | Event title/summary shown in calendar views. Required, up to 200 characters. | |
| isAllDay | Yes | True for an all-day event with no specific start/end time; false for a timed event. | |
| location | No | Location. Set $type to 'Address' for physical (with line1-3, postalCode, countryCode) or 'OnlineLocation' for virtual (with url, notes). | |
| timezone | No | IANA timezone id (e.g. 'Europe/London') describing the wall-clock zone of startDateTime/endDateTime; null = UTC. | |
| description | No | Longer free-text description of the event. Up to 2000 characters. | |
| endDateTime | No | ISO 8601 date-time in UTC (Z-suffix). Must not be before startDateTime. | |
| startDateTime | Yes | ISO 8601 date-time in UTC (Z-suffix). The wall clock is interpreted against the supplied timezone if any. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a key behavioral detail beyond the annotations: the event is 'single, one-off' and belongs to the 'household calendar.' The annotations already indicate this is a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false), so the description enriches rather than repeats that context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence states the action and target, and the second provides a direct pointer to the alternative tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema (100% param coverage) and output schema, the description only needs to convey the intent and scope, which it does. It clearly differentiates from the recurring variant and names the household calendar as the destination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for all 8 parameters, including formats, constraints, and examples. The description adds no parameter-specific information, but the schema already does the heavy lifting, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Creates') and resource ('calendar event'), and specifies 'single, one-off' to distinguish from recurring events. It explicitly references the sibling tool create_recurring_calendar_event, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly directs users to create_recurring_calendar_event for repeating schedules, providing clear when-to-use guidance. It implies use this tool for one-off events, which is sufficient differentiation from the only closely related sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_contactAInspect
Create a contact in the household's address book. Only firstName is required; all other details (address, date of birth, notes, a flag to prepare a birthday present) are optional and can be filled in later with update_contact.
| Name | Required | Description | Default |
|---|---|---|---|
| No | The contact's email address. | ||
| notes | No | Free-text notes about the contact. | |
| phone | No | The contact's phone number, in any format. | |
| address | No | The contact's postal address. | |
| lastName | No | The contact's last (family) name. | |
| firstName | Yes | The contact's first name. The only required field. | |
| dateOfBirth | No | YYYY-MM-DD format | |
| displayName | No | An alternate name to show for the contact instead of first/last, e.g. a nickname, company name, or role. | |
| prepareBirthdayPresent | No | Whether to prepare a birthday present for this contact |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) already establish that this is a write operation. The description adds the useful nuance that only firstName is required and other details can be deferred, but it doesn't mention potential side effects like duplicate creation, validation constraints, or how the household is selected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the primary purpose, the second clarifies required vs optional fields and mentions the update path. No redundant information, perfectly front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, nested objects, and an output schema, the description provides sufficient context: it clarifies the creation action, the minimal required field, and the ability to update later. The rich schema and output schema cover details like property formats and return values. A minor gap is not explaining which household is targeted, but that's likely implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive property definitions, so baseline is 3. The description adds value beyond the schema's `required` array by stating that all other fields are optional and can be filled later, which clarifies the intended workflow and reduces the agent's uncertainty about which parameters to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a contact in the household's address book' – a specific verb and resource. It distinguishes itself from sibling tools like update_contact, delete_contact, and list_contacts by focusing on the creation action and noting that optional fields can be filled later with update_contact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names update_contact as the alternative for filling in optional details later, providing clear context for when to use this tool. However, it lacks explicit 'when not to use' conditions, such as if a contact already exists and should be updated instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_documentAInspect
Create a document (passport, insurance, certificate, warranty, license, other)
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | The cost associated with the document, e.g. a renewal or issuance fee. | |
| notes | No | Free-text notes about the document. | |
| title | No | A custom title for the document. If omitted, one is derived from the document type and number, e.g. 'Passport - 512345678'. | |
| documentType | Yes | The kind of document being stored. | |
| documentNumber | No | The document's reference or serial number, e.g. a passport number or insurance policy number. | |
| issuingAuthority | No | The organization or authority that issued the document. | |
| renewalCronExpression | No | Reserved for a future renewal-reminder schedule. Currently accepted but not persisted or acted on by document creation — has no effect yet. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false) and non-destructive behavior (destructiveHint=false). The description adds no further behavioral context, such as persistence guarantees, required permissions, or the notable fact that renewalCronExpression is currently ignored (documented only in the schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the action and scope. It contains no filler or redundant information, making it highly efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema, output schema, and annotations, the description adequately supports tool selection. It does not explain all side effects, but the schema covers parameter semantics and the output schema likely defines return values, making the description sufficient for a well-annotated create tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides detailed descriptions for all 7 parameters, including the nested fee object and the ineffective renewalCronExpression, giving 100% coverage. The description only echoes the document type enum, adding no semantic value beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Create' and identifies the resource as 'document', then lists valid document types (passport, insurance, certificate, warranty, license, other). This clearly distinguishes it from sibling tools that create other entities (appliances, contacts, tasks) and from document-related tools like update_document or delete_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the verb and document type enumeration, but provides no explicit guidance on when to use this tool versus alternatives. It does not mention scenarios like updating existing documents or listing documents, leaving the agent to infer the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_meal_planAInspect
Plan a meal for a specific date and meal type. Provide recipeId to link an existing recipe (from list_recipes) OR name for a custom meal; when recipeId is given any name is ignored and stored as null.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date of the planned meal (format: YYYY-MM-DD). Must be from today up to four weeks ahead. | |
| name | No | Custom meal name when no recipe is linked | |
| notes | No | Optional free-text notes about the planned meal | |
| mealType | Yes | Which meal slot of the day this entry occupies | |
| recipeId | No | ID of an existing recipe (from list_recipes or list_global_recipes) | |
| servings | No | Number of servings for the planned meal. Between 1 and 100 | |
| recipeSource | No | Set 'global' when recipeId refers to a Discover/global recipe (from list_global_recipes); defaults to 'household' |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that when recipeId is provided, any name is ignored and stored as null, a non-obvious behavioral trait not fully captured in the schema. Annotations already indicate a write operation, so no contradiction, but the description leaves unspecified whether creating a meal plan overwrites an existing entry for the same date/meal type.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, followed by essential parameter logic. No filler or redundant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the schema covers all parameters, the description provides the core operational logic (date, meal type, recipe/name selection) sufficiently. However, it doesn't address conflict behavior with existing meal plans, which would be useful for a create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All seven parameters have schema descriptions (100% coverage), and the description adds precedence semantics between recipeId and name that the schema does not fully explain. It also references list_recipes, providing helpful sourcing context for the recipeId parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Plan' with a clear resource 'a meal for a specific date and meal type,' distinguishing it from sibling tools like update_meal_plan and delete_meal_plan. It also explains the two modes (recipeId or custom name), making its function unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the tool's purpose and provides guidance on choosing between recipeId and name, but does not explicitly mention alternatives like update_meal_plan for modifying existing entries. The context is clear enough that an agent would know when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_petBInspect
Create a pet. Supports microchip, vet contact, and insurance refs.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The pet's name. | |
| notes | No | Freeform notes about the pet, e.g. dietary needs or medical history. | |
| dateOfBirth | No | The pet's date of birth, in YYYY-MM-DD format. | |
| vetContactId | No | ID of a previously created contact for the pet's vet. | |
| microchipNumber | No | Microchip identification number, used to reunite a lost pet with its household. | |
| insuranceDocumentId | No | ID of a previously created document containing the pet's insurance policy. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral disclosure beyond what annotations already indicate. It does not mentioned side effects, required permissions, or what happens after creation. Since annotations already classify it as non-read-only and non-destructive, the description contributes nothing extra in terms of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the main purpose. Every word earns its place; no filler or redundancy. It is concise and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has six parameters, one required, and an output schema exists. The description gives the core purpose and supported features, while the schema fully documents parameter formats and the output schema covers return values. No critical context seems missing for a straightforward create operation, though it could mention prerequisites like needing pre-existing contact/document IDs, but the schema already does this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description names microchip, vet contact, and insurance refs, which maps to microchipNumber, vetContactId, and insuranceDocumentId, but does not add new meaning beyond the schema's detailed per-parameter descriptions. It provides only a high-level hint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a pet' with a specific verb and resource. It adds scope by mentioning microchip, vet contact, and insurance refs, which differentiates it from other create_* siblings like create_contact or create_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or reference update_pet/delete_pet as alternatives for managing existing pets. Usage is only implied by the verb 'Create'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_recipeAInspect
Create a new recipe in the household's recipe collection, with optional ingredients, source URL, instructions and serving size. Link it to a date with create_meal_plan, or browse it later with list_recipes.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional source URL the recipe was found at (e.g. a link to a blog or recipe site) | |
| name | Yes | Recipe name/title | |
| servings | No | Number of servings the recipe yields. Minimum: 1 | |
| ingredients | No | Optional list of ingredients required for the recipe | |
| instructions | No | Optional free-text cooking instructions/method |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate this is a non-destructive write operation (readOnlyHint=false, destructiveHint=false). The description adds the 'household's recipe collection' scope, which is useful context, but it does not disclose other behavioral traits such as name uniqueness requirements, potential errors, or permission needs. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences. The first sentence directly states the action and optional parameters; the second gives workflow context by naming related tools. There is no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, full schema coverage, and the presence of an output schema, the description is sufficient. It clearly explains what the tool does and how it relates to meal planning and recipe browsing, but it could add a note about duplicate names or other edge-case behaviors for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the description doesn't need to explain the parameters. It merely lists the optional fields (ingredients, source URL, instructions, serving size), which adds no new meaning beyond what's already in the schema property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb ('Create'), the resource ('a new recipe'), and the scope ('household's recipe collection'). It also distinguishes the tool from siblings by mentioning create_meal_plan and list_recipes, which shows how it fits into the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context that after creating, you can link the recipe with create_meal_plan or browse with list_recipes, but it does not explicitly state when to use this tool versus alternatives like update_recipe or delete_recipe. There is no clear when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_recurring_calendar_eventAInspect
Create a recurring calendar event that automatically generates event instances on a schedule.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Freeform notes applied to every generated instance. Up to 5000 characters. | |
| title | Yes | Event title/summary applied to every generated instance. Required, up to 200 characters. | |
| endDate | No | Last date on which instances may occur, YYYY-MM-DD format. Omit for no end date (bounded only by maxOccurrences, if set). | |
| duration | No | Length of each instance, in ISO 8601 duration format. | |
| isAllDay | No | True if generated instances are all-day events with no specific start/end time; false for timed instances. | |
| location | No | Location applied to every generated instance. Set $type to 'Address' for physical (with line1-3, postalCode, countryCode) or 'OnlineLocation' for virtual (with url, notes). | |
| timezone | No | IANA timezone id (e.g. 'Europe/London') that startTime is in. Each generated occurrence's UTC instant respects this zone's DST. | |
| startDate | No | Anchor date the recurrence is calculated from, YYYY-MM-DD format. The first instance falls on this date (subject to startTime/timezone); later instances are startDate plus multiples of the cronExpression interval. | |
| startTime | No | Time of day each instance starts, in HH:mm:ss format (local to timezone). Omit for an event with no fixed time. | |
| description | No | Longer free-text description applied to every generated instance. Up to 2000 characters. | |
| cronExpression | Yes | Recurrence interval, NOT a cron expression despite the field name. Format is 'N Unit' where N is a positive integer and Unit is one of Day, Week, Month, Year (case-sensitive), e.g. '1 Day', '2 Week', '1 Month', '1 Year'. Instances recur every N of the given unit starting from startDate. | |
| maxOccurrences | No | Maximum number of instances to generate before recurrence stops. Omit for unlimited (bounded only by endDate, if set). |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=false and destructiveHint=false, which align with a create operation. The description adds meaningful behavioral context beyond annotations by stating that the tool 'automatically generates event instances on a schedule', disclosing the recurring side-effect. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly scoped sentence that front-loads the core action ('Create a recurring calendar event'). Every word earns its place, with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the high complexity (12 params, nested objects, output schema), the description covers the essential behavior for the agent to understand what the tool does. The schema and annotations fill in the remaining details. The only gap is the absence of explicit usage guidelines, but that is covered separately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameter details are fully documented in the input schema. The description itself does not add parameter-specific meaning, which is acceptable per the baseline for high schema coverage. The description contributes nothing beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pairing ('Create a recurring calendar event') and clearly distinguishes this from the sibling create_calendar_event by adding 'recurring' and 'automatically generates event instances on a schedule.' This 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for recurring events but does not explicitly state when to use this tool over create_calendar_event or other alternatives. It mentions 'recurring' and 'schedule', which implies a distinction, but there is no direct 'when to use / when not to use' guidance or reference to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_recurring_taskAInspect
Create a recurring task that automatically generates task instances on a schedule.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Freeform notes copied to every generated task instance. | |
| title | Yes | The recurring task's title. Used as the title for every generated task instance. | |
| endDate | No | The last date instances are generated through (inclusive), in YYYY-MM-DD format. Omit for an open-ended schedule. | |
| startDate | No | The date the schedule starts generating instances from, in YYYY-MM-DD format. Defaults to today if omitted. | |
| cronExpression | Yes | Recurrence frequency expression in the format 'N Unit', e.g. '2 Week' for every two weeks. Unit must be exactly Day, Week, Month, or Year (case-sensitive). Despite the parameter name, this is not cron syntax. | |
| maxOccurrences | No | Maximum number of task instances to generate in total. Generation stops once this many instances have been created, even if endDate has not been reached. | |
| preparationDays | No | Number of days before each occurrence's due date to set that instance's preparation date. Clamped to today if the computed date would be in the past. | |
| assigneeRotation | No | Ordered list of household member IDs to round-robin through, one per generated instance. Entries that are no longer valid house members are skipped and that instance is left unassigned. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description is not required to restate that. It does add the behavioral detail that instance generation is automatic, but does not disclose potential side effects like validation failures or duplicate schedule handling. This is a modest addition beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and contains no redundant words. It is concise and to the point, though it could arguably add a note about alternatives. It earns full marks for efficiency, but is slightly less informative than a two-sentence description with explicit guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema and the presence of an output schema, the description does not need to explain return values or parameter details. It covers the core action and its primary side effect (automatic instance generation). It is slightly minimal, but adequate for a create tool with well-documented parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with detailed descriptions for all 8 parameters, so the description does not need to add parameter-specific semantics. The high-level mention of 'schedule' ties to cronExpression, startDate, and endDate, but the schema already explains these thoroughly. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Create a recurring task') and clearly distinguishes it from single task creation by adding 'automatically generates task instances on a schedule.' This differentiates it from sibling tools like create_task and create_recurring_calendar_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (for tasks that repeat) by mentioning schedule-based generation. However, it does not explicitly name alternatives or state exclusions, such as 'for one-off tasks use create_task instead.' The context is clear but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_subscriptionAInspect
Create a subscription for the household to track a recurring cost, such as a streaming service or membership. Accepts an optional cron-based renewal schedule (must not repeat more frequently than once a day) and a fee amount.
| Name | Required | Description | Default |
|---|---|---|---|
| fee | No | The recurring charge for this subscription. | |
| name | Yes | Display name of the subscription, e.g. 'Netflix' or 'Gym membership'. | |
| notes | No | Free-text notes about the subscription. | |
| status | Yes | Lifecycle status of the subscription at creation time. | |
| remindMe | No | Whether to send renewal reminders for this subscription | |
| renewalCronExpression | No | Cron expression describing how often the subscription renews. Must not repeat more frequently than once a day. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write (readOnlyHint=false) and non-destructive (destructiveHint=false) operation. The description adds useful constraints beyond annotations, such as the cron schedule must not repeat more frequently than once a day and that a fee amount is accepted. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the purpose, and contains no redundant information. Every clause adds value, from the resource definition to the critical cron frequency constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage and presence of an output schema, the description provides enough context for the tool's core purpose and constraints. It could mention that name and status are required, but the schema handles that, so the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 6 parameters, so the schema already provides thorough semantics. The description mentions the fee amount and cron schedule but does not add new meaning beyond what the schema already specifies, hence the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create), the resource (subscription), and the scope (for the household to track a recurring cost), with concrete examples (streaming service or membership). This distinguishes it from other create_* tools like create_calendar_event or create_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (creating a recurring cost subscription) and hints at the optional cron schedule and fee. It does not explicitly mention alternatives or when not to use it, but the context is sufficient for most cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskAInspect
Creates a new household task. Only title is required; the task starts unassigned and uncompleted. Use assign_task, update_task, or complete_task to change it afterward.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Freeform notes about the task. Not for assignment info. | |
| title | Yes | The task's title, e.g. 'Take out the recycling'. Required; max 200 characters. | |
| dueDate | No | The date the task is due, in YYYY-MM-DD format. | |
| preparationDate | No | The date to start preparing for the task, in YYYY-MM-DD format. Must be on or before the due date if both are set. | |
| assignedToMemberId | No | The member ID of the household member. Get this from list_house_members. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=false and destructiveHint=false. The description adds valuable behavioral context by stating 'starts unassigned and uncompleted' and 'only title is required', which are not evident from annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, no redundant information. Every clause contributes meaning: the action, the minimal requirement, the default state, and the follow-up tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple create tool with 5 parameters (1 required) and an output schema, the description covers the essential usage and default behavior. No return value explanation is needed due to the output schema, and the follow-up tool references handle the task lifecycle adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are fully documented. The description adds semantic meaning by explaining the default assignment/completion state, which clarifies how omitting optional parameters behaves. This goes beyond the schema's field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Creates a new household task' with a specific verb and resource. It distinguishes from siblings like update_task and create_recurring_task by emphasizing the default state and subsequent modification tools. The intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names assign_task, update_task, and complete_task as follow-up tools, implying create_task is for new tasks only. It lacks an explicit exclusion of recurring tasks, which is a minor gap given create_recurring_task is a sibling, but the direction is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_vehicleAInspect
Create a vehicle record for the household to track its details, registration and VIN, insurance document, and upcoming MOT/tax/service due dates. All fields are optional.
| Name | Required | Description | Default |
|---|---|---|---|
| vin | No | Vehicle Identification Number: a 17-character alphanumeric code unique to the vehicle. | |
| make | No | Manufacturer of the vehicle, e.g. 'Toyota'. | |
| year | No | Model year of the vehicle. Must be between 1900 and 2100. | |
| model | No | Model name of the vehicle, e.g. 'Corolla'. | |
| notes | No | Free-text notes about the vehicle. | |
| colour | No | Colour of the vehicle. | |
| motDueDate | No | Date the next MOT (roadworthiness test) is due, in YYYY-MM-DD format. | |
| taxDueDate | No | Date the vehicle's road tax is next due, in YYYY-MM-DD format. | |
| registration | No | The vehicle's registration/licence plate as shown on the plate. Free-text; format varies by country. | |
| serviceDueDate | No | Date the vehicle's next scheduled service is due, in YYYY-MM-DD format. | |
| insuranceDocumentId | No | Document ID of insurance policy |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a write operation (readOnlyHint false) but not destructive. The description adds useful behavioral context beyond annotations by noting 'All fields are optional' and specifying the scope of data tracked. This is meaningful but does not go into side effects or prerequisites, which is acceptable given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no redundancy. The first sentence front-loads the action and resource, and the second adds a key constraint (all fields optional). Every word contributes to clarity, making it an ideal length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus the complete schema and output schema provide sufficient context for an agent to select and invoke the tool correctly. It lacks explicit guidance on prerequisites, such as whether the household must already exist or if the insurance document ID must reference an existing document, but given the richness of structured data, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all 11 parameters, so the description bears little burden for explaining parameters. It mentions categories like registration/VIN and due dates, but this does not add significant semantic value beyond the schema's own detailed descriptions. The optionality note is helpful but not parameter-specific.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Create a vehicle record for the household' with a specific verb and resource. It also lists what the record tracks (details, registration/VIN, insurance document, MOT/tax/service due dates), distinguishing it from sibling tools like update_vehicle, delete_vehicle, and list_vehicles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for adding a new vehicle to a household but does not explicitly state when to use this tool versus update_vehicle or other create tools. It lacks exclusions or explicit alternative guidance, though the context of 'create a vehicle record' makes the primary use case evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
defer_recommendationAInspect
Add Later: defer a House Review recommendation and create a 7-day task
| Name | Required | Description | Default |
|---|---|---|---|
| recommendationId | Yes | Id of a pending recommendation, taken from the id field of an item returned by get_house_review. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description reveals that the tool creates a 7-day task as part of deferring the recommendation. This adds meaningful behavioral context, though it does not specify what happens to the original recommendation (e.g., whether it remains pending).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the 'Add Later' label and communicates the action and its consequence without any wasted words. It is highly efficient and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description provides sufficient context about the action and resulting task. It does not need to explain return values since an output schema exists. A minor gap is the lack of clarification about the recommendation's state after deferral, but this is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% parameter coverage, including an example and a clear description of recommendationId as the id from get_house_review. The tool description adds no additional parameter semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Add Later' and clearly states 'defer a House Review recommendation and create a 7-day task'. The verb 'defer' and resource 'House Review recommendation' are specific and distinguish this from sibling tools like skip_recommendation and create_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through 'Add Later' but does not explicitly state when to use this tool versus alternatives, nor does it exclude scenarios like permanently skipping a recommendation. A clear comparison to skip_recommendation would strengthen this dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_applianceADestructiveInspect
Soft-delete an appliance; it is hidden from list_appliances but not permanently erased.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the appliance to delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, but the description adds valuable context by specifying it is a soft-delete and that the appliance is hidden from list_appliances without being permanently erased. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and its key consequence. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description adequately covers purpose, behavior, and expected side effects. It explains what happens (hidden from list, not erased) without needing to describe return values or complex edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers the only parameter 'id' with a clear description ('ID of the appliance to delete.') and example. Since schema_description_coverage is 100%, the description need not add parameter details, and it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('soft-delete') and resource ('appliance') and clearly distinguishes the operation from a permanent deletion by explaining that it is hidden from list_appliances but not permanently erased. This provides clear purpose and differentiates it from any other delete semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when a soft-delete is desired) but provides no explicit alternatives or exclusions. It mentions the effect on list_appliances, giving some context, but lacks direct guidance on when to choose this vs. update_appliance or other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_calendar_eventADestructiveInspect
Soft-deletes a single calendar event by id. Events imported from a calendar subscription cannot be deleted here; unsubscribe from the source calendar instead.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Id of the calendar event to delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag this as destructive (destructiveHint: true). The description adds value by clarifying that it is a soft delete (not permanent) and by disclosing the limitation on subscription events, which is not apparent from annotations alone. It does not detail other behavioral aspects, but the annotations cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words: the first states the action and scope, the second provides a critical caveat. Information is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema present, the description captures the essential nuance (soft-delete semantics and subscription exclusion). No critical information is missing for the agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers the single parameter 'id' with a description, achieving 100% schema coverage. The tool description adds no additional meaning beyond 'by id' and 'single', so the schema carries the semantic weight. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Soft-deletes a single calendar event by id.' This specifies the verb (soft-deletes), the resource (calendar event), and the scope (single by id), distinguishing it from sibling tools like delete_recurring_calendar_event and list_calendar_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit exclusion: events imported from a subscription cannot be deleted here, and directs users to unsubscribe from the source calendar instead. However, it does not explicitly mention when to use delete_recurring_calendar_event for recurring events, which is a relevant alternative given the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_contactADestructiveInspect
Soft-delete a contact by id; it is marked deleted and no longer appears in list_contacts, but the underlying record is retained rather than permanently erased.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id of the contact to delete, as returned by create_contact or list_contacts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, and the description adds crucial behavioral detail: the deletion is soft, the record is retained, and the contact disappears from list_contacts. This goes beyond the annotation's generic destructive flag and clarifies the actual side effect, which is useful for the agent. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and resource, then explains the soft-delete behavior and retention. Every clause adds value, with no filler or repetition. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, good annotations, and an output schema, the description covers the essential behavioral context: it is a soft delete, the record remains, and the contact is hidden from list_contacts. This is sufficient for an agent to select and invoke the tool correctly without needing further details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the id parameter is already described as 'The id of the contact to delete, as returned by create_contact or list_contacts.' The description simply says 'by id' without adding further parameter-specific meaning. With full schema coverage, the baseline of 3 is appropriate; the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Soft-delete a contact by id'. It specifies the resource (contact) and the mechanism (soft-delete), and distinguishes from hard deletion by noting the record is 'retained rather than permanently erased'. It also mentions the observable effect on list_contacts, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you need to remove a contact from list_contacts but preserve the underlying record. However, it does not explicitly name alternative tools (e.g., update_contact or permanent delete) or state when not to use it. The context is clear but lacks explicit exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_documentADestructiveInspect
Soft-delete a document by id and cascade soft-delete its attachments; none of them appear in listings afterward, but the records are retained rather than permanently erased.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id of the document to delete, as returned by create_document or list_documents. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint), the description discloses that deletion is soft, records are retained, attachments are also soft-deleted, and none appear in listings. This is substantial behavioral context not inferable from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence, front-loaded with the verb and object, and communicates the core behavior, cascade, retention, and listing impact without any filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema exists, annotations provided), the description covers all essential aspects: what happens to the document, attachments, listing visibility, and data retention. No significant gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the id parameter, including its origin ('as returned by create_document or list_documents'). The description's 'by id' adds no new parameter-level semantics, but with 100% schema coverage, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Soft-delete a document by id and cascade soft-delete its attachments,' which explicitly names the action, resource, and scope. It distinguishes from other delete_* tools by specifying soft-delete behavior and the cascade to attachments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, but the resource-specific scope is clear. It lacks guidance on exclusions or alternative tools (e.g., hard delete or undo), so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_meal_planADestructiveInspect
Remove a planned meal from the household's meal plan. This is a soft delete: the entry stops appearing in list_meal_plans and its date/meal-type slot becomes free again.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the meal plan entry to delete (from list_meal_plans) |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint: true, but the description adds crucial nuance by explicitly stating this is a soft delete. It discloses that the entry stops appearing in list_meal_plans and the slot becomes free again, which goes beyond the annotation and gives the agent accurate expectations about reversibility and side effects. There is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, directly states the action, and then explains the key behavioral consequence. It is front-loaded with the verb and resource, contains no redundant words, and every sentence adds value. This is an exemplary level of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the tool's behavior: what it removes, the soft-delete nature, the effect on list_meal_plans, and the freeing of the slot. Given the simple single-parameter schema and the presence of an output schema, no additional information about return values is necessary. The description is complete for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a complete description for the single parameter 'id' ('ID of the meal plan entry to delete (from list_meal_plans)'), with 100% coverage. The description does not add any additional parameter meaning beyond what the schema already specifies, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Remove a planned meal from the household's meal plan.' It clearly distinguishes this tool from delete tools for other entities (e.g., delete_recipe, delete_task) and from list/update meal plan tools. The effect is further clarified by referencing list_meal_plans and the date/meal-type slot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: when you want to remove a specific meal plan entry, freeing its date/meal-type slot. It also implies a soft-delete behavior that affects list_meal_plans. However, it does not explicitly mention alternatives or exclusions, such as using update_meal_plan for editing or list_meal_plans for viewing, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_petADestructiveInspect
Soft-delete a pet; it is hidden from list_pets but not permanently erased.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the pet to delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, but the description goes further by explaining that the deletion is reversible (not permanently erased) and specifically hides the pet from list_pets. This adds valuable behavioral detail without contradicting the annotation—it clarifies the nature of the destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence. It conveys the essential behavior with no fluff, front-loading 'Soft-delete' and then the key effects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one clearly documented parameter, a well-described effect, and an existing output schema, the description is fully sufficient for an agent to understand when and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the single 'id' parameter with a description and example. The tool description doesn't need to add parameter semantics, as the schema coverage is 100%. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it soft-deletes a pet and specifies the behavioral consequence (hidden from list_pets but not permanently erased). This distinguishes it from a permanent deletion tool and clearly identifies the operation and target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context that this is a soft-delete operation, implying it should be used when the goal is to remove a pet from active listing without permanent data loss. It doesn't explicitly compare to alternatives, but the clarity of the soft-delete behavior serves as adequate guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_recipeADestructiveInspect
Delete a recipe from the household's collection. This is a soft delete; any meal plan entries still linked to this recipe are automatically converted into custom entries that keep a snapshot of its name, ingredients and instructions, so they aren't left with a dangling recipe link.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the recipe to delete (from list_recipes) |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint: true), the description explains the soft-delete nature and the automatic conversion of linked meal plan entries into custom snapshots. This is valuable behavioral context that helps the agent understand consequences and is not contained in the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, opens with the primary purpose, and includes the most important behavioral caveat (soft delete and meal plan snapshot). No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single, well-documented parameter, and the description covers the key side effect (meal plan conversation). The output schema exists, so return values need no explanation. The description is complete for the tool's complexity and context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the 'id' parameter fully (including its source from list_recipes), so the description adds no additional semantic value. With 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Delete a recipe') and identifies the resource ('the household's collection'), clearly distinguishing it from sibling delete tools for other entities. The soft-delete detail further adds specificity and clarifies the tool's behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (to remove a recipe from the household's collection) and provides important context about the effect on meal plan entries. However, it does not explicitly mention alternatives or when not to use it, though the purpose is clear enough for a delete operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_recurring_calendar_eventADestructiveInspect
Delete a recurring calendar event and all its future instances.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Id of the recurring calendar event (template) to delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive behavior; the description adds the key nuance that all future instances are deleted, which is important for an agent to know before invoking. It does not describe past instances or permissions, but the additional scope context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, direct sentence with no redundant words, front-loading the action and critical scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete tool with an output schema and annotations, the description fully covers the action and its most important side effect (future instances), making it sufficient for an agent to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a clear description of the id parameter as the template's id, and the tool description reinforces the recurring-event context. With 100% schema coverage, the description adds no additional parameter-level detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Delete), the resource (recurring calendar event), and the scope (all future instances), distinguishing it from sibling tools like delete_calendar_event and delete_recurring_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for deleting the entire recurring series (template and future instances), but it does not explicitly name alternatives or state when not to use it, leaving usage guidance implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_recurring_taskADestructiveInspect
Delete a recurring task and all its uncompleted future instances.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The recurring task's ID, as returned by create_recurring_task or list_recurring_tasks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that deletion affects the recurring task and its uncompleted future instances, adding detail beyond the destructiveHint annotation. It does not contradict the annotations; readOnlyHint=false and destructiveHint=true are consistent with a delete operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and front-loaded, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter), the presence of a complete schema and output schema, and annotations indicating destructive behavior, the description sufficiently covers the operation's effect and scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the 'id' parameter with a clear description of its source (create_recurring_task or list_recurring_tasks). The tool description itself does not add parameter-specific information, so it receives the baseline score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Delete' with the resource 'a recurring task' and specifies the scope 'all its uncompleted future instances', clearly distinguishing it from sibling tools like delete_task and delete_recurring_calendar_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for deleting recurring tasks, but does not explicitly compare with alternatives such as delete_task or mention when not to use it. The usage is clear from context, but there are no explicit exclusions or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_subscriptionADestructiveInspect
Soft-delete a subscription
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the subscription to soft-delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'soft-delete', which goes beyond the annotations (readOnlyHint=false, destructiveHint=true) by clarifying the nature of the destructive action—data is not permanently removed but marked as deleted. This is a meaningful behavioral disclosure, though it could elaborate on reversibility or effects on related records. Given annotations already cover the safety profile, a 4 is justified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise phrase with zero wasted words. It is front-loaded and immediately understandable, and for a one-parameter tool this brevity is ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema present, clear annotations), the description plus schema provides enough context. It could mention idempotency or behavior when the subscription doesn't exist, but that is not strictly necessary for a basic delete operation. The completeness is sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the only parameter 'id', with description 'ID of the subscription to soft-delete.' The tool description does not add additional parameter semantics beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Soft-delete a subscription' uses a specific verb ('soft-delete') with a specific resource ('subscription'), clearly distinguishing it from other subscription tools like create_subscription or update_subscription, and even adds the 'soft' qualifier to differentiate from a hypothetical hard delete. It is unambiguous and immediately conveys the core action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It doesn't mention that it's for hiding subscriptions while retaining data, nor does it reference related tools like update_subscription or list_subscriptions. The description provides no context for selection, leaving the agent to infer usage from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_taskADestructiveInspect
Soft-deletes a task: it stops appearing in list_tasks but the record is retained rather than permanently removed. Fails if the task was already deleted.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The task's ID, as returned by create_task or list_tasks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite the destructiveHint annotation indicating a destructive operation, the description adds crucial nuance: the deletion is soft and reversible in the sense that the record is retained. It also discloses the failure behavior for already-deleted tasks. This goes well beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action 'Soft-deletes a task'. Every clause earns its place: the effect on list_tasks, the retention of the record, and the failure condition. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with output schema and annotations, the description fully covers behavioral semantics (soft-delete, list visibility, failure condition). It does not need to explain return values since an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full coverage with a clear description for the 'id' parameter referencing create_task or list_tasks. The tool description adds no additional parameter-level information, so it 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Soft-deletes a task', which is a specific verb+resource pairing. It clearly distinguishes from permanent deletion or other task operations by explaining the soft-delete semantics, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: when you want a task to stop appearing in list_tasks but still be retained. It also warns that the operation fails if the task is already deleted, which is a useful precondition. No explicit alternatives are mentioned, but no direct alternative exists among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_vehicleADestructiveInspect
Soft-delete a vehicle
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the vehicle to soft-delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the operation is a 'soft-delete', which adds context beyond the annotations (destructiveHint=true, readOnlyHint=false). This clarifies that the vehicle is not permanently removed but likely marked as inactive. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise phrase with no redundant information. It is front-loaded and effectively communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple one-parameter schema, an output schema, and annotations indicating destructive behavior. The description adequately covers the purpose and soft-delete nature. It does not explain potential side effects or reversibility beyond 'soft-delete', but given the low complexity, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for the single parameter 'id' with a description 'ID of the vehicle to soft-delete.' The tool description does not add additional parameter semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Soft-delete a vehicle' uses a specific verb and resource, clearly distinguishing it from other delete tools for different resources. The term 'soft-delete' adds nuance about the operation's nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for deleting a vehicle but provides no explicit guidance on when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. For a simple delete operation, this is adequate but not rich.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forget_memoryAInspect
Forget (soft-delete) a memory by id. Use when a memory is superseded or no longer relevant.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Id from a prior recall_memory result. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses 'soft-delete,' which adds clarity beyond the annotations (readOnlyHint=false, destructiveHint=false). However, the annotation already indicates it's not destructive, so the added value is marginal. No significant behavioral traits like recoverability or hard-delete alternatives are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and purpose without any filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with a rich schema and explicit annotations, the description is sufficiently complete. It covers purpose and usage, while the schema handles parameter details and the output schema (if any) would cover return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully covers the parameter with a description ('Id from a prior recall_memory result'), and the tool description only repeats 'by id' without adding new meaning. With 100% schema coverage, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Forget (soft-delete)') and the resource ('a memory') with a specific method ('by id'). This distinguishes it from sibling tools like 'update_memory' or 'recall_memory'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear usage condition: 'Use when a memory is superseded or no longer relevant.' However, it does not explicitly mention when not to use it or alternatives, so it stops short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_houseARead-onlyInspect
Return full details for the household the current session is scoped to: name, address, invite code, notes, join settings, members, subscription status, and resolved feature-flag states. No parameters — the household is resolved server-side from the authenticated session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful context by explaining the household is resolved server-side from the authenticated session and enumerates the resolved feature-flag states and other included fields, going beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the purpose and content, the second clarifies parameter behavior. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and annotations, the description fully specifies scope, content, and parameter behavior. It is complete for a read-only, zero-parameter getter with no ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the description explicitly states 'No parameters' and explains the household is resolved server-side, adding clarity beyond the empty schema. This meets the baseline for 0-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns full details for the household scoped to the current session, listing specific content areas. This distinguishes it from sibling tools like list_houses (listing multiple) and get_house_review (specific review aspect).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear this is for fetching the current session's household and explicitly notes no parameters are needed. It doesn't explicitly mention alternatives or when not to use it, but the context is evident given the scope and sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_house_reviewARead-onlyInspect
Return this week's pending House Review recommendations (data gaps like a missing appliance warranty date or vehicle MOT date), re-validated live so items already filled in, actioned, or superseded by an open task are dropped before they're returned. Pro-gated: fails if the household isn't on a Pro plan.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description discloses two important behaviors: live re-validation that filters stale items, and Pro-gating that causes failure for non-Pro households. This is valuable contextual information about how the tool behaves and when it might error.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core purpose. Every clause adds information: the recommendation type, the filtering logic, and the Pro requirement. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, read-only tool with an output schema, the description is complete. It covers what the tool returns, the live filtering behavior, and a key prerequisite (Pro plan). The output schema handles return structures, so no additional details are necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is trivially 100%. The description compensates by explaining the implicit temporal scope ('this week's') and the default behavior, so users understand why no parameters are needed. This aligns with the baseline of 4 for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Return this week's pending House Review recommendations.' It clearly distinguishes the tool from siblings like defer_recommendation or skip_recommendation by focusing on retrieval. The scope ('this week's') and the concrete examples (appliance warranty date, vehicle MOT date) make the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this tool is for retrieving pending House Review recommendations. It also notes that items are dropped if filled in, actioned, or superseded, which helps set expectations. However, it doesn't explicitly contrast with alternatives or state when not to use the tool, so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileARead-onlyInspect
Return the authenticated user's profile: name, email, AI-consent status, and timezone. Also records this call as user activity (bumps last-seen) as a side effect. No parameters — the user is resolved server-side from the authenticated session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a side effect ('bumps last-seen' activity) that contradicts the readOnlyHint=true annotation. This is a clear contradiction, as the annotation indicates a read-only operation while the description describes a write side effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise and information-dense, with no wasted words. It front-loads the core purpose and then adds necessary behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the return fields, the side effect, and the session-based user resolution, making it complete for a simple getter with an output schema. However, the contradiction with annotations creates potential for confusion, slightly reducing completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and an empty schema, the description adds essential meaning by explicitly stating 'No parameters' and explaining why, noting the user is resolved server-side. This fully clarifies the schema's emptiness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb 'Return' and resource 'authenticated user's profile', listing the exact fields returned (name, email, AI-consent status, timezone). This distinguishes it from sibling tools like get_house or get_weather_forecast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly implies usage when needing the current user's profile, and explains that no parameters are needed because the user is resolved server-side from the session. However, it does not explicitly mention alternatives or when not to use this tool, though the self-scoped nature makes this less critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_weather_forecastARead-onlyInspect
Get weather forecast for the household's location
| Name | Required | Description | Default |
|---|---|---|---|
| forecastDays | No | Number of forecast days to return, from 1 to 5. Defaults to 3 if omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and non-destructive behavior. The description adds the household location scoping but does not disclose other behaviors like data source, units, or fallback logic. Minimal additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded and contains no filler. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter, strong annotations, and an output schema present. The description covers the essential purpose, though it omits details about the forecast content, which the output schema likely handles.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter forecastDays is fully described in the schema with range and default. Schema coverage is 100%, so the description adds no extra parameter meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a clear resource 'weather forecast' and a scoping detail 'for the household's location'. It distinguishes itself from the many CRUD sibling tools and there is no competing weather tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when needing weather for the household's location, which is clear context. No alternatives are mentioned, but no other weather tools exist in the sibling list to exclude.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_appliancesARead-onlyInspect
List all appliances in the household
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive, and the schema description adds that it returns every non-deleted appliance in the caller's household, providing scoping and filtering behavior beyond the annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence that communicates the core action; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no parameters, the combined description and schema cover the scope ('all appliances in household'), exclusion of deleted items, and safety profile. The output schema handles return details, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the schema already states 'Takes no parameters'; the description adds no conflicting or additional parameter info, so baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('appliances') with a household scope, making its function clear. It distinguishes from sibling tools like create_appliance, delete_appliance, and other list_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description and schema make clear the tool is for listing appliances, but it does not explicitly mention when to use it over alternatives or any exclusions. The sibling tools make the use case obvious, so context is clear though not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_calendar_eventsARead-onlyInspect
List calendar events with optional date-range filters
| Name | Required | Description | Default |
|---|---|---|---|
| startDateTo | No | Inclusive upper bound of the date range, ISO 8601 date-time in UTC. An event matches if it starts on or before this instant. Omit for no upper bound. | |
| startDateFrom | No | Inclusive lower bound of the date range, ISO 8601 date-time in UTC. An event matches if it ends (or, when it has no end, starts) on or after this instant. Omit for no lower bound. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds meaningful behavioral context: filters are optional (so all events are listed without them) and the filtering is based on event start dates. This goes beyond the structured data, though it does not disclose details like pagination or ordering (notably absent from a tool with a potentially large result set).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the verb and resource, and wastes no words. It communicates the core functionality and the optional filtering capability succinctly. This is an example of effective minimalism.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with two optional, well-documented parameters and an output schema, this description is complete. The addition of an output schema means return values need not be described. Annotations provide the safety context. The description provides the essential scoping behavior, so the agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; both startDateFrom and startDateTo have detailed descriptions including ISO 8601 format and inclusive bounds. The description's phrase 'optional date-range filters' maps directly to these parameters but adds no additional semantics beyond what the schema already provides. Therefore the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('calendar events'), which identifies this as a read-only listing operation. It implicitly distinguishes itself from sibling mutating tools like create_calendar_event, delete_calendar_event, and update_calendar_event. The inclusion of 'optional date-range filters' further specifies the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the primary use case: listing calendar events, optionally within a date range. While it does not explicitly mention alternatives or exclusions, the context is clear and there are no competing list-calevents tools. The phrasing 'optional date-range filters' hints at when to use what parameters, providing some usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_contactsARead-onlyInspect
List all contacts in the household. Takes no parameters; soft-deleted contacts are excluded.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds valuable behavioral context that soft-deleted contacts are excluded, which goes beyond the annotations. This is useful behavioral transparency for a read-only list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. Every piece of information is meaningful and front-loaded. 'List all contacts in the household' immediately conveys the core function, and the note about soft-deleted contacts is concise and relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters, an output schema, and strong annotations, the description is fully complete. It states the resource, scope, and filtering behavior. The presence of an output schema means return values need not be described. No additional context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already fully describes it (100% coverage). The description redundantly states 'Takes no parameters,' but since there are no parameters to explain, the baseline of 4 applies. The description adds no further parameter semantics needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List all contacts in the household.' The verb 'list' and the resource 'contacts' are specific, and the scope ('in the household') distinguishes it from other list tools like list_house_members or list_appliances. The addition about soft-deleted contacts further clarifies its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies clear usage context: use this tool to retrieve all non-soft-deleted contacts for the household. It does not explicitly name alternatives or exclusions, but given the straightforward nature of the tool and the sibling list, the context is sufficiently clear. A score of 4 reflects clear context without explicit alternative mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_documentsARead-onlyInspect
List documents in the household, optionally filtered to a single document type. Soft-deleted documents are excluded.
| Name | Required | Description | Default |
|---|---|---|---|
| documentType | No | Optional filter to only return documents of this type. Omit to return documents of all types. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate a safe read operation (readOnlyHint=true). The description adds the behavioral detail that soft-deleted documents are excluded, which is not derivable from the annotations or schema. This transparency helps the agent understand the data scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the core action in the first sentence and an important exclusion note in the second. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a simple one-parameter schema, an output schema, and read-only annotations, the description covers the essential purpose, filter behavior, and exclusion of soft-deleted documents. No additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single optional parameter documentType with a full description and enum. The description's mention of the filter adds no new information beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' with the resource 'documents in the household', making the tool's purpose immediately clear. The optional filter to a single document type adds useful scope. While it doesn't explicitly name sibling alternatives, the resource distinction is obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: to list documents, use this tool. It does not provide explicit when-not-to-use guidance or mention alternative tools such as list_global_recipes for global recipes, but the context is clear given the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_global_recipesARead-onlyInspect
List the global/Discover recipe catalogue (curated recipes available to all households)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds context about the catalogue's scope and curation, but does not mention pagination, sorting, or return format. This is acceptable for a simple list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and resource immediately. The parenthetical adds valuable clarification without redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no parameters and an output schema, the description fully conveys the tool's purpose and scope. No additional behavioral details are necessary for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is effectively 100% since the schema is empty. No parameter documentation is needed, so the baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' with the resource 'global/Discover recipe catalogue', and the parenthetical clarifies it as curated recipes available to all households. This clearly distinguishes it from the sibling list_recipes tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly defines the scope (global/Discover, curated, all households), implying when to use it instead of household-specific list tools. However, it does not explicitly name alternatives or state when not to use this tool, so it lacks a direct comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_house_membersARead-onlyInspect
List household members with their userId, name, nickname, and role.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, establishing the safe read-only nature. The description adds the specific output fields but does not disclose additional behavioral traits such as scope (e.g., 'current household') or ordering. This adds minimal context beyond the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and the key output fields with no fluff. Every word carries meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only list tool with an output schema available, the description adequately explains the purpose and expected fields. The presence of an output schema presumably covers return type details, so no further description is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema coverage is 100%, so there are no parameter details to clarify. The description aligns with the schema by implying no inputs are needed. Baseline 4 applies for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' with the resource 'household members' and enumerates the fields returned (userId, name, nickname, role). This clearly distinguishes it from sibling tools like list_houses or list_contacts, which target different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The description states only the function, leaving the agent to infer from the name and context that this is the tool for retrieving the current household's members. There is no mention of exclusions or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_housesARead-onlyInspect
List the households the current user belongs to (e.g. to tell the user which home you are acting on). The active house is determined server-side from the authenticated session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive. The description adds useful context about the active house being determined server-side from the authenticated session, which clarifies how the tool behaves beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action and resource. The parenthetical example adds practical value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool, the presence of an output schema, and annotation coverage, the description is complete. It explains the core behavior and the server-side session context without unnecessary details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description does not need to explain parameter meanings. The baseline for zero-param tools is 4, and the description adequately covers the tool's purpose without param details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists households the current user belongs to, with a specific verb and resource. It differentiates from siblings like get_house and list_house_members by focusing on the user's household memberships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear usage context: to tell the user which home the assistant is acting on. It explains that the active house is server-side, 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.
list_meal_plansARead-onlyInspect
List meal plans in the household with an optional date range
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Inclusive date range end (format: YYYY-MM-DD). Omit for an open-ended end. | |
| from | No | Inclusive date range start (format: YYYY-MM-DD). Omit for an open-ended start. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the household scope and optional date-range filtering as behavioral context, but does not disclose return format, ordering, or edge cases. This is moderate value beyond annotations, matching the 'adds some value but not rich behavioral context' tier.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action, resource, scope, and optional filter in a compact form. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (read-only, two optional parameters, full schema descriptions, output schema provided, and safety annotations), this description is complete for selection and invocation. It specifies the key scoping (household) and filtering (date range) behaviors, which is sufficient for a filtered-list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'to' and 'from' parameters thoroughly described as inclusive date ranges with open-ended options. The description's 'optional date range' merely summarizes these without adding new parameter-level information, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' with the resource 'meal plans' and explicit scope 'in the household', clearly distinguishing it from sibling tools like create_meal_plan, delete_meal_plan, and update_meal_plan. The optional date range adds further specificity, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys the intended use case (listing meal plans in the household, optionally filtered by date) without explicitly naming alternatives or exclusions. The read-only nature and sibling context (e.g., no other meal plan list tool) imply appropriate usage, providing solid contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_petsARead-onlyInspect
List all pets in the household
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the household scoping constraint, which is useful context beyond the annotations. However, it does not describe return format or edge cases, though these are partially covered by the schema and output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, 'List all pets in the household', with no filler or redundant information. It is front-loaded and easily parsed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters, present annotations confirming read-only safety, and an existing output schema, the description is complete enough for an agent to select and invoke it correctly. It clearly states the scope and purpose without omitting critical details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema description fully explains that it takes no parameters and returns every non-deleted pet in the caller's household. With no parameters to document, a baseline score of 4 is appropriate, and the description adds no unnecessary detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the resource ('pets'), and the scope ('household'), which is specific and distinguishes it from sibling tools like create_pet or update_pet. It unambiguously communicates 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The implied usage is clear: use this tool to retrieve all pets in the household. While it does not explicitly mention alternatives or exclusions, the resource name 'pets' and the straightforward list operation provide adequate context, and no competing list-pets tool exists among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recipesARead-onlyInspect
List all recipes in the household
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds the household scope, which is useful context. It doesn't elaborate on additional behavior such as sorting or pagination, but given the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence: 'List all recipes in the household'. It is concise, front-loaded, and contains no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, read-only, with no parameters and an output schema present. The description sufficiently covers the purpose and scope, making it complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is complete by default. The baseline for 0 parameters is 4, and the description does not need to explain parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'list' and identifies the resource as 'recipes' with the scope 'household', clearly distinguishing it from the sibling tool 'list_global_recipes'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by specifying 'in the household', which scopes the tool's use to household recipes. However, it does not explicitly mention when to use alternatives like 'list_global_recipes', so it lacks explicit alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_shopping_list_itemsARead-onlyInspect
List all shopping list items in the household
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description itself adds minimal behavioral detail beyond the household scope; the active-item filter is only in the schema description. There is no contradiction, but the description does not significantly enrich 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no filler. It communicates the essential purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters, an output schema, and strong annotations, the description is complete. It states the action, scope, and the schema clarifies the return set. No further context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the schema description fully covers the tool's behavior (100% coverage). The description adds nothing about parameters because parameters don't exist. Baseline for 0 params is 4, so this score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List all shopping list items in the household'. It uses a specific verb ('list') and resource ('shopping list items'), and distinguishes itself from sibling tools like add/buy/remove/update by focusing on listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by specifying the scope ('in the household'), and the schema description adds that only active (not yet bought) items are returned. It does not explicitly name alternatives or state when not to use, but for a simple read-only list tool, the usage context is well implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subscriptionsARead-onlyInspect
List subscriptions with optional status filter
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Only return subscriptions with this status. Omit to return subscriptions of all statuses. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description only adds 'optional status filter', which is already implied by the schema. No additional behavioral traits like defaults, pagination, or scoping are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence (6 words) that front-loads the purpose and scope. No wasted words; ideal for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter, an output schema, and read-only annotations, the description is sufficient but not rich. It doesn't mention alternatives or additional context, but the simplicity and existing structured data make it largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage of the single optional 'status' parameter with a clear description and enum values. The description doesn't add any meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('subscriptions'), with an optional scope ('status filter'), making its purpose unambiguous and distinct from sibling tools like create/update/delete subscription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool over alternatives. It doesn't mention that this is the read operation among subscription CRUD tools or suggest cases where the status filter is useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksARead-onlyInspect
Lists tasks in the household with optional filters (assignee, due-date range, completion status) and cursor-based pagination. Excludes completed tasks by default; results are sorted by due date ascending, with tasks that have no due date listed first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of tasks to return per page. 1-100, default 50. | |
| cursor | No | Opaque pagination cursor from a previous list_tasks response's nextCursor. Omit to fetch the first page. | |
| dueDateOnOrAfter | No | Only include tasks with a due date on or after this date (YYYY-MM-DD). Tasks with no due date never match. | |
| includeCompleted | No | Whether to include completed tasks in the results. Default: false | |
| dueDateOnOrBefore | No | Only include tasks with a due date on or before this date (YYYY-MM-DD). Tasks with no due date never match. | |
| assignedToMemberId | No | Filter to tasks assigned to this household member ID. Omit to include tasks for all assignees. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral details beyond the readOnlyHint annotation: it excludes completed tasks by default, sorts by due date ascending with no-due-date tasks first, and uses cursor-based pagination. This gives the agent important expectations about results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the core purpose, and every phrase adds value: filters, pagination, default exclusion, and sort order. No redundant or vague wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the readOnly annotation, an output schema, and complete parameter schema, the description covers the essential behavioral aspects: filters, pagination, defaults, and sorting. It is sufficiently complete for a read-only list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter coverage with detailed descriptions for all six parameters. The description only summarizes the filter categories at a high level without adding new parameter-specific details, so it stays at the baseline for well-documented schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists household tasks, mentions optional filters (assignee, due-date range, completion status), and specifies pagination. This distinguishes it from sibling list tools like list_contacts or list_documents, which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (listing household tasks with filters) and notes default behavior (excludes completed tasks). However, it does not explicitly mention alternatives or when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_vehiclesARead-onlyInspect
List all vehicles in the household
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, which cover the safety profile. The description adds no additional behavioral context (e.g., return ordering, pagination, or side effects). It is consistent with the annotations but does not go beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and resource. There is no extraneous information or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with an output schema, the description is fully adequate. It clearly states what the tool does, and the output schema covers return value details. No further context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema is empty. Per the rule for 0 params, baseline is 4. The description's 'all vehicles' reinforces that no filtering is possible, which aligns with the schema, but it adds no extra parameter semantics beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all vehicles in the household' clearly states the action (list), the resource (vehicles), and the scope (household), which distinguishes it from other list tools (e.g., list_appliances, list_contacts). It is 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context (listing vehicles in the household) but provides no explicit when-to-use or when-not-to-use guidance, and does not mention alternatives or exclusions. For a simple read-only list tool, the usage is easily inferred, but the guidelines are not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recall_memoryAInspect
Recall long-term memories stored about the current household. Call this at the start of advisory or open-ended turns. Filter by type when only one author's notes are relevant.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional filter: 'system' for memories you (the agent) wrote, 'user' for memories the user stated. Omit to return both. | |
| limit | No | Max number of memories to return in this page. 1-100, default 20. | |
| cursor | No | Pagination cursor: pass back the nextCursor value from a prior recall_memory response to fetch the next page. Omit to start from the first page. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read operation ('Recall') but the annotations set readOnlyHint to false, suggesting possible side effects that are not disclosed. No additional behavioral details (e.g., pagination behavior, side effects on memory access) are described, leaving transparency gaps despite the annotation bar being lower.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the tool's core purpose, and each sentence adds value: action, then usage guidance. No wasteful words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and well-documented parameters, the description sufficiently covers purpose and usage timing. Minor gaps include unclear side effects, but overall it's reasonably complete for a retrieval tool with clear parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all three parameters with 100% coverage. The description adds contextual guidance for the 'type' filter by linking it to author's notes, which enhances meaning beyond the schema and helps correctly apply the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool recalls long-term memories for the current household, distinguishing it from memory-writing tools like store_memory and update_memory. The verb 'recall' and resource 'long-term memories' are specific and align with the tool's intended function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to call this at the start of advisory or open-ended turns, providing clear contextual timing. It also explains when to use the type filter, but does not mention alternatives or explicit exclusions for other turn types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_shopping_list_itemADestructiveInspect
Remove an item from the household's shopping list without marking it as bought. This soft-deletes the item so it no longer appears in list_shopping_list_items.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the shopping list item to remove, as returned by add_shopping_list_item, batch_add_shopping_list_items, or list_shopping_list_items. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds the key nuance that this is a soft-delete (not a permanent delete) and that the item will no longer appear in list_shopping_list_items. This goes beyond the annotations by specifying the nature of the deletion and its visibility impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action verb, and no redundant information. Every clause contributes meaning: the action, the nuance (not bought), the soft-delete nature, and the effect on list display.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (single parameter, output schema exists, annotations provide safety profile). The description explains the outcome well (item disappears from list) and the soft-delete nuance. It does not cover error cases or reversibility, but given the low complexity, this is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter description fully explains the id field, including its provenance (returned by add/batch_add/list). The description adds no additional parameter 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove an item') and identifies the resource ('the household's shopping list'). It explicitly contrasts with 'without marking it as bought', distinguishing it from buy_shopping_list_item and update_shopping_list_item. This is a specific verb+resource with scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without marking it as bought' implicitly indicates when to use this tool versus the buy alternative, and 'soft-deletes' implies it's for removal rather than completion. It doesn't explicitly name sibling tools or provide exclusions, but the context is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skip_recommendationAInspect
Skip: permanently suppress a House Review recommendation
| Name | Required | Description | Default |
|---|---|---|---|
| recommendationId | Yes | Id of a pending recommendation, taken from the id field of an item returned by get_house_review. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a mutation (readOnlyHint=false) but not destructive (destructiveHint=false). The description adds the important behavioral detail that the suppression is 'permanent', which implies irreversibility. This goes beyond the annotations and clarifies a key side effect, though it could still mention if there is any way to undo it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence that is front-loaded with the action word 'Skip'. Every word earns its place, and it is highly memorable and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, schema coverage 100%, output schema present, annotations available), the description is mostly complete. It captures the core behavior without needing to explain return values or nested objects. However, it could have mentioned the relationship to defer_recommendation or irreversibility, so it is not perfect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers 100% of the parameter (recommendationId) with a clear explanation of where the ID comes from (get_house_review). The tool description itself does not repeat or add any parameter details, so the baseline of 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'suppress' with the resource 'House Review recommendation' and adds 'permanently', which clearly states both the action and scope. This distinguishes it from the sibling 'defer_recommendation', which likely implies a temporary action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the word 'Skip' and the phrase 'permanently suppress', but there is no explicit instruction on when to use this tool versus alternatives like defer_recommendation. No exclusions or prerequisites are mentioned, leaving the agent to infer based on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
store_memoryAInspect
Store a long-term memory about the household. Use sparingly for durable preferences, routines, constraints, or insights worth recalling in a future conversation. Recall first to avoid duplicates.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Short kebab-case slug, e.g. 'preferred-cleaning-day'. Max 80 chars. | |
| type | Yes | Author of the memory. 'user' for things the user has stated; 'system' for stable insights you derived yourself. | |
| content | Yes | Free-text body. Max 8000 chars. | |
| description | Yes | Single-line summary used to decide relevance later. Max 200 chars. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate this is a non-read-only, non-destructive operation. The description adds useful behavioral context: the memory is 'long-term' and 'about the household,' and storing is discouraged for trivial or transient info. It also advises recalling first to avoid duplicates, which hints at idempotency considerations. It does not describe response behavior, but an output schema exists, so that is covered elsewhere. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose. It wastes no words and packs usage guidance, scope, and a pre-step into a compact form. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a relatively simple create tool with 4 parameters, full schema descriptions, and an output schema. The description adds context about when to use (sparingly, durable info) and the recall-first step. It doesn't explicitly explain return values or error handling, but the output schema covers that. It is complete enough for an agent to select and invoke correctly, though a small gap remains around duplicate behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds semantics beyond the schema by explaining what kind of content belongs in the memory (durable preferences, routines, constraints, insights) and that it is household-scoped. This helps disambiguate how to fill the 'content' and 'description' fields even though the schema already documents each parameter well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb+resource: 'Store a long-term memory about the household.' It clearly distinguishes from sibling tools like recall_memory, forget_memory, and update_memory by focusing on the creation of a new memory. It also enumerates the types of content to store (durable preferences, routines, constraints, insights), which sharpens the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use sparingly for durable preferences, routines, constraints, or insights worth recalling in a future conversation.' It also gives a concrete pre-condition: 'Recall first to avoid duplicates,' which implies checking existing memories before storing and indirectly points to the recall_memory sibling. This covers when to use and how to avoid misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uncomplete_taskAInspect
Reopens a completed task, clearing its completion timestamp and completed-by user. Fails with a conflict if the task is not currently completed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The task's ID, as returned by create_task or list_tasks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses specific behavioral traits beyond annotations: it modifies completion fields and fails with a conflict on non-completed tasks. Since annotations already indicate it is not read-only and not destructive, the description adds valuable context about side effects and error conditions, exceeding baseline expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the action, and every sentence adds value. It efficiently captures the purpose, mechanism, and failure condition without unnecessarily repeating schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (1 parameter), has an output schema, and annotations. The description covers the core behavior, the precondition (task must be completed), and the failure mode, making it fully complete for an agent to decide when and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the parameter (id) with a clear description ('The task's ID, as returned by create_task or list_tasks'), so the baseline is 3. The description does not add extra parameter details, but none are needed given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Reopens') and resource ('completed task'), and explains exactly what it does (clearing completion timestamp and completed-by user). It also distinguishes itself from sibling tools by focusing on the opposite of complete_task, with no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: it is used on tasks that are currently completed, and it even specifies a failure condition if the task is not completed. However, it does not explicitly mention when to use alternatives like update_task or complete_task, so it lacks explicit exclusions or alternative guidance, keeping it just below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_applianceAInspect
Update an appliance's details; omitted fields keep their current value. Rejects the update if the resulting warranty expiry date would fall before the purchase date.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the appliance to update. | |
| name | No | New name for the appliance. Omit to leave unchanged. | |
| brand | No | New manufacturer or brand name. Omit to leave unchanged. | |
| model | No | New model name or number. Omit to leave unchanged. | |
| notes | No | Freeform notes about the appliance. Omit to leave unchanged. | |
| purchaseDate | No | Date the appliance was purchased, in YYYY-MM-DD format. Omit or send null to leave unchanged, send an empty string to clear it. Must not be after warrantyExpiryDate. | |
| serialNumber | No | New manufacturer serial number. Omit to leave unchanged. | |
| warrantyDocumentId | No | ID of a previously created document containing the warranty paperwork. Omit to leave unchanged. | |
| warrantyExpiryDate | No | Date the manufacturer warranty expires, in YYYY-MM-DD format. Omit or send null to leave unchanged, send an empty string to clear it. Must not be before purchaseDate. | |
| insuranceDocumentId | No | ID of a previously created document containing the insurance policy. Omit to leave unchanged. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, but the description adds valuable behavioral context: 'omitted fields keep their current value' clarifies partial-update semantics, and 'Rejects the update if...' discloses a validation rule. These go beyond the annotations and help the agent predict side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the purpose and key behavioral rules without redundancy. Every clause earns its place, making it concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, output schema, sibling update tools), the description covers the most critical aspects: partial-update behavior and date validation. The rich input schema handles parameter details, and the output schema presumably describes return values, so the description is sufficiently complete for high-level usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is documented, but the description adds a unified semantic: omitted fields retain current values, which is not obvious from individual schema entries alone. It also highlights the cross-parameter validation constraint between purchaseDate and warrantyExpiryDate, adding contextual meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'update' with a clear resource 'appliance's details', distinguishing it from sibling tools like create_appliance and delete_appliance. It also conveys the core behavior of partial updates, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: this tool updates an existing appliance, as indicated by 'Update an appliance's details' and the required 'id' parameter. However, it does not explicitly contrast with create_appliance or delete_appliance, nor state prerequisites such as the appliance needing to exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_calendar_eventAInspect
Updates fields on an existing single calendar event; only the fields supplied are changed, all others keep their current value. Imported (subscription-sourced) events cannot be edited.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Id of the calendar event to update. | |
| notes | No | New freeform notes attached to the event. Omit to leave unchanged. Up to 5000 characters. | |
| title | No | New event title/summary. Omit to leave unchanged. Up to 200 characters. | |
| isAllDay | No | True for an all-day event with no specific start/end time; false for a timed event. Omit to leave unchanged. | |
| location | No | New location, replacing the existing one entirely. Omit to leave unchanged. Set $type to 'Address' for physical (with line1-3, postalCode, countryCode) or 'OnlineLocation' for virtual (with url, notes). | |
| timezone | No | IANA timezone id (e.g. 'Europe/London') describing the wall-clock zone of startDateTime/endDateTime; null = UTC. Omit to leave unchanged. | |
| description | No | New longer free-text description of the event. Omit to leave unchanged. Up to 2000 characters. | |
| endDateTime | No | New end date-time, ISO 8601 in UTC (Z-suffix). Must not be before startDateTime. Omit to leave unchanged. | |
| startDateTime | No | New start date-time, ISO 8601 in UTC (Z-suffix). Wall clock is interpreted against the supplied timezone if any. Omit to leave unchanged. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint false and destructiveHint false, so the tool is a non-destructive mutation. The description adds key behavioral facts beyond annotations: omitted fields retain current values (partial update) and subscription-sourced events are immutable. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, then adds crucial constraints. Every word earns its place with no redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters, nested objects, and an output schema, the description covers the essential context: purpose, partial-update behavior, and the key exception for imported events. It does not explain return format or error handling, but the output schema and sibling tool names mitigate those gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds the important cross-parameter rule 'only the fields supplied are changed, all others keep their current value', which informs how to use all parameters (omit to leave unchanged). This goes beyond schema-provided per-parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Updates' and identifies the resource as 'existing single calendar event', clearly distinguishing it from update_recurring_calendar_event. It also states partial-update semantics and the imported-event restriction, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that only supplied fields change, which guides when to use the tool for targeted edits. It also notes that imported events cannot be edited, providing a clear when-not. However, it does not explicitly mention using update_recurring_calendar_event for recurring events, though the sibling tool name implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_contactAInspect
Update a contact by id. Only the fields supplied are changed; omitted fields keep their current value (dateOfBirth is the exception: an empty string explicitly clears it).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id of the contact to update, as returned by create_contact or list_contacts. | |
| No | The contact's email address. Omit to leave unchanged. | ||
| notes | No | Free-text notes about the contact. Omit to leave unchanged. | |
| phone | No | The contact's phone number, in any format. Omit to leave unchanged. | |
| address | No | The contact's postal address. Omit to leave unchanged; when supplied, replaces the whole address. | |
| lastName | No | The contact's last (family) name. Omit to leave unchanged. | |
| firstName | No | The contact's first name. Omit to leave unchanged. | |
| dateOfBirth | No | YYYY-MM-DD format. Omit or pass null to leave unchanged; pass an empty string to clear it. | |
| displayName | No | An alternate name to show for the contact instead of first/last, e.g. a nickname, company name, or role. Omit to leave unchanged. | |
| prepareBirthdayPresent | No | Whether to prepare a birthday present for this contact. Omit to leave unchanged. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly discloses the partial-update semantics: only supplied fields are changed, omitted fields retain their value, and the special handling of dateOfBirth with an empty string. This adds significant behavioral context beyond the annotations, which only indicate it is not read-only and not destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that front-loads the purpose and then explains the key behavioral nuance in a parenthetical. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential update semantics for a 10-parameter tool with a nested address object. Since an output schema exists, return values are not required. It lacks details about error handling or permissions, but these are not necessary for tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for each parameter, so the baseline is 3. The description adds a concise general rule about omitted fields, but this is already reflected in each parameter's 'Omit to leave unchanged' note. No additional parameter-level meaning is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a contact by its id, using a specific verb and resource. It also conveys the partial-update behavior, distinguishing it from related tools like create_contact or delete_contact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for modifying an existing contact by id, but it does not explicitly distinguish when to use this tool versus creating a new contact or deleting one. No exclusions or alternative tool names are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_documentAInspect
Update a document. Omitted fields unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id of the document to update, as returned by create_document or list_documents. | |
| fee | No | The cost associated with the document, e.g. a renewal or issuance fee. Omit to leave unchanged; when supplied, replaces the whole fee. | |
| notes | No | Free-text notes about the document. Omit to leave unchanged. | |
| title | No | A custom title for the document. Omit to leave unchanged. | |
| documentType | No | The kind of document being stored. Omit to leave unchanged. | |
| documentNumber | No | The document's reference or serial number, e.g. a passport number or insurance policy number. Omit to leave unchanged. | |
| issuingAuthority | No | The organization or authority that issued the document. Omit to leave unchanged. | |
| renewalCronExpression | No | Reserved for a future renewal-reminder schedule. Currently accepted but not persisted or acted on by document updates — has no effect yet. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only and not destructive, but are minimal. The description adds the key behavior that omitted fields remain unchanged, which is useful. However, it does not disclose other traits like behavior on invalid id, return value details, or side effects beyond the partial update.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. Each sentence carries essential meaning: the action and the partial-update behavior. Perfectly concise for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a rich schema with 8 parameters, nested objects, and an output schema, so the description need not explain return values or parameter details. The description provides the critical partial-update behavior, but could optionally mention the renewalCronExpression caveat (though that is already in the schema). Overall it is complete enough given the supporting structures.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description only restates the 'omit to leave unchanged' concept already present in the schema, adding no new parameter-level detail but also not needing to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update a document' with a specific verb and resource. It distinguishes from sibling update tools by naming the document resource, though it does not explicitly contrast with alternatives like create_document or delete_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Omitted fields unchanged' implies a partial update usage pattern, but the description does not explicitly state when to use this tool versus alternatives or provide exclusions. The usage is inferred from the update semantics rather than explicitly prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_meal_planAInspect
Update a meal plan entry. Any field left out keeps its current value. Provide recipeId to link a recipe (clears any custom name) or name to make it a custom meal (clears the recipe link); recipeId takes precedence when both are given.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the meal plan entry to update (from list_meal_plans) | |
| date | No | Date of the planned meal (format: YYYY-MM-DD). Must be from today up to four weeks ahead. Omit to leave unchanged. | |
| name | No | Custom meal name when no recipe is linked | |
| notes | No | Optional free-text notes about the planned meal. Omit to leave unchanged. | |
| mealType | No | Which meal slot of the day this entry occupies. Omit to leave unchanged. | |
| recipeId | No | ID of an existing recipe (from list_recipes or list_global_recipes) | |
| servings | No | Number of servings for the planned meal. Between 1 and 100. Omit to leave unchanged. | |
| recipeSource | No | Set 'global' when recipeId refers to a Discover/global recipe (from list_global_recipes); defaults to 'household' |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals significant non-obvious behaviors: omitted fields retain their current values, recipeId and name mutually clear each other, and recipeId takes precedence when both are given. These traits go beyond the annotations (readOnlyHint=false, destructiveHint=false) and are essential for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary action, then covering the most important conditional behaviors. Every clause earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 8-parameter schema with detailed property descriptions and the presence of an output schema, the description supplies the essential interaction logic and partial-update rule. It does not restate individual parameters, which is appropriate, and the overall context is sufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema documents each parameter with 100% coverage, the description adds critical cross-parameter semantics: the recipeId/name clearing behavior and precedence rule, plus the general 'keep current value' rule across all fields. This adds meaning not evident from individual property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Update a meal plan entry,' which is a specific verb+resource statement, clearly distinguishing it from sibling tools like create_meal_plan and delete_meal_plan. It further clarifies the partial-update nature, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly name when to use this tool versus alternatives, but the verb 'update' combined with the sibling context (create/delete/list meal plans) makes the intended use clear for modifying an existing entry. The schema requirement for an id from list_meal_plans reinforces this context without formal exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_memoryAInspect
Update an existing memory's name, description, or content. Type is immutable; to reclassify, forget and store again.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Id from a prior recall_memory result. | |
| name | No | Replacement kebab-case slug. Omit to leave unchanged. | |
| content | No | Replacement body. Omit to leave unchanged. | |
| description | No | Replacement single-line summary. Omit to leave unchanged. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already indicating readOnlyHint=false and destructiveHint=false, the description adds the critical constraint that 'Type is immutable' and the workaround of forgetting and storing again. This is valuable behavioral context beyond the annotations, though it doesn't cover permissions or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence front-loads the action and scope; the second provides a crucial exception and alternative. Perfectly concise and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the purpose, the key constraint, and the workflow alternative. The schema and output schema handle parameter and return details, so the description is complete for an update tool of this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters with 100% description coverage, so the baseline is 3. The description adds meaning by explaining why there is no type parameter (immutability) and by summarizing the updatable fields (name, description, or content), which aligns with the schema and adds a note about the immutable type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Update an existing memory's name, description, or content.' It distinguishes from sibling tools like store_memory (create new) and forget_memory (delete) by focusing on updating an existing memory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly provides the alternative for reclassification: 'Type is immutable; to reclassify, forget and store again.' This tells the agent when not to use this tool and what to use instead, making the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_petAInspect
Update a pet. Omitted fields unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the pet to update. | |
| name | No | New name for the pet. Omit to leave unchanged. | |
| notes | No | Freeform notes about the pet. Omit to leave unchanged. | |
| dateOfBirth | No | The pet's date of birth, in YYYY-MM-DD format. Omit or send null to leave unchanged, send an empty string to clear it. | |
| vetContactId | No | ID of a previously created contact for the pet's vet. Omit to leave unchanged. | |
| microchipNumber | No | New microchip identification number. Omit to leave unchanged. | |
| insuranceDocumentId | No | ID of a previously created document containing the pet's insurance policy. Omit to leave unchanged. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the operation is not read-only and not destructive. The description adds valuable behavioral context by specifying 'Omitted fields unchanged', which communicates an idempotent partial-update semantic not visible from annotations alone. This goes beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with zero filler. The first sentence states the purpose, and the second conveys the critical behavioral rule. It is appropriately sized and front-loaded for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema (100% param coverage, examples) and the presence of an output schema, the description does not need to explain return values or parameter details. The only missing context is error behavior for nonexistent IDs and prerequisites, but the description covers the essential partial-update semantics. This is complete for a straightforward update tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and every parameter description already states 'Omit to leave unchanged' (or similar). The description's 'Omitted fields unchanged' is a useful summary but adds no new information beyond what the schema provides. The baseline of 3 applies because the schema fully documents parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description immediately states 'Update a pet' with a specific verb and resource, distinguishing it from create_pet, delete_pet, and list_pets. It adds the key detail 'Omitted fields unchanged', which clarifies the tool's partial-update behavior and further differentiates it from full-replacement update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for modifying an existing pet, but it does not explicitly state when to use it versus alternatives such as create_pet or delete_pet. There is no mention of prerequisites like the pet existing or exclusionary conditions, so guidance is minimal but not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_recipeAInspect
Update an existing recipe. Only the fields provided are changed; any field left out keeps its current value. Providing ingredients replaces the entire ingredient list rather than merging with the existing one.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the recipe to update (from list_recipes) | |
| url | No | Source URL the recipe was found at. Omit to leave unchanged. | |
| name | No | Recipe name/title. Omit to leave unchanged. | |
| servings | No | Number of servings the recipe yields. Minimum: 1. Omit to leave unchanged. | |
| ingredients | No | List of ingredients required for the recipe. Providing this replaces the entire existing ingredient list rather than merging with it. Omit to leave the ingredients unchanged. | |
| instructions | No | Free-text cooking instructions/method. Omit to leave unchanged. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=false and destructiveHint=false, so they already signal mutation. The description adds crucial behavioral details beyond that: partial updates (only provided fields change) and that providing ingredients replaces the entire list rather than merging. This is exactly the kind of transparency needed and goes well beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the verb and resource, and every sentence carries essential information. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full schema, annotations, and an output schema present, the description covers the only non-obvious behavioral nuance (ingredient replacement) and the partial-update semantics. There is no missing critical information for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter already has a description, including the 'omit to leave unchanged' semantics and the ingredient-replacement note. The description restates the partial-update behavior but does not add new parameter-level 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Update an existing recipe.' This is a specific verb+resource pair that distinguishes it from create_recipe and delete_recipe. It further clarifies the partial-update behavior, making it unmistakable what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need to modify an existing recipe, especially with partial updates. It does not explicitly name alternatives or exclusions, but the context is clear enough. There is no explicit statement of when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_recurring_calendar_eventAInspect
Update a recurring calendar event. Changes to title/description/notes patch existing instances. Changes to frequency/dates/time regenerate future instances.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Id of the recurring calendar event (template) to update. | |
| notes | No | New freeform notes. Omit to leave unchanged. Patching this alone updates existing generated instances in place rather than regenerating them. Up to 5000 characters. | |
| title | No | New event title/summary. Omit to leave unchanged. Patching this alone updates existing generated instances in place rather than regenerating them. Up to 200 characters. | |
| endDate | No | PATCH-style date field: omit or send null to leave the stored end date unchanged, send an empty string to clear it (recurrence becomes unbounded by date), or send 'YYYY-MM-DD' to set a new last occurrence date. Changing this deletes and regenerates future instances. | |
| duration | No | New length of each instance, in ISO 8601 duration format. Omit to leave unchanged. Changing this deletes and regenerates future instances. | |
| isAllDay | No | True if generated instances are all-day events; false for timed instances. Omit to leave unchanged. Changing this deletes and regenerates future instances. | |
| location | No | New location, replacing the existing one entirely. Omit to leave unchanged. Patching this alone updates existing generated instances in place rather than regenerating them. Set $type to 'Address' for physical (with line1-3, postalCode, countryCode) or 'OnlineLocation' for virtual (with url, notes). | |
| timezone | No | IANA timezone id (e.g. 'Europe/London') that startTime is in. Omit to leave unchanged; null resets to UTC. Changing this regenerates instances. | |
| startDate | No | PATCH-style date field: omit or send null to leave the stored start date unchanged, send an empty string to clear it, or send 'YYYY-MM-DD' to set a new anchor date. Changing this deletes and regenerates future instances. | |
| startTime | No | New time of day each instance starts, in HH:mm:ss format (local to timezone). Omit to leave unchanged. Changing this deletes and regenerates future instances. | |
| description | No | New longer free-text description. Omit to leave unchanged. Patching this alone updates existing generated instances in place rather than regenerating them. Up to 2000 characters. | |
| cronExpression | No | New recurrence interval, NOT a cron expression despite the field name. Format is 'N Unit' where N is a positive integer and Unit is one of Day, Week, Month, Year (case-sensitive), e.g. '1 Day', '2 Week', '1 Month', '1 Year'. Omit to leave unchanged. Changing this deletes and regenerates future instances. | |
| maxOccurrences | No | New maximum number of instances to generate. Omit to leave unchanged. Changing this deletes and regenerates future instances. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral context beyond the annotations: it explains that title/description/notes patch existing instances while frequency/dates/time regenerate future instances. This is crucial and not available from the readOnlyHint/destructiveHint annotations. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with a clear purpose, followed by a concise summary of the key behavioral distinction. No filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is short but effective for a complex tool with 13 parameters and an output schema. It highlights the most important behavioral distinction (patch vs regenerate) that applies across many parameters, while the schema covers parameter details. It lacks explicit guidance on when to use this tool versus update_calendar_event, preventing a higher score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description provides a general rule about parameter categories (patch vs regenerate) but does not add individual parameter semantics beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource: "Update a recurring calendar event." It clearly distinguishes the tool from siblings like update_calendar_event by specifying "recurring" and by describing the patch-vs-regenerate behavior unique to recurring events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are mentioned. The resource type "recurring" implies the intended use case, but the description does not contrast with update_calendar_event or exclude non-recurring events. The focus is on behavior, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_recurring_taskAInspect
Update a recurring task. Title/notes changes patch existing instances; frequency/date changes regenerate future instances.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The recurring task's ID, as returned by create_recurring_task or list_recurring_tasks. | |
| notes | No | New notes for the template, copied to existing uncompleted generated instances. Omit to leave unchanged. | |
| title | No | New title for the template. Existing uncompleted generated instances are updated to match; completed ones keep their original title. Omit to leave unchanged. | |
| endDate | No | New end date for the schedule (inclusive), in YYYY-MM-DD format. Omit to leave unchanged, or send an empty string for an open-ended schedule. Changing this regenerates future uncompleted instances. | |
| startDate | No | New start date for the schedule, in YYYY-MM-DD format. Omit to leave unchanged, or send an empty string to clear it. Changing this regenerates future uncompleted instances. | |
| cronExpression | No | New recurrence frequency expression in the format 'N Unit', e.g. '2 Week' for every two weeks. Unit must be exactly Day, Week, Month, or Year (case-sensitive). Despite the parameter name, this is not cron syntax. Changing this deletes uncompleted future instances and regenerates them from the new schedule. | |
| maxOccurrences | No | New maximum total number of instances to generate. Changing this regenerates future uncompleted instances. | |
| preparationDays | No | Number of days before each occurrence's due date to set that instance's preparation date. Only affects instances generated after this change; existing uncompleted instances keep their original preparation date unless a frequency, start date, end date, or max-occurrences change also triggers regeneration. | |
| assigneeRotation | No | New ordered list of household member IDs to round-robin through, replacing the existing rotation entirely. Applies to instances generated after this change; already-created instances are unaffected. Omit to leave the rotation unchanged. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool mutates (readOnlyHint=false) and is not destructive (destructiveHint=false). The description adds valuable context about patching vs. regenerating instances, which is not visible in the annotations alone. While it doesn't mention deletion explicitly, the schema covers that detail, and the description provides enough transparency for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loaded with the primary action, and avoids restating parameter details. Every word contributes meaningful behavioral context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a complex input schema (9 parameters, nuanced per-field effects) and an output schema. The description provides a solid high-level summary that orients the agent, while the schema handles detailed semantics. It could mention explicit return behavior or exclusions, but for selection purposes it is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 9 parameters with 100% coverage and detailed descriptions. The description's reference to title/notes vs. frequency/date groups parameters conceptually but does not add new semantic information beyond what the schema already states. Baseline 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource pair ('Update a recurring task') and immediately adds a critical scoping detail: title/notes changes patch existing instances while frequency/date changes regenerate future instances. This clearly differentiates it from sibling tools like update_task, create_recurring_task, and update_recurring_calendar_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is appropriate—when modifying a recurring task—and its second sentence explains the differential effects of field types. However, it does not explicitly name alternatives such as update_task for one-off tasks or update_recurring_calendar_event for calendar events, so it lacks explicit exclusions or when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_shopping_list_itemAInspect
Update a shopping list item's name, quantity, and/or category. Only the fields provided are changed; any field left out keeps its current value.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the shopping list item to update, as returned by add_shopping_list_item, batch_add_shopping_list_items, or list_shopping_list_items. | |
| name | No | New name for the item. Maximum 200 characters. Omit to leave the current name unchanged. | |
| category | No | New store-aisle category for the item, overriding any auto-assigned category. Omit to leave the current category unchanged. | |
| quantity | No | New quantity for the item, replacing (not adding to) the current quantity. Minimum 1, maximum 9999. Omit to leave the current quantity unchanged. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that only provided fields are changed and omitted fields retain their current values. This adds meaningful behavioral context beyond the annotations, which only indicate non-read-only and non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the purpose front-loaded and no redundant words. The partial update note is valuable and efficiently stated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with a rich schema and output schema. The description covers the essential update behavior and partial update semantics. It lacks explicit usage guidance against siblings, but given the straightforward nature and schema completeness, it is adequately complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description lists the updatable fields and reinforces partial update semantics, but the schema already documents each parameter's behavior in detail, so the description adds limited new parameter-specific value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a shopping list item's name, quantity, and/or category. It uses a specific verb and resource, distinguishing it from sibling tools like add, remove, or buy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (to modify existing items) but does not explicitly mention alternatives or exclusions. The partial update note gives context but no direct comparison to other shopping list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_subscriptionAInspect
Partially update an existing subscription; only the fields provided are changed, everything else is left as-is. For renewalCronExpression and notes, sending an empty string clears the stored value rather than leaving it unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the subscription to update. | |
| fee | No | The recurring charge for this subscription. Omit to leave unchanged. | |
| name | No | Display name of the subscription. Omit to leave unchanged. | |
| notes | No | Free-text notes about the subscription. Omit to leave unchanged, or send an empty string to clear the notes. | |
| status | No | New lifecycle status for the subscription. Omit to leave unchanged. | |
| remindMe | No | Whether to send renewal reminders for this subscription | |
| renewalCronExpression | No | Cron expression describing how often the subscription renews. Must not repeat more frequently than once a day. Omit to leave unchanged, or send an empty string to clear the renewal schedule. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, non-destructive operation. The description adds valuable context about partial updates and the empty-string clearing behavior for renewalCronExpression and notes, beyond what annotations provide. It does not cover potential edge cases like status transitions, but it is sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action and scope, and every word adds value. It is clear, direct, and free of redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 params, nested fee object) and the presence of an output schema, the description covers the critical non-obvious behaviors: partial updates and clearing semantics. No essential context is missing for an agent to select and use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, with each parameter clearly documented, including the empty-string clearing behavior. The description mostly reiterates schema information rather than adding new semantic nuance, so it does not elevate above the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Partially update an existing subscription' with a specific verb and resource, and it distinguishes itself from create/delete siblings by focusing on partial updates. The behavior of leaving unspecified fields unchanged adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use it (updating existing subscriptions) and explains the partial-update semantics. It does not explicitly mention alternatives or exclusions, but the existence of create_subscription and delete_subscription makes the use case obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskAInspect
Update task title, assignment, dates, or notes.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The task's ID, as returned by create_task or list_tasks. | |
| notes | No | Freeform notes about the task. Not for assignment info. Omit to leave unchanged. | |
| title | No | New title for the task. Omit to leave unchanged; max 200 characters. | |
| dueDate | No | YYYY-MM-DD format, or empty string to clear. Omit to leave unchanged. | |
| preparationDate | No | YYYY-MM-DD format, or empty string to clear. Omit to leave unchanged. | |
| assignedToMemberId | No | Member ID to assign, or empty string to unassign. Omit to leave the current assignment unchanged. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is a mutating (readOnlyHint=false) and non-destructive (destructiveHint=false) operation. The description adds the list of updatable fields, which gives some scope detail, but does not mention partial-update semantics or other behavioral nuances beyond what the schema already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero filler: 'Update task title, assignment, dates, or notes.' It efficiently communicates the core action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema (100% property descriptions), the minimal annotations covering safety, and the presence of an output schema, the short description is largely sufficient. It could have mentioned partial-update behavior, but that is already documented in the parameter descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all six parameters. The description's field list ('title, assignment, dates, or notes') does not add meaning beyond the schema's per-property explanations, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('update') with a clear resource ('task') and lists the exact fields (title, assignment, dates, notes), making its purpose unmistakable and distinguishing it from siblings like complete_task or delete_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like assign_task or complete_task. It only states what it does, with no mention of preferred scenarios, exclusions, or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_vehicleAInspect
Partially update an existing vehicle's details; only the fields provided are changed, everything else is left as-is. For string and due-date fields, omitting the field leaves the stored value unchanged, while sending an empty string clears it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the vehicle to update. | |
| vin | No | Vehicle Identification Number: a 17-character alphanumeric code unique to the vehicle. Omit to leave unchanged, or send an empty string to clear it. | |
| make | No | Manufacturer of the vehicle, e.g. 'Toyota'. Omit to leave unchanged, or send an empty string to clear it. | |
| year | No | Model year of the vehicle. Must be between 1900 and 2100. Omit to leave unchanged. | |
| model | No | Model name of the vehicle, e.g. 'Corolla'. Omit to leave unchanged, or send an empty string to clear it. | |
| notes | No | Free-text notes about the vehicle. Omit to leave unchanged, or send an empty string to clear it. | |
| colour | No | Colour of the vehicle. Omit to leave unchanged, or send an empty string to clear it. | |
| motDueDate | No | Date the next MOT (roadworthiness test) is due, in YYYY-MM-DD format. Omit to leave unchanged, or send an empty string to clear it. | |
| taxDueDate | No | Date the vehicle's road tax is next due, in YYYY-MM-DD format. Omit to leave unchanged, or send an empty string to clear it. | |
| registration | No | The vehicle's registration/licence plate as shown on the plate. Free-text; format varies by country. Omit to leave unchanged, or send an empty string to clear it. | |
| serviceDueDate | No | Date the vehicle's next scheduled service is due, in YYYY-MM-DD format. Omit to leave unchanged, or send an empty string to clear it. | |
| insuranceDocumentId | No | Document ID of the associated insurance policy document. Omit to leave unchanged, or send an empty string to clear it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| title | No | |
| message | No | |
| variant | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate non-read-only and non-destructive. The description adds important behavioral nuance: only provided fields are changed, and sending an empty string clears string/due-date fields. This goes beyond the default update intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose, then the key behavior. No filler or redundant repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 12 parameters and the presence of an output schema, the description adequately covers the core update semantics and clearing behavior. Field-specific details are appropriately delegated to the schema, and no major context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all 12 parameters with per-field omit/clear guidance (100% coverage). The description adds value by generalizing the pattern and distinguishing string/due-date fields from the integer year, which does not accept empty-string clearing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Partially update' with 'an existing vehicle's details', clearly distinguishing from create_vehicle and delete_vehicle sibling tools. This is a specific verb+resource+scope formulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clarifies when to use the tool by explaining partial-update semantics and the omit-vs-empty-string behavior. It provides clear context but does not explicitly name alternatives or exclusion conditions; however, sibling tool names make these obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Flicense-qualityBmaintenanceEnables couples to manage recipes, meal plans, calendar events, and grocery lists together.Last updated
- Alicense-qualityFmaintenanceTurn any calendar, contact book, or task list into an AI-orchestrated system. Platform-independent via CalDAV/CardDAV works with Nextcloud, Baikal, Fastmail, and any standards-compliant DAV server. 26 tools with field-agnostic updates.Last updated8529MIT
- Flicense-qualityBmaintenanceSelf-hosted household finance app for shared expenses, budgets, investments, loans, and zakat, exposing MCP tools for AI agents to manage finances via natural language.Last updated2
- Alicense-qualityDmaintenanceEnables AI-powered household management including inventory tracking, restock predictions, meal planning from available ingredients, and baby supply monitoring through natural language commands.Last updatedApache 2.0