Higgs Hub
Server Details
Gmail, Outlook, Drive, OneDrive and calendars for AI agents. Many accounts, one endpoint, audit log.
- Status
- Healthy
- Uptime
- 98.4% over 42 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 146 tools
Most tools are cleanly separated by provider prefix (gmail/outlook/agentmail/google_calendar/excel/google_sheet/gdrive/onedrive), so an agent can usually tell which resource+action a tool targets. However, a handful of Outlook tools drop the provider prefix (list_messages, move_messages, create_mail_folder, list_mail_folders, merge_mail_folders) and sit alongside explicitly prefixed siblings, creating real misselection risk, and the sheer number of parallel per-provider twins (e.g. send_gmail_message vs send_outlook_message vs send_agentmail_message) makes cross-provider confusion plausible.
The dominant convention is consistent verb_noun with a provider prefix (search_gmail_messages, create_outlook_calendar_event, update_google_task), which is highly predictable. Deviations are the un-prefixed Outlook family (list_messages, move_messages, *_mail_folder) and verb variance like apply_gmail_labels vs update_agentmail_labels vs update_agentmail_labels, but overall readability remains high.
At 146 tools this is far past the point where a set is comfortably navigable, even though the server legitimately spans five providers across mail, files, spreadsheets, calendars, tasks and workspace admin. The breadth justifies more than a trivial surface, but 146 tools imposes heavy selection cost and near-duplicate families that a smaller, parameterized surface could collapse.
Coverage is deep and near-complete: full message lifecycle (search/get/send/reply/draft/label/filter/move) for Gmail, Outlook and AgentMail; CRUD for files, folders, spreadsheets, calendars and tasks; plus member/role/skill administration with a staged-approval status tool. Minor gaps remain (no direct file-upload to Drive/OneDrive, PDF/Word reading unsupported, recurring-series edits and Outlook event moves disallowed), but these are documented limits rather than dead ends.
Available Tools
146 toolsadd_excel_sheetAdd a worksheetCInspect
Add a new worksheet tab to an existing workbook.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| workbookId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the mutation/safety profile is covered. The description adds nothing on top: it doesn't say what happens if a tab with the same title already exists, where the new tab is positioned, or whether the workbook is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the scope qualifier ('existing workbook') lands immediately. It is efficient, though its brevity is partly the source of the missing detail rather than pure 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?
For a three-required-parameter mutation tool with no output schema and only one-third of parameters documented, the description is too thin. It omits the mailbox/workbook scoping requirements and any mention of the sibling Google Sheets equivalent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% — just the mailbox parameter is documented, and even that only points at list_authorized_mailboxes. The description does not explain what 'title' controls (tab name, uniqueness constraints) or how 'workbookId' is obtained, so it fails to compensate for the low 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 states a specific verb ('Add') and resource ('a new worksheet tab') scoped to 'an existing workbook', so the operation is unambiguous. However, it never distinguishes itself from the near-identical sibling add_google_sheet_tab, leaving the agent to infer the Excel-vs-Google-Sheets split from the tool name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus add_google_sheet_tab, nor any prerequisite about the workbook needing to already exist beyond the phrase 'existing workbook'. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_google_sheet_tabAdd a tab to a spreadsheetCInspect
Add a new worksheet tab to an existing spreadsheet.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| spreadsheetId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond the annotations: it doesn't say what happens when a tab with the same title already exists, whether the tab is created empty or active, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb and resource lead. It is efficient, though its brevity is also the source of the missing detail elsewhere.
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 mutation tool with no output schema and 67% of parameters undocumented, the description is too thin. It omits the mailbox scoping requirement, collision behavior for the tab title, and any return expectation, so an agent cannot call it fully confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% – only 'mailbox' is documented. The description explains none of the three parameters, leaving 'spreadsheetId' and 'title' semantics (target spreadsheet, tab name) undocumented in both places, so it fails to compensate for the low 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 names a specific verb ('Add') and resource ('a new worksheet tab to an existing spreadsheet'), which is unambiguous. It clearly reads as the Google Sheets variant distinct from add_excel_sheet, though it does not explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as create_google_spreadsheet or add_excel_sheet. The agent gets a purpose but no routing logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_excel_rowsAppend rows to a worksheetAInspect
Add rows after the last row holding data — the usual way to add records to a tracker. Excel interprets values as if typed, so numbers and dates parse and a value starting with = becomes a live formula. Values are always interpreted as typed; there is no raw-text option.
| Name | Required | Description | Default |
|---|---|---|---|
| sheet | Yes | ||
| values | Yes | Rows of cell values | |
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| workbookId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare non-read-only, non-destructive, but say nothing about type coercion. The description discloses a genuinely useful behavior: values parse as if typed, a leading "=" becomes a live formula, and there is no raw-text escape hatch. That is real context beyond the annotations, though it omits error/permission behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core append behavior and no wasted preamble. Slight redundancy: the first and third sentences both restate that values are interpreted as typed.
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 mutation tool with no output schema and two undocumented parameters, the description covers value interpretation well but is silent on what happens on failure, whether the target sheet must exist, and what the call returns. Adequate but with clear 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 coverage is 50% (workbookId and sheet are undocumented), and the description adds meaning only about how values are interpreted rather than clarifying the undocumented parameters. The value-interpretation detail is helpful but does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Add rows after the last row holding data" states a specific verb (add/append), resource (worksheet rows), and a precise insertion point, which implicitly separates it from overwrite-style siblings like update_excel_range. It stops short of naming an alternative sibling explicitly, so an agent must still infer the contrast.
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 usual way to add records to a tracker" gives implied usage context for appending records. There are no explicit when-not conditions or named alternatives (e.g. use update_excel_range when you want to overwrite an existing range), leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_google_sheet_rowsAppend rows to a sheetAInspect
Add rows after the last row that holds data — the usual way to add records to a tracker. Values are interpreted as if typed, so numbers and dates parse and a value starting with = becomes a live formula; pass valueInput RAW to store text exactly as given.
| Name | Required | Description | Default |
|---|---|---|---|
| range | Yes | The tab or table to append to, e.g. "Invoices" or "Invoices!A:E" | |
| values | Yes | Rows of cell values | |
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| valueInput | No | ||
| spreadsheetId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the non-read-only, non-destructive, closed-world profile, so the description goes further by disclosing the value-coercion behavior: numbers and dates parse and a leading '=' becomes a live formula. That is genuine behavioral context beyond structured data, though the response shape (rows appended, range written) is not mentioned.
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 zero filler; the core append semantics come first and the value-interpretation caveat follows. Every clause carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutation tool with no output schema, the definition covers placement, value interpretation, and the RAW escape hatch, and the mailbox parameter routes to list_authorized_mailboxes. Only the result payload and the fact that pre-existing rows are untouched are left 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 60% and the valueInput enum has no schema description, but the description compensates by explaining that values are parsed as if typed and that RAW stores text exactly as given — meaningful semantics the schema omits. The undocumented spreadsheetId is largely self-evident, and mailbox/range are covered in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with positional semantics ('add rows after the last row that holds data'), which cleanly separates it from the overwriting update_google_sheet_range sibling. It never names the alternative tool outright, so an agent must infer the append-vs-update distinction.
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 usual way to add records to a tracker' implies the intended use case, and the value-input guidance hints at the RAW alternative. However, no sibling tool is named and no explicit when-not-to-use condition (e.g., use update_google_sheet_range to modify existing cells) is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_gmail_labelsApply/remove Gmail labelsAInspect
Add and/or remove labels on up to 1000 messages at once. This is Gmail's equivalent of moving messages between folders — add the destination label and remove INBOX (or the source label) in the same call.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| messageIds | Yes | ||
| addLabelIds | No | ||
| removeLabelIds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond that: the 1000-message batch ceiling and the combined add/remove semantics. It does not say whether the operation is idempotent or what happens if a label ID is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and scale, followed by the folder-move analogy. No filler or restatement of the tool name.
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 4-parameter mutation tool with 25% schema coverage and no output schema, the description covers the operational model and batch limit but leaves the mechanics of messageIds and label IDs unaddressed. Adequate as a minimum, not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (mailbox only), so the description must carry more weight. It explains the intent of addLabelIds/removeLabelIds qualitatively and caps messageIds scope at 1000, but adds no format or source details — e.g., where label IDs come from (list_gmail_labels) or what messageIds accepts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (add/remove), the resource (labels), and the scope (up to 1000 messages at once). The 'Gmail's equivalent of moving messages between folders' framing also separates it from sibling label tools like create_gmail_label or rename_gmail_label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit operating pattern — 'add the destination label and remove INBOX (or the source label) in the same call' — which is real when-to-use guidance. It stops short of naming a sibling alternative (e.g., move_messages or update_agentmail_labels) or stating when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_access_rolePut a member or API key in an access roleADestructiveInspect
Move one member (by email) or one API key (by name) into an access role, or back onto the workspace's default role with role = null. Owners can't be given a role — they are always unrestricted. Give exactly one of member or apiKey. This only stages a request: the owner opens the link in their browser, reviews it, and approves it there with their agent PIN. Never ask for or accept the PIN in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | The access role's name, or null for the default role. | |
| apiKey | No | The API key's name, as shown on the Agents page. | |
| member | No | The member's email. | |
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only flag it as a destructive, non-readOnly mutation. The description goes well beyond that, disclosing the staging workflow (a request is queued, not applied), the human approval via owner's browser and agent PIN, and the safety rule 'Never ask for or accept the PIN in chat.' This is exactly the kind of context annotations cannot carry.
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?
Four tight sentences, front-loaded with the action, then constraints, then the owner exception, then the staging/PIN behavior. No filler and the critical safety instruction is placed last for emphasis.
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-request mutation with no output schema, the definition covers target selection, exclusivity, the owner edge case, and the asynchronous approval flow. Nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema lacks: the mutual-exclusion rule ('exactly one of member or apiKey') is not encoded in the schema, and role=null is explained as the default role. The workspace parameter's necessity condition is left to the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (move) plus the two target resource types (member by email, API key by name) and the two possible destinations (a named access role or the workspace default via role=null). An agent can distinguish this from create_access_role, rename_access_role, or set_member_workspace_role without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit operating constraints: 'Give exactly one of member or apiKey' and 'Owners can't be given a role', plus the role=null escape hatch. It does not explicitly name alternative tools or the precondition for choosing this over set_access_role_capability/set_member_workspace_role, so it stops just short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_invitationCancel an invitationADestructiveInspect
Cancel a pending invitation to a workspace you own, by the invited email. This only stages a request: the owner opens the link in their browser, reviews it, and approves it there with their agent PIN. Never ask for or accept the PIN in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The invited address. | ||
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, destructiveHint=true) by disclosing that the call only stages a request requiring out-of-band owner approval with a PIN in a browser, and by giving an explicit security instruction never to request or accept the PIN in chat. That is exactly the kind of non-obvious workflow and auth detail annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action and scope, followed by the approval-flow caveat and the security rule. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with no output schema, the description covers the crucial missing pieces: that the effect is deferred pending owner approval, and the PIN handling rule. Nothing an agent needs to invoke this correctly is absent.
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 both parameters (email, workspace) are already documented, including the multi-workspace note and the pointer to list_workspaces. The description adds only that the email is the invited address, which is a restatement, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Cancel) and resource (a pending invitation) plus the targeting key (the invited email) and the ownership precondition. This clearly separates it from invite_member (which creates the invitation) and remove_member (which removes an existing member, not a pending invite).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use: only pending invitations, only workspaces you own, addressed by email. It stops short of explicitly naming the adjacent tools (invite_member, remove_member) or stating when this is the wrong choice, so the agent must infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_excel_rangeClear an Excel rangeADestructiveInspect
Empty the values in a range, leaving formatting and the rows themselves in place. Ask the user to confirm before clearing anything they did not just create.
| Name | Required | Description | Default |
|---|---|---|---|
| range | Yes | ||
| sheet | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| workbookId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation profile is covered. The description adds real value beyond that by specifying exactly what survives the operation — formatting and the rows themselves — which is the key behavioral question for a 'clear' tool. It omits auth requirements, rate limits, and whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, both front-loaded: the semantic effect first, the safety requirement second. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, no-output-schema tool the description covers effect and confirmation adequately, and the absence of return values is fine. It falls short on the three undocumented parameters, where an agent gets no help on range syntax or workbook/sheet identification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% — just 'mailbox' is documented — and the description adds nothing about workbookId, sheet, or range. For a destructive tool, the missing guidance on range notation (e.g. A1 style) and sheet naming is a meaningful gap that the schema does not fill.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Empty the values in a range' on an Excel workbook, which is concrete and not a restatement of the title. It does not, however, distinguish itself from the close siblings clear_google_sheet_range (other platform) or update_excel_range (overwrite vs empty), leaving that routing to the agent's inference.
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 confirmation instruction ('Ask the user to confirm before clearing anything they did not just create') is genuine usage guidance about a prerequisite step. However, it gives no when-to-use vs alternatives guidance, e.g. clear_google_sheet_range or update_excel_range, so the routing question is left implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_google_sheet_rangeClear a Google Sheets rangeADestructiveInspect
Empty the values in a range, leaving formatting and the rows themselves in place. Ask the user to confirm before clearing anything they did not just create.
| Name | Required | Description | Default |
|---|---|---|---|
| range | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| spreadsheetId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description need not restate danger; instead it adds real value by specifying what is destroyed (values only) versus preserved (formatting, rows) and by adding a user-confirmation workflow. It still says nothing about reversibility or how irrecoverable the cleared data is.
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, no waste, and the payload-preserving constraint leads ahead of the confirmation advisory. Every clause 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 destructive, 3-required-parameter mutation with no output schema, the safety and preservation semantics are covered, but two of three parameters remain unexplained (notably range format) and there is no note on failure behavior for invalid ranges or missing permissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%: mailbox is documented in the schema, while range and spreadsheetId carry no description at all. The description mentions "a range" but never gives A1 notation syntax or explains where spreadsheetId comes from, e.g. list_google_spreadsheets, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb + resource ("Empty the values in a range") with a precise scope qualifier: formatting and the rows themselves are preserved. This separates it cleanly from clear_excel_range (different platform) and update_google_sheet_range (which writes rather than blanks values).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear usage condition, namely that the range's formatting should survive, plus a when-to-be-cautious rule (confirm before clearing anything the user did not just create). It does not explicitly route to a sibling such as update_google_sheet_range or delete-oriented tools, so it stops short of a full when/when-not/alternatives statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_google_taskComplete a Google taskBInspect
Mark a task done. Google stamps the completion time itself.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | ||
| taskId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only but non-destructive, non-open-world mutation. The description adds one genuinely useful behavioral fact: Google sets the completion timestamp server-side, so no time value is passed. It says nothing about idempotency, whether re-completing is an error, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with zero filler; the action comes first and the behavioral note second.
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 three-parameter mutation with no output schema, the description covers the core action and the server-side timestamp, but leaves the identity of listId/taskId and the result of the call unspecified. Adequate but with clear 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 only 33% — only 'mailbox' is documented (pointing at list_authorized_mailboxes). The description does not explain listId or taskId at all, so it fails to compensate for the undocumented parameters as the low-coverage rule requires.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Mark a task done') that an agent can map directly to the Google task object. It is reasonably distinguishable from create/delete/update_google_task, though it never explicitly names those siblings as alternatives or boundaries.
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 when-to-use guidance, no prerequisites, and no routing to alternatives such as update_google_task (for un-completing) or delete_google_task. The agent must infer the usage context entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_outlook_taskComplete To Do taskBInspect
Mark a task as done. Completed tasks drop out of list_outlook_tasks by default.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | ||
| taskId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive mutation. The description adds one useful behavioral detail: completed tasks are filtered out of list_outlook_tasks by default. It omits idempotency, behavior if already completed, and permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and followed by the most relevant side effect. No 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?
For a mutation tool with three required parameters and no output schema, the description is too thin. It doesn't explain listId or taskId, doesn't state what success returns, and gives no guidance on alternatives or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%: mailbox is documented, but listId and taskId have no descriptions. The description provides no additional semantics for these parameters, leaving two required identifiers ambiguous beyond what their names imply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Mark a task as done' on an Outlook task. This distinguishes it from siblings like delete_outlook_task or update_outlook_task, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use case (marking a task done) and notes that completed tasks drop out of list_outlook_tasks. However, it does not state when to use this versus delete_outlook_task or update_outlook_task, nor any prerequisites, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_access_roleCreate an access roleAInspect
Create a named access role in a workspace you own. It starts with all eight capabilities on and every mailbox read & write; narrow it afterwards with set_access_role_capability and set_access_role_mailbox_access, then put people in it with assign_access_role. This only stages a request: the owner opens the link in their browser, reviews it, and approves it there with their agent PIN. Never ask for or accept the PIN in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The role's name, e.g. "Support". | |
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say it is a non-destructive, non-read-only, non-open-world write. The description adds substantial behavior beyond that: the new role defaults to all eight capabilities on and full mailbox read & write, and the call is a staged request requiring out-of-band browser approval with an agent PIN. It even gives a security constraint (never request the PIN in chat).
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?
Four short sentences, all front-loaded and purposeful: purpose, defaults, follow-up tools, approval model. Nothing is wasted, though the follow-up and approval sentences are dense relative to a simple two-parameter creation call.
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 no output schema, the description carries the return burden and does explain the staged-approval outcome, which is the important behavioral result. It does not state whether the role identifier needed by set_access_role_capability is returned, a small remaining gap for a create-then-configure workflow.
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 two parameters (name with length bounds and example, workspace with name-or-id guidance) are already fully documented in the schema. The description adds only contextual framing ("a workspace you own") and no new syntax or format detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: "Create a named access role in a workspace you own." This clearly separates it from siblings such as list_access_roles, rename_access_role, delete_access_role, and assign_access_role, all of which act on existing roles or members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lays out the workflow: create first, then narrow with set_access_role_capability and set_access_role_mailbox_access, then populate with assign_access_role. It also frames the boundary of this tool (only stages a request; approval happens elsewhere), so the agent knows what this call does and does not accomplish.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_agentmail_draftCreate an AgentMail draftAInspect
Write a draft into the AgentMail inbox without sending it. The person reviews and sends it from the AgentMail console. Works even when sending is switched off. For a reply, set replyToMessageId — recipients and subject then come from the original.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | ||
| to | No | Required unless replyToMessageId is set | |
| bcc | No | ||
| body | Yes | ||
| mailbox | Yes | Address of the connected AgentMail inbox to act on. Call list_authorized_mailboxes to see available options. | |
| subject | No | Required unless replyToMessageId is set | |
| replyToMessageId | No | Draft a reply to this message. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare write/non-destructive/non-open-world. The description adds real behavioral context: the message is not sent, a human reviews and sends it from the console, and it works even when sending is disabled. The reply-derivation behavior (recipients/subject inherited) is also disclosed, which is more than the annotations carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences, front-loaded with the core action and constraint, then the review workflow, then the reply special case. No filler; every clause carries 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 no output schema, the description need not explain return values, and it covers purpose, the review guardrail, and reply behavior adequately for a 7-parameter creation tool. Minor omission: nothing about cc/bcc or confirmation of a successful draft creation, but the essentials for correct invocation are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 57%, and the description compensates for the key gap by explaining replyToMessageId beyond its terse schema text: recipients and subject are derived from the original message. It does not cover cc/bcc/body, but for the highest-value parameter it adds semantics the schema does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource ('Write a draft into the AgentMail inbox') and immediately scopes it with 'without sending it', which cleanly separates it from the send_agentmail_message / send_agentmail_reply siblings. It does not name a sibling explicitly, but the 'without sending' qualifier makes the distinction 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?
Gives a clear conditional for reply mode ('For a reply, set replyToMessageId') and implies the review workflow as the reason to draft rather than send. However, it never states when to prefer a draft over send_agentmail_message or send_agentmail_reply by name, leaving the alternative-selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_excel_workbookCreate a workbookAInspect
Create a new empty .xlsx workbook in the user's OneDrive. Returns its id and link. Lands in the top level of the drive unless parentFolderId is given — which is required when your access to this mailbox is limited to certain folders.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| parentFolderId | No | OneDrive folder id to create the workbook in. Required when your access is limited to certain folders. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false). The description adds placement behavior (top level of drive by default) and, with no output schema present, usefully discloses the return values (id and link). It stops short of noting permissions or whether the name needs an extension.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core purpose front-loaded and zero filler. The final sentence's em-dash clause is slightly convoluted but still earns its place by flagging the conditional requirement.
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 3-param creation tool with annotations and no output schema, the description covers purpose, default placement, conditional param requirement, and return shape. Only the naming/extension convention of 'name' is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%; the description restates the parentFolderId condition already present in the schema and adds nothing about the undocumented 'name' parameter (e.g., extension handling). Baseline 3 is appropriate since the schema carries most parameter 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?
States a specific verb+resource+format+location: 'Create a new empty .xlsx workbook in the user's OneDrive.' An agent can distinguish it from create_google_spreadsheet (Excel vs Sheets) and create_onedrive_folder (workbook vs folder) without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives one useful precondition (parentFolderId is mandatory under limited folder access) but never states when to pick this over sibling creators such as create_google_spreadsheet. Usage is implied by the name rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_gdrive_folderCreate Google Drive folderBInspect
Create a new folder in Google Drive under the given parent (defaults to My Drive root).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| parentItemId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive, non-read-only, closed-world write, so the safety profile is covered. The description adds one genuinely useful behavioral fact — that the parent defaults to My Drive root — but says nothing about permissions required, duplicate-name handling, or what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and resource first and the parent-default caveat second; no filler, no 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?
For a simple create operation with annotations covering the safety profile and no output schema to explain, the description is nearly sufficient — it covers scope and the parent default. The remaining gap is the undocumented parentItemId semantics and collision behavior, which is minor for this 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?
Schema coverage is only 33%: only 'mailbox' is documented in the schema, and 'parentItemId' has no description at all. The description partially compensates by explaining that the parent argument defaults to My Drive root, but 'name' and the ID format/expected values for parentItemId remain unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (folder in Google Drive), making the operation immediately identifiable and distinguishable from the OneDrive/mail-folder siblings by the explicit Google Drive scope. It stops short of naming alternatives or contrasting conditions, so it is clear but not fully sibling-differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (e.g. that the mailbox must be authorized), and no exclusion or alternative tool. The only usage-adjacent detail is the parent default, which is a behavior note rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_gmail_draftCreate a Gmail draftBInspect
Write a draft into the mailbox without sending it. The person opens and sends it themselves. Works even when a workspace has switched sending off.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | ||
| to | Yes | ||
| bcc | No | ||
| body | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| subject | Yes | ||
| replyToMessageId | No | Draft a reply to this message — threads it and reuses its subject. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the bar is lower, yet the description still adds real behavioral context: nothing is sent, the human completes the send, and the tool remains functional even when workspace sending is disabled. It stops short of saying where the draft lands (Drafts folder), whether it can be edited afterwards, or what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and no filler. Minor redundancy: 'The person opens and sends it themselves' largely restates 'without sending it', though it does clarify the human-in-the-loop step.
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 7-parameter, 4-required mutation tool with no output schema, the description covers the key safety-relevant behavior (non-sending) but omits return information (e.g. draft identifier), where the draft is stored, and any parameter-level detail. Adequate as a minimum viable definition, incomplete for the tool's actual complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29% (2 of 7 params), so the description is expected to compensate and does not — it mentions no parameter at all, not even the required mailbox/to/subject/body. Notably it never surfaces replyToMessageId's threading behavior, which is the one parameter with meaningful semantic consequence, leaving that entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Write a draft into the mailbox') and the defining constraint 'without sending it', which implicitly separates it from send_gmail_message/send_gmail_reply. It does not, however, name or distinguish itself from the close siblings create_outlook_draft or create_agentmail_draft, so the Gmail-specific routing is left to the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent must infer that this is the right tool when it wants to prepare mail for human review rather than deliver it. The line 'Works even when a workspace has switched sending off' is a genuine usage condition but is framed as a capability, not as guidance on when to pick this over send_gmail_message. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_gmail_filterCreate auto-file filterAInspect
Create a Gmail filter that automatically labels (and by default archives out of the inbox) incoming mail matching sender/subject/query criteria. Runs server-side in Gmail, so it keeps working even when this tool isn't being used.
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | Match sender, e.g. "billing@acme.com" | |
| query | No | Advanced: any Gmail search query, e.g. "has:attachment larger:10M" | |
| archive | No | Skip the inbox for matching mail (default true) | |
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| subject | No | Match if subject contains this text | |
| addLabelId | Yes | Label ID to apply to matching mail |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a non-read-only, non-destructive, closed-world mutation, and the description adds real context beyond them: the filter lives server-side in Gmail and keeps running when the tool is not invoked, and archiving is the default outcome. It still omits whether the filter applies retroactively to existing mail or how it interacts with delete_gmail_filter.
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 and resource, followed by the one non-obvious behavioral fact (server-side persistence). No filler, nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation with no output schema, the description covers purpose, default archiving, and persistence well. The main omission is that it does not state whether the new filter is applied to already-received mail, which an agent would need to set expectations correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description echoes the criteria dimensions (sender/subject/query) and confirms the default archive behavior already documented on the archive property, adding only marginal meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create a Gmail filter') plus the behavior it produces (labels and by default archives matching mail). It is unambiguous about what the tool does, but it never differentiates itself from near-neighbors like create_inbox_rule, create_gmail_label, or list_gmail_filters, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use / when-not-to-use guidance and no stated prerequisites. Notably it never says a label must already exist (create_gmail_label) or that addLabelId is required, nor does it distinguish this from create_inbox_rule or other mail-organization siblings. Usage is only implied by the phrase 'incoming mail matching ... criteria'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_gmail_labelCreate Gmail labelAInspect
Create a new Gmail label. Use "/" in the name for nested labels, e.g. "Clients/Acme".
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description usefully adds that a "/" in the name produces a nested label, but it omits duplicate-name behavior, idempotency, and the fact that creating a label does not apply it to any messages.
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 zero filler, and the core action is front-loaded ahead of the optional nesting syntax 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?
With no output schema and annotations covering safety, the description supplies the one non-obvious input behavior (nested naming). It is nearly complete for a two-parameter creation tool, lacking only duplicate-handling guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (mailbox is documented, name is not), so the description must compensate for the gap. It does so by defining the naming syntax for nested labels, though it adds nothing about length limits or reserved names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Create a new Gmail label"), which cleanly separates it from rename_gmail_label, delete_gmail_label, and list_gmail_labels. It does not, however, explicitly name or contrast itself with a sibling, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The creation intent is implied by the name and description, but there is no when-to-use/when-not guidance: nothing about what to do if the label already exists (find_duplicate_gmail_labels / merge_duplicate_gmail_labels exist) or the difference between creating a label and applying it via apply_gmail_labels.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_google_calendarCreate a Google calendarBInspect
Create a new secondary calendar on the account — useful for keeping a client's or project's events separate from the personal one.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| timeZone | No | IANA timezone the calendar defaults to, e.g. "America/Denver" | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-destructive, non-open-world write. The description adds one behavioral fact beyond them: that the created calendar is a secondary one, not the primary. It says nothing about permissions, quota limits, or whether the new calendar is immediately usable, so it is only modestly additive.
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 with the action front-loaded and the rationale following a dash. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description omits what the call returns — notably the new calendar's ID, which the agent would need to add events to it. Combined with 50% parameter coverage and minimal annotations, a competent but incomplete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: mailbox and timeZone are documented in the schema, but name and description are bare. The description mentions no parameters at all, so it does not compensate for the undocumented half or clarify naming conventions for the calendar.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Create a new secondary calendar") and adds the scope qualifier "secondary," which distinguishes it from primary-calendar operations. It does not explicitly differentiate itself from the near-identical sibling create_outlook_calendar, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause "useful for keeping a client's or project's events separate from the personal one" implies a use case but never states when to use this versus create_outlook_calendar, or that the mailbox must be authorized first. Usage is inferred rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_google_calendar_eventCreate a Google Calendar eventADestructiveInspect
Create an event. Pass dates as "YYYY-MM-DD" for an all-day event, or full ISO datetimes for a timed one. Adding guests emails each of them an invitation from the user's address; an event with no guests notifies nobody. Set addVideoMeeting to attach a Google Meet link.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End, same format as start. For an all-day event this is the LAST day it covers, not the day after | |
| start | Yes | Start: "YYYY-MM-DD" for all-day, or an ISO datetime | |
| title | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| location | No | ||
| timeZone | No | IANA timezone for the times, e.g. "America/Denver". Set it — without one a timed event is read as UTC and can land hours off | |
| attendees | No | Guest email addresses. Each one is emailed an invitation — confirm with the user before inviting anybody | |
| calendarId | No | ||
| description | No | ||
| addVideoMeeting | No | Attach a Google Meet link to the event. The link is created and handed back — nothing joins, records or transcribes the meeting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover readOnly=false, destructive=true and openWorld=true, so the safety bar is already met, yet the description adds real side-effect context: inviting guests emails them an invitation, the reverse case notifies nobody, and addVideoMeeting creates a link without recording or joining. That is meaningful external-effect disclosure 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?
Four tight sentences, front-loaded with the core action, and each sentence carries distinct information (date formats, guest side effect, video flag). No padding or restatement of the name.
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 10-parameter destructive, open-world mutation with no output schema, the description covers the highest-risk behaviors (outbound invitations, video attachment). It omits where the event lands by default and any recurrence/calendarId guidance, but nothing an agent must know to call it safely 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 60% schema coverage the description usefully adds the guest-notification consequence and the Meet-link behavior for addVideoMeeting, and clarifies the date-format contract for start/end. It leaves calendarId, location, timeZone and description semantics to the schema, so it compensates but does not fully cover the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Create an event") that distinguishes it from the nearest lookalike, create_google_calendar. It does not explicitly differentiate from the parallel create_outlook_calendar_event sibling, but the resource name makes the provider 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?
Provides conditional guidance on date formats (all-day vs timed) and implies guest behavior, but never states when to prefer this over create_outlook_calendar_event or update_google_calendar_event. Usage is inferable rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_google_spreadsheetCreate a spreadsheetAInspect
Create a new spreadsheet in the user's Drive, optionally with named tabs. Returns its id and link. Lands in the top level of the drive unless parentFolderId is given — which is required when your access to this mailbox is limited to certain folders.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| sheetTitles | No | Tab names to create, in order | |
| parentFolderId | No | Drive folder id to file the new spreadsheet in. Required when your access is limited to certain folders. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety profile (non-read-only, non-destructive, closed-world), so the description carries the rest. It adds the default placement behavior (top-level Drive) and the folder-scoped-access caveat, which an agent needs before calling. It does not mention permissions/scopes required or quota considerations, so it is not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and return values, with no filler. The em-dash clause in the second sentence is slightly convoluted but still earns its place by encoding the conditional requirement.
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 no output schema, the description usefully states the return values (id and link), covers the required mailbox/title context implicitly, and flags the parentFolderId dependency. A note on where the spreadsheet lands relative to list_google_spreadsheets would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so most parameters are already documented, and the description largely restates the schema's own text (parentFolderId's folder-restricted requirement, sheetTitles as tabs). It confirms the meaning but adds no new syntax, format, or ordering nuance beyond what the schema 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 states a specific verb and resource ('Create a new spreadsheet in the user's Drive') plus the optional tab behavior and the returned id/link. It is unambiguous on its own, though it never explicitly contrasts itself with the adjacent create_excel_workbook / create_gdrive_folder siblings, relying on the tool name to disambiguate the Google product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete conditional rule: the file lands at the top level unless parentFolderId is supplied, and that parameter becomes required when mailbox access is folder-restricted. That is real when-to-use guidance, but it stops short of naming an alternative tool or an explicit when-not-to-use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_google_taskCreate a Google taskAInspect
Add a task to a list. Google Tasks stores a due date but not a due time — a time you pass is discarded, so say "due Friday", not "due Friday at 3pm". There is no priority field. Pass parentTaskId to make this a subtask.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| title | Yes | ||
| listId | Yes | ||
| dueDate | No | YYYY-MM-DD. Any time component is discarded by Google | |
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| parentTaskId | No | Makes this a subtask of that task, in the same list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the write/safe profile; the description adds genuinely non-obvious behavior: due time is discarded, no priority field, and how to make a subtask. This is real context beyond annotations, though it does not mention auth or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, each earning its place: creation, Google-specific due-date caveat, and subtask routing. Front-loaded with the core action.
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 6-param tool with a partial schema and no output schema, the description covers the key Google Tasks quirks and subtask behavior. It leaves auth/mailbox selection to the schema but is otherwise sufficient to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, and the description compensates by explaining dueDate time-discarding, the absence of a priority field, and parentTaskId's subtask effect. It does not mention notes or mailbox, but the mailbox schema already points to list_authorized_mailboxes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (add/create) and resource (task to a list), and is distinguishable from siblings like create_outlook_task by naming Google Tasks in the title and due-date semantics. The parentTaskId note clarifies scope beyond a plain add.
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?
Implied usage by mentioning due-date handling and subtasks, but no explicit when-to-use vs create_outlook_task, update_google_task, or list_google_tasks. No prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_google_task_listCreate a Google Tasks listCInspect
Create a new task list.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare that this is a non-read-only, non-destructive, non-open-world operation. The description adds nothing beyond the bare action, saying nothing about whether the list must be unique, what happens on naming conflicts, or what the caller needs to supply.
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 front-loaded sentence with no filler, which is structurally fine. But it is so terse that it omits useful context rather than being optimally concise for a two-parameter create 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 two required parameters, no output schema, and a create operation, the description is under-specified. It does not mention the required mailbox context, the title parameter, or the distinction from Outlook task lists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: the mailbox parameter is documented in the schema, but the required title parameter has no description. The description's phrase 'new task list' hints at a title but provides no formatting, length, or uniqueness constraints 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 states a clear verb and resource: 'Create a new task list.' An agent can tell this creates a list rather than a task. However, it does not differentiate from the sibling create_outlook_task_list, relying on the tool name to convey that it is Google-specific.
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 instead of alternatives such as create_outlook_task_list, nor any prerequisites or exclusions. The agent must infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_inbox_ruleCreate auto-file ruleAInspect
Create an inbox rule that automatically moves incoming mail matching sender or subject criteria into a folder. Runs server-side in Exchange, so it keeps working when this tool isn't. At least one condition is required.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| markAsRead | No | Also mark matching mail as read | |
| displayName | Yes | Name for the rule, shown in Outlook | |
| fromAddresses | No | Match these senders, e.g. ["billing@acme.com"] | |
| subjectContains | No | Match if the subject contains any of these | |
| destinationFolderId | Yes | Folder to move matching mail into | |
| stopProcessingRules | No | Stop evaluating later rules on a match (default true) | |
| bodyOrSubjectContains | No | Match if the body or subject contains any of these |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it is a non-read-only, non-destructive write with no open-world side effects, and the description goes beyond them by disclosing that the rule persists server-side in Exchange and keeps firing after the session ends. It omits permission requirements and any limits on rule count or duplicate names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, with the core action and effect front-loaded and the required-condition caveat at the end where it is easiest to act on.
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?
Covers action, persistence behavior, and the minimum-condition rule for an 8-parameter write tool; annotations already carry the safety profile and no output schema exists, so return values need not be explained. Minor gaps: no mention that the mailbox must be connected (only hinted in the schema) or of duplicate-name handling.
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 baseline is 3. The description adds a cross-parameter constraint not expressed in the schema (no anyOf/oneOf present): at least one match condition must be supplied, and it names the sender/subject/destination roles, which maps the fields to the described behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Create an inbox rule") and the effect (auto-move matching mail into a folder). Saying it "Runs server-side in Exchange" implicitly separates it from the Gmail counterpart create_gmail_filter, but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Adds a real prerequisite ("At least one condition is required"), which tells the agent when the call is valid. However, it never says when to prefer this over create_gmail_filter/create_mail_folder or lists the alternatives, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_mail_folderCreate mail folderBInspect
Create a mail folder. Pass parentFolderId to nest it inside an existing folder; omit for a top-level folder.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| displayName | Yes | ||
| parentFolderId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the mutation/safety profile is covered structurally. The description adds the nesting behavior of parentFolderId, which is useful, but says nothing about idempotency or duplicate-name handling — relevant given find_duplicate_mail_folders and merge_mail_folders exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action first and the optional-parameter behavior second; nothing is padded and the key decision (pass or omit parentFolderId) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, 3-parameter mutation with no output schema, the description covers the essential call shape. It still omits the created folder's identifier/return behavior and any hint about name collisions, which an agent would need to chain a follow-up rename_mail_folder or move_messages call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%: only mailbox is documented in the schema. The description does compensate for parentFolderId by stating its nest-vs-top-level semantics, but displayName is left entirely undefined in both places, so the description only partially fills the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (create a mail folder) that an agent can distinguish from create_gmail_label or create_gdrive_folder. However it never names a sibling or scopes itself to Outlook/M365 mail, so differentiation relies on inference from the mailbox parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the parentFolderId mechanic but gives no when-to-use guidance: it doesn't say when to create a folder vs. a Gmail label, nor mention prerequisites like calling list_authorized_mailboxes or checking for an existing folder via find_duplicate_mail_folders.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_onedrive_folderCreate OneDrive folderAInspect
Create a folder in OneDrive under the given parent (defaults to the drive root). If the name is taken, it is created with a suffix rather than merged.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| parentItemId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-destructive write, so safety is covered. The description adds a genuinely non-obvious behavioral trait beyond annotations: duplicate names are resolved with a suffix rather than merged, which prevents the agent from assuming an upsert/merge. It stops short of mentioning permission/auth requirements or error modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the scope/default front-loaded and the collision semantics immediately after. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with no output schema and no annotations covering the result, the description should at least indicate that a new folder (and presumably its ID) is returned so it can be used by rename_onedrive_item / move_onedrive_item. It also omits the mailbox-authorization prerequisite. Adequate but with real 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 coverage is only 33% (only 'mailbox' is documented), so the description has to compensate. It usefully explains that 'parentItemId' is optional and defaults to the drive root, and its collision note implicitly covers 'name', but it never says how to obtain a valid parent item ID or what format it takes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (a folder in OneDrive), plus the scoping detail that the parent defaults to the drive root. Combined with the name, this clearly separates it from the sibling create_gdrive_folder / create_mail_folder 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 intent is obvious enough that usage is implied, and the collision behavior ('created with a suffix rather than merged') tells the agent what happens if the folder already exists. However, there is no explicit when-to-use vs. alternatives guidance, no prerequisite about needing an authorized mailbox, and no pointer to list_onedrive_items for resolving a parent ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_outlook_calendarCreate an Outlook calendarBInspect
Create a new calendar on the account — useful for keeping a client's or project's events separate from the default one.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that – no mention of required mailbox authorization, duplicate-name behavior, or what is returned – which meets the minimum bar given annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the action first and rationale second; nothing is wasted. Slightly more context could have been added without bloat, so it is efficient but not maximally informative.
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 two-parameter creation tool with annotations covering safety and no output schema, the description is adequate but thin. It omits the mailbox prerequisite, does not address the undocumented 'name' parameter, and does not indicate that the created calendar's identifier is likely needed for follow-up calls such as create_outlook_calendar_event.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: the mailbox parameter is well documented in the schema, but the required 'name' parameter has no description anywhere. The description says only "a new calendar" and never clarifies what the name parameter represents or its constraints, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Create a new calendar"), and the name makes the Outlook variant identifiable against create_google_calendar. However, it never explicitly contrasts itself with the Google or other sibling calendar tools, so an agent must rely on the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause "useful for keeping a client's or project's events separate from the default one" gives an implied use case, which is more than nothing. But there is no explicit when-to-use-vs-alternatives guidance and no mention of prerequisites such as needing a connected mailbox or how this differs from create_google_calendar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_outlook_calendar_eventCreate an Outlook Calendar eventADestructiveInspect
Create an event. Adding guests emails each of them an invitation from the user's address; an event with no guests notifies nobody. Set addVideoMeeting to attach a Microsoft Teams link.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End, same format as start. For an all-day event this is the LAST day it covers, not the day after | |
| start | Yes | Start: "YYYY-MM-DD" makes it an all-day event, or pass a datetime like "2026-08-20T09:00:00" | |
| title | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| location | No | ||
| timeZone | No | IANA timezone for the times, e.g. "America/Denver". Set it — without one the times are read as UTC and can land hours off | |
| attendees | No | Guest email addresses. Each one is emailed an invitation — confirm with the user before inviting anybody | |
| calendarId | No | ||
| description | No | ||
| addVideoMeeting | No | Attach a Microsoft Teams link to the event. The link is created and handed back — nothing joins, records or transcribes the meeting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and openWorldHint=true, so the safety profile is partly covered; the description adds the key hidden side effect — guests trigger external invitation emails, and an event with no guests notifies nobody. It stops short of saying what is returned or which calendar the event lands on by default.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, action first, then side effects, then the video-meeting flag. No filler and nothing buried.
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 10-parameter mutating tool with no output schema, the description covers the notification side effect but omits the return value (does it hand back an event ID?) and defaults such as which calendar is used. It is adequate but leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60% and the description only elaborates on attendees and addVideoMeeting, both of which are already documented in the schema. Half the parameters (location, calendarId, description, title) get no added meaning from the description, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Create an event"), which the name/title refine to Outlook Calendar. It could have named the relevant sibling (create_google_calendar_event) explicitly, but the purpose 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?
Gives conditional behavior for guests (invitations sent vs. nobody notified) and when to set addVideoMeeting, which implies usage. It never states prerequisites (e.g., a connected mailbox) or when to prefer this over create_google_calendar_event or update_outlook_calendar_event.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_outlook_draftCreate an Outlook draftAInspect
Write a draft into the mailbox without sending it. The person opens and sends it themselves. Works even when a workspace has switched sending off.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | ||
| to | Yes | ||
| bcc | No | ||
| body | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| subject | Yes | ||
| replyToMessageId | No | Draft a reply to this message — Outlook threads it and reuses its subject. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: the draft is not transmitted, the human sends it, and the tool still works when sending is disabled — all non-obvious operational 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?
Three short sentences, front-loaded with the core action and its key constraint ('without sending'). No filler; each sentence adds distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no output schema and sparse schema descriptions, the behavioral side is well covered but the parameter side is essentially absent — an agent gets no guidance on cc/bcc/to arrays or the reply-threading parameter from the description. Adequate but with a clear gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 29% (7 params, only mailbox and replyToMessageId documented). With that low coverage the description should compensate, but it mentions no parameters at all — no hint about to/cc/bcc arrays, subject/body limits, or how replyToMessageId changes behavior. The burden is not met.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Write a draft into the mailbox') and immediately clarifies the key differentiator from send tools: 'without sending it.' An agent can tell this apart from send_outlook_message/send_outlook_reply. It does not, however, name its sibling create_gmail_draft/create_agentmail_draft as the parallel drafts, so sibling differentiation is only partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives one useful usage condition ('Works even when a workspace has switched sending off'), which hints at when to prefer a draft over sending. But it never explicitly names the alternative (send_outlook_message) or states when-not to use this tool, leaving the routing decision largely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_outlook_taskCreate To Do taskCInspect
Create a task in a To Do list, optionally with a due date, reminder, importance and notes.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Free-text notes on the task | |
| title | Yes | ||
| listId | Yes | ||
| dueDate | No | Due date as "YYYY-MM-DD", or a full datetime | |
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| timeZone | No | IANA timezone for the dates, e.g. "America/Denver". Defaults to UTC — set it, or a date-only due date can land a day off for the user | |
| categories | No | ||
| importance | No | ||
| reminderDateTime | No | Reminder datetime; also switches the reminder on |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-destructive, closed-world mutation, so the safety profile is covered. The description adds nothing beyond that: no statement about prerequisite state, whether the task is immediately persisted, or how failures surface. It largely restates the schema's optional fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the verb and resource front-loaded and the optional fields trailing. Efficient, though the trailing enumeration duplicates what the schema already lists.
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 9-parameter creation tool with no output schema, the description omits the mailbox authorization requirement, the need for a pre-existing list, and the timezone caveat that the schema raises. An agent must open the schema to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 56% and the description only echoes the same fields already named (due date, reminder, importance, notes) without adding format or constraint meaning. It provides no semantics for undocumented parameters such as title, listId, or categories, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a task in a To Do list') and enumerates the optional fields, so an agent knows exactly what operation is performed. It does not distinguish itself from close siblings like create_google_task or create_outlook_task_list, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention that the target listId must already exist (create_outlook_task_list), and no note that the mailbox must be an authorized one. The description offers no routing help versus create_google_task or create_outlook_task_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_outlook_task_listCreate To Do listCInspect
Create a new Microsoft To Do task list.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| displayName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds nothing beyond that: no note on duplicate-name handling, return value, or whether the list becomes immediately visible. Minimal value beyond 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?
A single, front-loaded sentence with no wasted words. It is appropriately sized for a simple create operation, though it is arguably too terse given the missing 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?
For a two-parameter create tool with annotations and no output schema, the description is minimally viable, but it omits displayName semantics and any usage context. It leaves the agent without enough to handle parameters or edge cases confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: mailbox is documented inline (including a pointer to list_authorized_mailboxes), but displayName has no description or constraints. The description does not compensate by explaining what displayName should contain or any naming rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (Microsoft To Do task list), which is clear and distinguishable from create_google_task_list by provider qualifier. It does not, however, explicitly contrast with sibling operations on Outlook tasks/lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g., mailbox must be connected), and no mention of alternatives such as create_google_task_list or create_outlook_task. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_access_roleDelete an access roleADestructiveInspect
Delete an access role nobody follows. Move its members and API keys to another role first (assign_access_role); the workspace's default role can't be deleted. This only stages a request: the owner opens the link in their browser, reviews it, and approves it there with their agent PIN. Never ask for or accept the PIN in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The role's name. | |
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare destructiveHint=true and readOnlyHint=false; the description goes well beyond by disclosing that this merely stages a request, that the owner must open a link, review, and approve with their agent PIN, and that the PIN must never be handled in chat. This is exactly the kind of non-obvious behavioral context the agent needs.
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?
Four tight sentences, front-loaded with the action and its key precondition, then the safety-critical approval flow. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, approval-gated operation with no output schema, the description covers the precondition, the exclusion, and the full staged-approval lifecycle. Nothing an agent needs to invoke it safely 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 description coverage is 100%, so both `name` and `workspace` are already documented in the schema, and the description adds no syntax or format detail beyond that. Baseline 3 is appropriate when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource (delete an access role) with the added scope constraint that the role must have no followers, which immediately distinguishes it from creation/rename siblings. An agent knows exactly what this does and what state the target must be in.
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?
States the prerequisite explicitly (move members and API keys first via assign_access_role) and the exclusion (workspace default role can't be deleted), which is strong when/when-not guidance. It names a related tool for the prerequisite step but no true alternative deletion path, so it falls just 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_gdrive_itemDelete Google Drive itemADestructiveInspect
Permanently delete a Google Drive file or folder (bypasses trash). Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so safety is partly covered, but the description adds the crucial detail that deletion is permanent and bypasses the trash (i.e., not recoverable) plus a confirmation requirement. It does not discuss permissions/ownership constraints on shared items, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler; the permanent/bypasses-trash fact is front-loaded and the confirmation instruction follows. Every clause 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 destructive two-param tool with no output schema, the description covers irreversibility and user-confirmation, which is what an agent most needs. The remaining gap is itemId semantics, which neither schema nor description addresses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: mailbox is documented in the schema, but itemId has no description and the tool description says nothing about it. The only hint is 'file or folder', which loosely implies itemId accepts either type but adds no format or sourcing guidance 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?
States a specific verb (delete) and resource (Google Drive file or folder), and makes the scope explicit with 'Permanently' and '(bypasses trash)'. An agent can immediately tell this apart from recoverable-delete semantics and from sibling tools like move_gdrive_item or rename_gdrive_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?
Gives a concrete operational instruction ('Ask the user to confirm before calling this') and warns that trash is bypassed, which effectively signals when-not-to-call-carelessly. It stops short of naming an alternative (e.g., a non-permanent removal path), so it is clear context rather than a full when/when-not routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_gmail_filterDelete auto-file filterCDestructiveInspect
Delete an existing Gmail auto-filing filter.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| filterId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: it does not state that deletion is permanent/irreversible, nor any auth or scoping requirements. The word 'existing' is the only marginal addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. Its brevity is efficient, though it borders on under-specification for a destructive 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 destructive, 2-required-param tool with no output schema, the description omits the irreversibility warning, the means of obtaining filterId, and any distinction from other delete_* siblings. The annotations cover only the safety hint, so the description's gaps are material.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: mailbox is documented (with a pointer to list_authorized_mailboxes), but filterId — the parameter that actually selects what gets destroyed — has no schema description and no description text here. The description does nothing to compensate for this gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete... Gmail auto-filing filter'), which is unambiguous. It does not differentiate from near-siblings such as delete_gmail_label, delete_inbox_rule, or delete_mail_folder, all of which are deletion tools in the same mailbox namespace.
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 when-to-use guidance, no prerequisites, and no mention of the natural companion flow (list_gmail_filters to discover a filterId). The agent is left to infer that the filter must already exist and how to find it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_gmail_labelDelete Gmail labelADestructiveInspect
Permanently delete a Gmail label (the messages themselves are not deleted, only unlabeled). Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| labelId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already supply destructiveHint=true and readOnlyHint=false, and the description goes beyond them by defining the blast radius: the deletion is permanent, but messages are only unlabeled rather than removed. The explicit confirmation requirement is additional behavioral context. It stops short of 5 because it says nothing about reversibility of recovery beyond "permanently" or about failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler; the destructive scope is front-loaded and the safety instruction follows immediately. Nothing is repeated from the title or schema.
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 two-parameter mutation with no output schema, the description covers the essentials: what is destroyed, what is not, and the confirmation gate. It is slightly incomplete in that it never tells the agent where labelId comes from or that the operation is scoped to a single mailbox, both of which are discoverable only from sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: mailbox is described and even points to list_authorized_mailboxes, but labelId is a bare string with no description. The tool description adds nothing here — it never says whether labelId is an opaque ID or a label name, nor how to obtain a valid one (e.g., via list_gmail_labels), which is exactly the gap the 50% coverage leaves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ("Permanently delete") with a specific resource ("a Gmail label") and immediately clarifies scope by noting the messages themselves survive and are only unlabeled. That scope note cleanly separates it from delete_gmail_filter, delete_mail_folder, and delete_gmail_message-style siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one concrete procedural rule — confirm with the user first — which is real usage guidance for a destructive tool. However, it names no alternative or routing condition (e.g., rename_gmail_label for a rename, merge_duplicate_gmail_labels for consolidation), so an agent must infer when deletion is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_google_calendarDelete a Google calendarADestructiveInspect
Delete a secondary calendar and every event on it. The primary calendar cannot be deleted. WARNING: this is not recoverable. Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| calendarId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the bar is lower, yet the description still adds substance the annotations cannot carry: cascade behavior ('every event on it'), the hard restriction that the primary calendar is ineligible, and an explicit non-recoverability warning plus a confirmation protocol. That is exactly the pre-call context an agent needs before issuing an irreversible mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what is destroyed, then the eligibility constraint, then the warning and confirmation instruction. No filler and nothing buried.
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 two-parameter irreversible delete with no output schema, the description covers impact, eligibility, and the human-confirmation requirement well. The one gap is mechanical: how to obtain a valid calendarId and how the tool fails when an invalid or primary id is supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: mailbox is documented and even points at list_authorized_mailboxes, while calendarId has no description at all. The description contributes indirectly by defining the target as a 'secondary calendar', but never tells the agent where to source a valid calendarId (list_google_calendars) or what happens if a primary id is passed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (delete_google_calendar) plus the exact scope: only secondary calendars, and every event on the calendar goes with it. That scope statement distinguishes it from delete_google_calendar_event (single event) and from the parallel delete_outlook_calendar sibling without the schema needing to be opened.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a real precondition ('the primary calendar cannot be deleted') and an explicit operational instruction ('ask the user to confirm before calling this'), which is the correct routing signal for a destructive tool. It stops short of naming an alternative path (e.g., deleting events individually with delete_google_calendar_event) when the user only wants to clear the calendar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_google_calendar_eventDelete a Google Calendar eventADestructiveInspect
Delete one event or one occurrence. If it has guests they are emailed a cancellation, which cannot be undone. Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| calendarId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, but the description goes beyond them by disclosing that guests are emailed a cancellation and that the action cannot be undone, plus a human-confirmation requirement. That is meaningful consequence disclosure an agent cannot get from the 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?
Three short sentences, front-loading what is deleted, then the side effects, then the safety requirement. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, open-world mutation with no output schema the description covers consequences and confirmation well, but it leaves the parameter story thin (calendarId unaddressed) and gives no guidance on recurrence/occurrence identification or error cases when no guests exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%: mailbox is documented in the schema (with a pointer to list_authorized_mailboxes), but eventId and calendarId carry no description anywhere. The description adds no parameter meaning — it doesn't explain how to identify an occurrence or which calendar defaults apply — so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource and even narrows the scope to 'one event or one occurrence', which tells an agent it is deleting a single calendar entry rather than a whole calendar (delete_google_calendar) or a task. It does not name an alternative sibling explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one clear operational rule — ask the user to confirm before calling — which is real usage guidance, but says nothing about when to prefer this over delete_outlook_calendar_event or when calendarId vs the default calendar matters. Usage context is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_google_taskDelete a Google taskADestructiveInspect
Delete a task. Completing it is almost always what the user means — only delete when they say delete.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | ||
| taskId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds a valuable behavioral warning that deletion should be a last resort because completion is usually intended, going beyond the annotations, though it does not detail irreversibility, auth requirements, or 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?
Two sentences, front-loaded with the action and immediately followed by the crucial usage warning. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive mutation with annotations covering safety and no output schema, the description covers the key risk of misuse. However, it leaves the sourcing and meaning of listId and taskId unexplained, which is a clear gap for an agent needing 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?
Schema description coverage is only 33%: mailbox is documented, but listId and taskId have no descriptions. The description adds no parameter meaning at all, failing to compensate for the low schema coverage and leaving two required parameters semantically opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Delete' and resource 'task', and explicitly contrasts with completing, which disambiguates from complete_google_task. However, it does not say 'Google task', so ambiguity with delete_outlook_task remains and it relies on the tool name/title for full 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?
Explicitly states the condition to use it ('only delete when they say delete') and the alternative behavior ('completing') that is almost always intended. This is a strong when/when-not rule that directly addresses the most common misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_google_task_listDelete a Google Tasks listADestructiveInspect
Delete a task list and every task in it. There is no recycle bin — ask the user to confirm first.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, but they don't say what the destruction covers or whether it is reversible. The description supplies both: the entire task list contents are removed, and there is no recycle bin, so the operation is irreversible. It stops short of disclosing permission or auth requirements, so it earns 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler; the destructive scope lands first and the irreversibility warning follows immediately. Nothing is redundant with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers the two things an agent most needs: what is destroyed (the whole list) and that it cannot be undone, plus a confirmation requirement. The remaining gap is how to obtain a valid listId, which is left entirely to the undocumented parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: mailbox is documented in the schema (including a pointer to list_authorized_mailboxes), but listId carries no description at all. The description adds nothing about parameters – notably it never tells the agent where listId comes from (list_google_task_lists) – so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete a task list') and goes further by naming the cascade scope ('and every task in it'), which cleanly separates it from delete_google_task and delete_outlook_task_list. An agent can route correctly without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a real usage constraint – 'ask the user to confirm first' – which is actionable behavioral guidance. However, it never states when to prefer this over siblings (e.g. delete_google_task for a single task, or emptying a list instead of deleting it), so the routing guidance 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_inbox_ruleDelete auto-file ruleCDestructiveInspect
Delete an existing inbox rule.
| Name | Required | Description | Default |
|---|---|---|---|
| ruleId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds nothing on top: it does not say whether deletion is permanent, whether it can be undone, or what permissions the mailbox requires. With annotations carrying the load, the description contributes no incremental behavioral 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?
It is a single front-loaded sentence with no wasted words, but the brevity stems from under-specification rather than disciplined conciseness. There is no structural issue, just very little 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?
For a destructive, irreversible-by-implication mutation with no output schema and an undocumented required ruleId, the description should at minimum note the permanence of the action and how to source the ruleId. None of that is present, leaving the agent under-informed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: mailbox is documented in the schema (with a pointer to list_authorized_mailboxes) but ruleId has no description anywhere. The description never mentions parameters or how to obtain a valid ruleId (e.g., from list_inbox_rules), so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Delete) and resource (inbox rule), so the agent knows exactly what operation it performs. It does not distinguish itself from its closest siblings (create_inbox_rule, list_inbox_rules), but the resource noun is specific enough to separate it from the many delete_* tools for other resource types.
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 such as delete_mail_folder or delete_gmail_filter, and no mention of the prerequisite that the rule must exist or how to discover it. The description offers no context beyond the operation itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_mail_folderDelete mail folderADestructiveInspect
Delete a mail folder. WARNING: this deletes the messages inside it too — Outlook does not unfile them first. Move anything worth keeping out beforehand, and ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| folderId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, so the safety profile is known, yet the description adds a non-obvious consequence: contained messages are deleted too, with no automatic unfiling. That is exactly the kind of behavioral detail annotations cannot express, plus an explicit human-confirmation requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action, then the warning, then the prerequisite and confirmation ask in a single tight sentence. No filler; every clause carries actionable 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 no output schema and only two params, the description covers the destructive semantics and confirmation duty well. The one gap is sourcing folderId, which is undocumented in both the schema and the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: 'mailbox' is well documented (including a pointer to list_authorized_mailboxes), but 'folderId' has no schema description at all and the description does not explain where to obtain it (e.g. list_mail_folders). The description adds no parameter meaning of its own.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete a mail folder'), which cleanly separates it from sibling deletes of other resource types. It does not explicitly distinguish itself from adjacent folder tools such as merge_mail_folders or rename_mail_folder, though the verb makes the distinction 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?
Gives clear preconditions: relocate anything worth keeping first and get user confirmation before calling. It implies move_messages as the alternative action but never names it, so the routing guidance is contextual rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_onedrive_itemDelete OneDrive itemADestructiveInspect
Delete a OneDrive file or folder. Goes to the recycle bin and is recoverable for the tenant's retention window. Still worth confirming with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: the item goes to the recycle bin and remains recoverable for the tenant's retention window, which materially changes how an agent should reason about reversibility. It stops short of stating permission requirements or behavior on non-empty folders.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero redundancy, and the operation is front-loaded ahead of the recoverability note and the caution. Every sentence carries distinct information (action, consequence, advice).
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 two-parameter destructive tool whose annotations already flag destructiveness and which has no output schema, the description covers the essentials: what is deleted and that it is recoverable. Remaining gaps are permission requirements and handling of non-empty folders, which are useful but secondary.
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 50% – mailbox is well documented but itemId has no description at all. The description's 'file or folder' phrasing gives a faint hint that itemId may reference either type, but it adds no format, ID-source, or resolution guidance to compensate for the undocumented required identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete a OneDrive file or folder') and names the target scope, so it is immediately distinguishable from sibling deleters such as delete_gdrive_item, delete_mail_folder, and delete_outlook_task. No ambiguity about what is being operated on.
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?
Offers one piece of actionable guidance ('still worth confirming with the user first'), which is real usage advice for a destructive operation. However, it never names an alternative (e.g., move_onedrive_item or unshare_onedrive_item) or states when deletion is inappropriate, so the routing 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.
delete_outlook_calendarDelete an Outlook calendarADestructiveInspect
Delete a calendar and every event on it. The default calendar cannot be deleted. WARNING: this is not recoverable. Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| calendarId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, but the description adds non-derivable behavior: the deletion cascades to every event, it is irreversible ('not recoverable'), and one calendar class is protected. These are exactly the facts an agent needs before a destructive call and cannot be inferred from the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the effect, then the constraint, then the confirmation requirement. No filler and nothing buried.
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 two-parameter destructive tool with no output schema, the description covers effect, irreversibility, and the protected-default constraint. The remaining gap is where calendarId comes from and whether permissions are required, but the core is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: calendarId has no description and the description adds no meaning for either parameter, no format, no source for the ID, no hint that list_outlook_calendars supplies it. The mailbox field's own schema description already covers its guidance, so the description compensates for nothing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Delete') and resource ('a calendar') plus the cascade scope ('and every event on it'), which cleanly separates it from delete_outlook_calendar_event in the sibling list. No ambiguity about what gets removed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a real precondition ('the default calendar cannot be deleted') and a mandatory pre-call workflow ('Ask the user to confirm before calling this'), which is strong usage guidance. It stops short of naming an alternative tool or stating when another deletion route would be preferable, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_outlook_calendar_eventDelete an Outlook Calendar eventADestructiveInspect
Delete one event or occurrence. If it has guests Outlook emails every one of them a cancellation, immediately and irreversibly. Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is partly covered. The description adds genuinely non-obvious behavior: cancellation emails are sent to every guest, and the deletion is 'immediately and irreversibly.' That external side effect cannot be inferred from the annotations. It doesn't cover error cases or recurring-series semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler; the destructive consequence and the confirmation requirement are front-loaded 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?
With no output schema, the description does the necessary work of flagging irreversibility, guest notifications, and the confirm-first requirement. An agent can call it correctly, though the undocumented eventId parameter and lack of guidance on recurring events leave a small 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 only 50% — eventId has no description at all, while mailbox documents itself and points to list_authorized_mailboxes. The description supplies no parameter guidance (no format, no how-to-obtain an eventId), so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete one event or occurrence') with useful scope detail — the 'or occurrence' phrasing signals single-occurrence deletion. It doesn't explicitly differentiate itself from delete_google_calendar_event or delete_outlook_calendar, but the Outlook naming and event-level target make the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage precondition: 'Ask the user to confirm before calling this.' That is real routing/behavioral guidance for a destructive action. It stops short of naming alternatives (e.g., delete_outlook_calendar for the whole calendar, or cancel_invitation) or stating 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.
delete_outlook_taskDelete To Do taskADestructiveInspect
Permanently delete a task. To Do has no recycle bin — prefer complete_outlook_task unless the task was created in error.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | ||
| taskId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds the non-obvious operational fact that To Do has no recycle bin, i.e. the deletion is unrecoverable. It does not address permissions beyond what the mailbox schema field already hints at (list_authorized_mailboxes), so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler. The irreversible-deletion warning is front-loaded and the alternative-tool guidance follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the safety profile is carried by annotations plus the explicit no-recycle-bin warning, so the behavioral story is complete. The remaining gap is the undocumented listId/taskId semantics, which an agent must infer from sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (mailbox is documented), leaving listId and taskId undocumented in both schema and description. The description adds no meaning at all for the parameters, so it fails to compensate for the coverage gap; an agent gets no help on identifying the target task or list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Permanently delete a task") and immediately differentiates the action from the sibling complete_outlook_task by naming that alternative. The word "permanently" also disambiguates it from update/complete operations at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit routing rule: prefer complete_outlook_task, except when the task was created in error. That is a clear when-to-use and when-not-to-use statement with the alternative named, which is exactly the burden this tool should carry.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_outlook_task_listDelete To Do listADestructiveInspect
Delete a To Do list. WARNING: this deletes every task in it, and To Do has no recycle bin — deleted tasks are not recoverable. Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, but the description adds information the annotations cannot carry: the deletion cascades to all contained tasks and there is no recycle bin, so the data is permanently unrecoverable. It also specifies a required confirmation step before invocation, which is exactly the kind of behavioral context an agent needs for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences: action first, then the destructive consequence as a capitalized warning, then the required confirmation. Nothing is wasted and the most important/surprising fact (irreversible cascade) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, no-output-schema tool this covers what is destroyed, that it is irreversible, and that user confirmation is required — the core behavioral burden. The only meaningful gap is not telling the agent how to source the listId parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description names no parameters at all. 'mailbox' is well documented in the schema including the list_authorized_mailboxes resolution path, but 'listId' has no schema description and the description offers no hint about where to obtain it (e.g., list_outlook_task_lists). At 50% schema coverage the description fails to compensate for the undocumented identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete a To Do list') and immediately clarifies scope by noting it removes every task inside the list, which separates it from delete_outlook_task (single task) and delete_outlook_task_list vs. the Google counterpart. An agent knows exactly what is affected without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete operational precondition — 'Ask the user to confirm before calling this' — which is real usage guidance for a destructive operation. It does not name an alternative (e.g., delete_outlook_task for removing individual items), so it stops short of explicit when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_mailboxDisconnect mailboxADestructiveInspect
Disconnect a mailbox from a workspace you own: once approved, this revokes the stored grant at the provider (Google) and deletes the stored tokens. The mailbox can be reconnected later from the dashboard. Owners only, signed in over OAuth — API keys can't do this. This only stages a request: the owner opens the link in their browser, reviews it, and approves it there with their agent PIN. Never ask for or accept the PIN in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected mailbox to disconnect. | |
| provider | No | Only needed when the same address is connected under more than one provider. | |
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (destructiveHint=true, readOnlyHint=false) by disclosing exactly what is destroyed (grant revoked at the provider, stored tokens deleted), that the action is reversible via dashboard reconnection, the owner/OAuth requirement, and the two-phase approval flow (stages a request, owner approves in-browser with an agent PIN, never collect the PIN in chat). This is unusually rich behavioral disclosure for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each carrying distinct information: the action and its effect, reversibility, auth constraint, and the approval-flow safety rule. The critical effect and constraint are front-loaded with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, multi-step mutation tool with no output schema, the description covers everything an agent needs: what gets destroyed, reversibility, permission/auth requirements, and the staging/approval protocol including the PIN-safety rule. Nothing material 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 description coverage is 100%, so all three parameters (mailbox, provider, workspace) are already documented in the schema, including the conditional 'only needed when...' guidance. The description adds no parameter-level detail 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?
States a specific verb+resource (disconnect a mailbox from a workspace) and immediately names the concrete effects: revokes the stored provider grant and deletes stored tokens. It is the only disconnect-style tool among the siblings, and the scope ('workspace you own') makes it 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?
Gives clear context for use and prerequisites: owners only, OAuth sign-in (no API keys), and the fact that the mailbox can be reconnected later from the dashboard. It does not explicitly name an alternative tool to compare against, but no close sibling alternative exists in the list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_duplicate_gmail_labelsFind duplicate Gmail labelsARead-onlyInspect
Find groups of user labels that share the same name (likely duplicates worth merging), within one mailbox.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful semantics about duplicate criteria and mailbox scoping, but says nothing about how groups are returned or how many, and no output schema exists to fill that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that leads with the action and resource and immediately pins down the duplicate criterion and scope. 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 finder with one fully-described parameter and clear annotations, the description supplies the essential semantics: what a duplicate is and what boundary (mailbox) applies. The absence of any output shape or result-size hint is a minor remaining gap given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, fully documented in the schema (100% coverage) including the list_authorized_mailboxes pointer. The description reinforces the 'within one mailbox' scope but adds no format or selection detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('find') plus resource ('duplicate Gmail labels') with a precise definition of what counts as a duplicate (groups of user labels sharing the same name) and the scope ('within one mailbox'). It does not explicitly name the sibling merge_duplicate_gmail_labels or list_gmail_labels to differentiate itself, but an agent can tell what it produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'likely duplicates worth merging' implies this is the discovery step preceding merge_duplicate_gmail_labels, but no explicit when-to-use, prerequisites, or named alternatives are given. Usage must be inferred 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.
find_duplicate_mail_foldersFind duplicate mail foldersARead-onlyInspect
Find folders that share a name within the same parent — likely duplicates worth merging. Folders with the same name under different parents are not reported, since that is usually deliberate.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe read-only, closed-world profile, so the bar is lower. The description still adds real behavioral substance by defining the matching rule and the deliberate exclusion, telling the agent exactly what will and will not appear in results — though it says nothing about result shape or size.
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, both earning their place: the first gives the rule and the motivation, the second the exclusion and its rationale. Front-loaded with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only detection tool with no output schema, the description covers what the agent needs to decide to call it and to interpret the result set. It could go slightly further by pointing at merge_mail_folders as the follow-up action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter and the schema fully documents it, including the email pattern and a pointer to list_authorized_mailboxes. The description adds nothing beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource (find duplicate mail folders) and precisely defines what counts as a duplicate: same name within the same parent. That definition is the strongest disambiguation possible, though it never names sibling alternatives like list_mail_folders or find_duplicate_gmail_labels.
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 context is clearly implied — 'likely duplicates worth merging' signals this is the discovery step preceding merge_mail_folders — and the description explicitly states a negative case (same name under different parents is not reported). It stops short of naming the merge tool or listing prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_google_calendar_busy_timesFind busy times on Google CalendarBRead-onlyInspect
Return the busy blocks across one or more calendars so a free slot can be proposed. Returns times only, never event titles.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| timeMax | No | ||
| timeMin | No | ||
| calendarIds | No | Calendars to check. Defaults to the primary calendar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds one useful behavioral fact beyond that: the output is times only and never exposes event titles, which matters for privacy/format expectations. It says nothing about pagination, time-range defaults, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the operation and its purpose, with zero filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does some of the return-value work by stating that only times are returned. But it leaves the timeMin/timeMax semantics and default range unspecified, which an agent needs in order to call this correctly for a scheduling query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: mailbox and calendarIds are documented (including the default to primary calendar), but timeMin and timeMax are bare strings with no format hint, and the description never mentions the time window at all. For a tool whose core query is a time range, the description fails to compensate for the undocumented half of the 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?
States a specific verb and resource ('Return the busy blocks across one or more calendars') and the second sentence implicitly separates it from event-listing siblings by declaring it returns times only, never titles. It stops short of naming list_google_calendar_events or find_outlook_calendar_busy_times explicitly, so the differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'so a free slot can be proposed' implies the scheduling/free-busy use case, which is genuine usage context. However, there is no explicit when-to-use-vs-alternative guidance (e.g., versus list_google_calendar_events or search_google_calendar_events) and no stated prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_outlook_calendar_busy_timesFind busy times on Outlook CalendarBRead-onlyInspect
Return the busy blocks on a calendar so a free slot can be proposed. Returns times only, never event titles.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| timeMax | No | ||
| timeMin | No | ||
| calendarId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds a genuinely useful behavioral fact beyond the annotations: the result is privacy-preserving, returning times only and never event titles. It does not, however, disclose default behavior when no range is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with what is returned and immediately qualified with what is not. Zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description is the only guide to results, yet it omits the time-window semantics that dominate this tool's four parameters (three undocumented). An agent cannot tell whether a range is required, optional, or defaulted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% – just mailbox is documented. timeMin, timeMax, and calendarId have no schema descriptions and the tool description says nothing about them, even though a time window is central to a busy-times query. The description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Return the busy blocks on a calendar") and clarifies the output nature (times only, not event titles), which separates it from list_outlook_calendar_events and search_outlook_calendar_events. It stops short of naming those siblings explicitly, so an agent must infer the contrast.
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?
"so a free slot can be proposed" gives an implied use case (availability/scheduling), which is more than nothing. However, it never states when to prefer this over listing or searching events, nor any prerequisites such as needing a time window.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agentmail_messageRead an AgentMail messageARead-onlyInspect
Read one message in full: its text body (HTML-only messages are converted to plain text) and its attachments — name, type, size and the attachmentId that read_agentmail_attachment takes. Get the message id from search_agentmail_messages.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Address of the connected AgentMail inbox to act on. Call list_authorized_mailboxes to see available options. | |
| maxChars | No | Truncate the body beyond this many characters (default 20000) | |
| messageId | Yes |
TDQS
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 genuinely new behavior: HTML-only messages are silently converted to plain text, and the attachment payload always includes the attachmentId needed by read_agentmail_attachment. It omits any note on truncation behavior, which lives 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?
Two sentences, both front-loaded with the payoff (full body + attachment metadata) followed by the id-retrieval hint. No filler, no restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the return contract, and it does — body text plus attachment fields. The one gap is that body truncation (maxChars, default 20000) is only discoverable via the schema, and no error behavior (missing message, wrong mailbox) is mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and messageId carries no schema description; the description compensates by telling the agent where to obtain the id from search_agentmail_messages. mailbox and maxChars are already documented in the schema, so no further gain is claimed there.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read one message in full') and enumerates exactly what comes back: text body plus attachment name, type, size and attachmentId. It also implicitly separates itself from get_agentmail_thread and search_agentmail_messages by naming the latter as the id source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to search_agentmail_messages to obtain the required messageId, which is actionable pre-call guidance. It does not, however, state when to prefer this over get_agentmail_thread (full thread vs single message), so the alternatives story is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agentmail_threadRead an AgentMail threadARead-onlyInspect
Read a whole conversation, oldest first within the page, with decoded bodies. Long threads come back newest page first; pass olderPageToken back as pageToken for the earlier messages. Get the thread id from search_agentmail_messages.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Address of the connected AgentMail inbox to act on. Call list_authorized_mailboxes to see available options. | |
| threadId | Yes | ||
| pageToken | No | ||
| maxCharsPerMessage | No | Per-message body budget (default 5000) |
TDQS
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 genuinely useful behavior beyond that: messages are ordered oldest-first within a page, long threads return newest page first, and pageToken is used to walk backwards. This ordering/pagination semantics is exactly the kind of trait annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core read action, then pagination mechanics, then the id source. 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 no output schema, the description carries the burden of describing returns, and it does cover decoded bodies and ordering. It stops short of describing the response shape (e.g., message list structure, pagination metadata fields), but for a read-only thread fetch with annotations covering safety, it 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 50%; mailbox and maxCharsPerMessage are documented in the schema, while threadId and pageToken are not. The description compensates well: it explains that olderPageToken should be passed back as pageToken and that threadId comes from search_agentmail_messages, giving the two undocumented parameters real 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?
States a specific verb and resource ('Read a whole conversation... with decoded bodies'), which distinguishes it from the single-message sibling get_agentmail_message by emphasizing the whole conversation. It does not name any sibling explicitly, so the differentiation is implicit rather than crisp.
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 routes the agent to search_agentmail_messages for obtaining the threadId and explains the paging workflow, which is useful usage context. However, it never states when to prefer this tool over get_agentmail_message or the Gmail/Outlook equivalents, leaving alternatives to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_excel_workbookGet a workbook's structureARead-onlyInspect
Read a workbook's shape without reading cells: its worksheets and, for each, the occupied range. Call this first to learn what sheets exist and how far the data reaches, then read from the one you want.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| workbookId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely non-redundant context: it is a metadata-only read that returns no cell values, which tells the agent it is cheap to call before deciding where to read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, front-loaded with the what and immediately followed by the why/when. Every clause 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?
Without an output schema, the description usefully summarizes the return shape (worksheets plus occupied ranges) and its role in the read workflow. Only minor gap is where workbookId comes from, which leaves it slightly short of fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: mailbox is documented (with a pointer to list_authorized_mailboxes) but workbookId has no schema description, and the description adds no format or provenance detail such as obtaining the ID from list_excel_workbooks. Baseline 3 applies since the description does not compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read), resource (workbook), and precise scope: 'shape without reading cells: its worksheets and, for each, the occupied range.' This cleanly distinguishes it from read_excel_range (reads cells) and list_excel_workbooks (lists workbooks) without needing to open another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Call this first ... then read from the one you want' gives explicit sequencing and the condition that selects this tool versus the range-reader. It stops short of naming read_excel_range and offers no when-not guidance, but the intended workflow is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gmail_messageRead a Gmail messageARead-onlyInspect
Read one message in full, including its decoded text body and its attachments — name, type, size and the attachmentId that read_gmail_attachment and save_gmail_attachment_to_drive take. HTML-only messages are converted to plain text. Get the message ID from search_gmail_messages.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| maxChars | No | Truncate the body beyond this many characters (default 20000) | |
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only profile, but the description adds real behavioral content: the body is decoded, HTML-only messages are down-converted to plain text, and attachments are returned as metadata with the attachmentId consumed by two named sibling tools. It does not mention auth requirements or attachment-size limits, but the added context is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action and scope, then behavior, then the prerequisite. Every clause either distinguishes the tool or changes how an agent calls it; nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-shape burden and does explain body and attachment fields. It omits other likely returned metadata (headers, subject, labels), which is a minor gap for a single-message read.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and messageId has no schema description at all; the description compensates by explaining where that ID comes from. maxChars and mailbox are covered by the schema, so the description's remaining contribution is the attachmentId/parameter linkage.
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?
"Read one message in full, including its decoded text body and its attachments" names a specific verb, resource and scope, and implicitly separates it from get_gmail_thread (whole thread) and list_messages (envelopes). An agent can identify the right tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear workflow precondition: get the message ID from search_gmail_messages, which tells the agent this is the step after a search. It does not state when to prefer get_gmail_thread or get_outlook_message instead, so no explicit exclusion is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gmail_threadRead a Gmail threadARead-onlyInspect
Read every message in a conversation, oldest first, with decoded bodies. Use this instead of repeated get_gmail_message calls when you need the whole exchange. Get the thread ID from search_gmail_messages.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| threadId | Yes | ||
| maxCharsPerMessage | No | Per-message body budget (default 5000) |
TDQS
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 adds genuinely behavioral detail not in the annotations — chronological ordering and decoded message bodies. It does not disclose pagination, thread size limits, or truncation behavior, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the capability, then the alternative, then the prerequisite. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-shape burden and does convey ordering, completeness ('every message'), and decoded bodies. Gaps remain around output size, truncation when maxCharsPerMessage binds, and behavior on very long threads, but it is sufficient to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: mailbox and maxCharsPerMessage are documented in the schema, but threadId has no schema description. The description compensates by naming the exact source of threadId (search_gmail_messages), which is the one undocumented parameter that would otherwise cause trial and error.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Read every message in a conversation') with scope details (oldest first, decoded bodies), and distinguishes itself from the per-message sibling get_gmail_message and the analogous get_outlook_conversation. An agent can pick this over its nearest neighbor without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative to avoid ('Use this instead of repeated get_gmail_message calls') and the condition that selects it ('when you need the whole exchange'). It also tells the agent where the required threadId comes from (search_gmail_messages), closing the loop on invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_google_calendar_eventGet a Google Calendar eventBRead-onlyInspect
Read one event in full, including the guest list with each guest's address and whether they have accepted.
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| calendarId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is a safe read operation (readOnlyHint=true, destructiveHint=false), so the safety profile is covered. The description usefully discloses that the response includes the guest list with addresses and acceptance status, which is real added context given no output schema, but it says nothing about auth scope, permissions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the key differentiator (single, full event) comes first and the extra return detail follows. Efficient, though it leans slightly toward describing output rather than splitting purpose and usage.
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 no output schema, the description partly carries the return-shape burden by mentioning the guest list and RSVP status. However, two of three parameters are unexplained and there is no routing guidance, leaving meaningful gaps for a tool that must be called with a specific eventId and calendarId.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% — just 'mailbox' is documented (with a pointer to list_authorized_mailboxes). 'eventId' and 'calendarId' are undocumented in both schema and description, and since the coverage is low the description needed to compensate but does not mention either parameter at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Read one event in full" gives a specific verb (read) and resource (a single calendar event), and the detail about the guest list sharpens what "in full" means. It implicitly distinguishes itself from list/search siblings by emphasizing a single event, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by "one event" versus the existence of list_google_calendar_events and search_google_calendar_events. There is no explicit when-to-use guidance, no statement of prerequisites (e.g. needing an eventId from a list/search call), and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_google_spreadsheetGet a spreadsheet's structureARead-onlyInspect
Read a spreadsheet's shape without reading any cells: its tabs, their sizes, and any named ranges. Call this first to learn what tabs exist, then read a range from the one you want.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| spreadsheetId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, non-destructive, and closed-world, so the safety profile is covered. The description adds genuine behavioral context by stressing the metadata-only, cell-free nature of the read, which implies a small response and no data exposure. It doesn't discuss auth or limits, but the mailbox schema parameter covers auth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero filler, with the scope-defining constraint ('without reading any cells') front-loaded before the workflow guidance. Every clause 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?
With no output schema, the description usefully enumerates the return contents (tabs, sizes, named ranges), which is the key missing piece an agent needs. Auth is handled by the mailbox parameter description. Minor gaps remain around response limits or behavior on invalid IDs, but the definition is sufficient to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: mailbox is fully documented in the schema (including the list_authorized_mailboxes pointer), while spreadsheetId carries no schema description. The description adds nothing about either parameter, and spreadsheetId's format is only inferable from the tool name. 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?
States a specific verb+resource (read a spreadsheet's structure) and pinpoints the returned payload: tabs, their sizes, named ranges. The phrase 'without reading any cells' cleanly distinguishes it from the sibling read_google_sheet_range, so an agent can pick it apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Call this first to learn what tabs exist, then read a range from the one you want' gives explicit sequencing with the alternative tool. It states both when to use it (before reading data) and what the next step is, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_google_taskGet a Google taskBRead-onlyInspect
Full detail for one task, including its notes and any parent task.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | ||
| taskId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description usefully discloses the depth of the returned payload (notes, parent task), but says nothing about behavior when a taskId/listId is invalid or not found. Adds some value over annotations, hence a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the core result front-loaded and no filler. Every phrase (one task, notes, parent task) carries 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?
There is no output schema, and the description partly compensates by naming the notable returned fields. However, with three required parameters and two of them undocumented, an agent lacks guidance on sourcing listId/taskId, leaving a real gap for a lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only mailbox is documented, pointing at list_authorized_mailboxes). Neither listId nor taskId is explained in the schema or the description, and the description does not compensate — it never says how to obtain a listId or taskId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Full detail for one task') and adds the distinguishing scope that it returns notes and parent task, which separates it from list_google_tasks. It does not name a sibling explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives such as list_google_tasks (to find the task) or update/complete_google_task (for mutations). The agent must infer that this is the single-item read from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_outlook_calendar_eventGet an Outlook Calendar eventBRead-onlyInspect
Read one event in full, including the guest list with each guest's address and whether they have accepted.
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description goes beyond that by disclosing the payload detail that the call returns — the guest list with each guest's address and acceptance status — which is genuinely useful since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence, front-loaded with the verb and scope, with no filler. It is efficiently sized, though it spends its only sentence on return content rather than routing or parameter 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?
For a simple two-parameter read tool whose annotations cover the safety profile, this is minimally adequate, and the return-content note helps in the absence of an output schema. It still omits how an eventId is sourced and says nothing about the mailbox requirement beyond what the schema already states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: mailbox is documented in the schema but eventId has no description at all. The description never mentions either parameter, so it does nothing to compensate for the undocumented eventId (e.g. its format or where to obtain it).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Read one event in full") and scopes it to a single event, which distinguishes it from the list/search siblings. It doesn't explicitly name those siblings, but the singular scope makes the distinction clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implicit: reading one event in full implies you use this when you need complete detail for a single known event rather than a listing. There is no explicit when-to-use statement, no mention of the list/search alternatives, and no note that an eventId must first be obtained from list_outlook_calendar_events or search_outlook_calendar_events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_outlook_conversationRead an Outlook conversationARead-onlyInspect
Read every message in a conversation, oldest first, with bodies. Use this instead of repeated get_outlook_message calls when you need the whole exchange. Get the conversationId from search_outlook_messages.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| conversationId | Yes | ||
| maxCharsPerMessage | No | Per-message body budget (default 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds genuine behavioral context beyond annotations: messages come back oldest-first and include bodies. It stops short of explaining truncation behavior or how maxCharsPerMessage affects 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?
Three tight sentences with the core action and ordering front-loaded, and no filler. The alternative-tool and prerequisite guidance each earn their 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?
No output schema exists, and the description covers ordering, body inclusion, the alternative to avoid, and the conversationId source. Minor remaining gap is explicit truncation/pagination behavior, though the maxCharsPerMessage default in the schema implies per-message budgeting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%; mailbox and maxCharsPerMessage are documented in the schema, but conversationId has no schema description. The description compensates by explaining where to obtain the conversationId (search_outlook_messages), adding meaning the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (Outlook conversation), and specifies the scope: every message in the conversation, oldest first, with bodies. It also explicitly distinguishes itself from the sibling get_outlook_message, so an agent can select between them without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Directly states when to use it ('when you need the whole exchange') and names the alternative it replaces ('repeated get_outlook_message calls'). It also gives the prerequisite for obtaining the required conversationId from search_outlook_messages.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_outlook_messageRead an Outlook messageARead-onlyInspect
Read one message in full, including its body text and its attachments — name, type, size, kind and the attachmentId that read_outlook_attachment and save_outlook_attachment_to_onedrive take. HTML messages are converted to plain text. Get the message ID from search_outlook_messages or list_messages.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| maxChars | No | Truncate the body beyond this many characters (default 20000) | |
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds genuine behavioral context not in structured fields: HTML bodies are converted to plain text, and attachments are returned with name/type/size/kind plus an attachmentId consumable by read_outlook_attachment and save_outlook_attachment_to_onedrive. It omits truncation behavior, which the schema covers instead.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the verb and payload, then behavioral detail, then the ID sourcing hint. The em-dash enumeration of attachment fields is dense but each item earns its place; nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so reasonably: body text, plain-text conversion, and the attachment metadata shape including the reusable attachmentId. It could mention the maxChars truncation default in prose, but that is already in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: mailbox and maxChars are documented, but messageId has no schema description. The description compensates directly for that gap by telling the agent where message IDs come from (search_outlook_messages or list_messages), which is the key semantic missing from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read one message in full') and scopes it precisely to a single message, distinguishing it from get_outlook_conversation and the gmail/agentmail equivalents in the sibling list. The inclusion of body and attachment metadata makes the payload scope 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?
Explicitly routes the agent to the prerequisite tools: 'Get the message ID from search_outlook_messages or list_messages,' and names the downstream consumers of the attachmentId. It does not state when NOT to use it (e.g., use get_outlook_conversation for a whole thread), so it falls just short of the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_outlook_taskRead a To Do taskARead-onlyInspect
Read one task in full, including its notes and checklist items (subtasks).
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | ||
| taskId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuine value beyond them by disclosing the depth of the payload ('in full, including its notes and checklist items (subtasks)'), which tells the agent what content comes back. It stops short of noting auth/permission needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the core action and no wasted words. The parenthetical clarifies 'checklist items' economically.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations carrying the safety profile and no output schema, the description usefully explains the returned content. However, the two undocumented identifier parameters leave an agent without guidance on supplying listId/taskId, so the definition is only minimally complete for a 3-param required tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% – listId and taskId are entirely undocumented in the schema, and the description says nothing about any parameter. With low coverage the description should compensate for the two bare required params (e.g. how to obtain listId/taskId), 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?
States a specific verb (Read) and resource (one task) and scopes it as 'in full'. The 'one task' framing implicitly distinguishes it from list_outlook_tasks, but it never names a sibling or provider, so differentiation is left partly to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'Read one task' – the agent must infer this is the single-item lookup versus list_outlook_tasks or get_google_task. There is no explicit when-to-use, when-not-to-use, or named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_skillGet a skill as an installable fileARead-onlyInspect
Fetch one of this workspace's skills as a SKILL.md file. Returns the file's contents — write it yourself to a skills directory to install it, at the path given in the reply; this tool cannot write files. Once installed the skill is available as a command without restarting. Use list_skills for the available slugs.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The skill's slug, as returned by list_skills. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only/non-destructive, but the description adds genuinely useful behavior: it returns file contents, cannot write files, requires the caller to write at a path given in the reply, and that the installed skill becomes a command without restarting. That is well beyond the annotation 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?
Three tight sentences, front-loaded with the core action and its file nature, then the post-call workflow, then the sibling pointer. No sentence is 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?
With no output schema, the description carries the return-value burden and does so: file contents plus the path delivered in the reply. Combined with the install/restart behavior, nothing an agent needs to call and use it correctly 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% and the single slug parameter is fully documented in the schema. The description only echoes the list_skills provenance already in the schema, adding no new format or constraint detail. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Fetch) plus resource (one of this workspace's skills) and output form (a SKILL.md file). It is clearly distinct from list_skills and update_skill, so an agent can pick it without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It routes the agent to list_skills for slugs and explains the install workflow that follows the call. It stops short of an explicit when-not-to-use rule, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invite_memberInvite a memberADestructiveInspect
Invite someone to a workspace you own by email, as a member, admin or owner. Once approved, Higgs Hub emails them the invitation link; their agent follows the workspace's default access role until an owner moves them. This only stages a request: the owner opens the link in their browser, reviews it, and approves it there with their agent PIN. Never ask for or accept the PIN in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Workspace role: member (default), admin, or owner. | member |
| Yes | The address to invite. | ||
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a write with destructiveHint=true and openWorldHint=true, and the description adds substantial context beyond them: the two-step asynchronous approval flow, that the invitee's agent inherits the workspace default access role until an owner changes it, and a hard security constraint against handling the approval PIN in chat. That is exactly the behavioral detail an agent needs before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and scope, then the workflow and the PIN warning. Every sentence carries information, though the semicolon-joined sentence about the invitation link and default access role is slightly dense and could be split.
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 3-parameter mutation tool with full schema coverage, rich annotations and no output schema, the description covers the action, the approval workflow and the security boundary well. It stops short of telling the agent how the staged request is tracked (the sibling workspace_request_status exists) or what a successful call yields, 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%, so every parameter including the role enum and the workspace lookup is already documented in the schema. The description's phrase 'by email, as a member, admin or owner' merely restates email+role, adding no syntax, format, or edge-case guidance beyond the structured fields. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb + resource + scope: 'Invite someone to a workspace you own by email, as a member, admin or owner.' The ownership precondition and role enumeration make it immediately distinguishable from siblings like add member-adjacent tools (set_member_workspace_role, remove_member, cancel_invitation, assign_access_role).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the operating context clearly: this stages a request, the owner approves it in a browser with their PIN, and the PIN must never be solicited in chat. It does not explicitly contrast with siblings (e.g. use set_member_workspace_role for an existing member, or cancel_invitation to revoke), so no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_access_rolesList access rolesARead-onlyInspect
The access roles of a workspace you own: what each allows an agent to do (the eight capabilities), who follows it, and how it narrows each mailbox. A mailbox not listed under a role is read & write, all folders, all calendars for that role. Owners only.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, non-destructive, non-open-world read. The description adds domain semantics the annotations cannot: the eight capabilities model, that a mailbox omitted from a role defaults to read & write across all folders and calendars, and that ownership is required. That is meaningful behavioral context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the returned content and efficiently packed with domain detail; the default-mailbox rule earns its place. The opening sentence is a dense colon-list, but nothing is wasted and there is 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?
With no output schema, the description must convey the return shape, and it does so in prose (capabilities per role, followers, mailbox narrowing), which is adequate for a simple read tool. The safety profile is covered by annotations. Only the absence of sibling routing keeps it from a 5.
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?
One parameter with 100% schema description coverage, so the schema already explains that 'workspace' takes a name or id and is only needed when owning multiple workspaces. The description adds nothing about the parameter, which matches the baseline 3 for a fully documented single-param schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (access roles of a workspace the caller owns) and even enumerates what each returned role contains: capabilities, followers, and mailbox narrowing. That is well beyond a tautology. It does not, however, explicitly contrast itself with siblings such as list_workspace_members or create_access_role, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Owners only" is an explicit precondition, which is genuine usage guidance. But there is no statement of when to reach for this versus list_workspaces (to resolve a workspace) or the access-role mutation tools, and no exclusions. Usage is implied rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_authorized_mailboxesList connected mailboxesARead-onlyInspect
List every mailbox (Gmail/Google Workspace, Microsoft/Outlook and AgentMail) available to you in the workspaces you belong to, with provider, status and your access level. access is 'write' (everything your switches allow) or 'read' (search and read tools only — anything that changes the mailbox is refused). folders says whether the file tools (Drive, OneDrive, Sheets, Excel) are limited to certain folders for you: files outside them are not returned by list and search and cannot be opened, moved, shared or edited, and creating a file needs a parent folder you can reach. calendars does the same for the calendar tools: calendars outside your rule are not listed and cannot be read or written. AgentMail inboxes have no files or calendars, so they carry neither. Mailboxes you have no access to are not listed. Mailboxes with status 'active' can be used by the other tools. If nothing is connected yet, the reply says how to connect a mailbox: pass those steps on to the person.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint/destructiveHint/openWorldHint, but the description adds real behavioral depth: the meaning of access='write' vs 'read' (write-changing tools refused), the folder restriction semantics for file tools, the equivalent calendar restriction, AgentMail having neither, and the empty-state guidance. This is exactly the context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then progressively details the returned fields and edge cases in tight sentences. It is long but nearly every sentence conveys distinct semantics; a minor tightening of the folder/calendar clauses is possible.
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 no output schema, the description still explains what is returned (provider, status, access level, folder/calendar restrictions) and how to interpret each field, plus the no-connection fallback. An agent has everything needed to call it and act on the result.
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 takes no parameters, so the baseline is 4; the schema is empty and there is nothing further the description could add about inputs. Instead it documents the semantics of returned fields (access, folders, calendars), which is a bonus rather than a parameter gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource (list every mailbox) and enumerates the providers covered (Gmail/Workspace, Microsoft/Outlook, AgentMail). It clearly separates itself from siblings like list_workspaces, list_mail_folders and list_messages by scoping to mailbox-level authorization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage context: only mailboxes with status 'active' can be used by other tools, mailboxes with no access are omitted, and it tells the agent what to do when nothing is connected. It stops short of explicitly stating it should be called first to discover available mailboxes before invoking provider-specific tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_excel_workbooksList Excel workbooksARead-onlyInspect
Find .xlsx workbooks in the user's OneDrive, most recently changed first. Returns names and ids only — no cell data. Pass a query to search by name. Workbooks outside the folders you have access to are not returned.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds meaningful behavior beyond that: the 'names and ids only, no cell data' payload boundary, the most-recently-changed-first ordering, and the folder-permission scoping on 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?
Four short sentences, each carrying distinct information (location, ordering, return payload, query mode, access limit), with the core purpose front-loaded. 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 no output schema, the description correctly specifies the return (names and ids) and the sort order, and it discloses the permission-based result truncation. For a simple read-only lister this is nearly complete; only explicit sibling routing is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% — the required 'mailbox' param is documented in-schema, but 'query' is bare. The description compensates by explaining query semantics ('search by name'), adding real meaning the schema lacks; the mailbox-to-list_authorized_mailboxes path is already covered by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find .xlsx workbooks in the user's OneDrive') with scope, ordering, and output shape. 'Returns names and ids only — no cell data' cleanly separates it from get_excel_workbook, which retrieves workbook contents.
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?
'Pass a query to search by name' implies the search-mode usage, and the access-scope note implies when results are limited. However, it never says when to use this versus list_onedrive_items, search_onedrive_items, or list_google_spreadsheets, so the agent must infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gdrive_itemsList Google Drive itemsARead-onlyInspect
List files and folders inside a Google Drive folder (defaults to My Drive's root), for one account. Items outside the folders you have access to are not returned.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | No | Folder item ID, or omit / "root" for My Drive root | |
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds real behavioral value on top: the default target is My Drive's root, the operation is scoped to a single account, and results are permission-filtered. It omits pagination/result-limit behavior, so it stops short of 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the primary action and its default are front-loaded, and the access caveat follows as a short trailing qualifier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description covers what is listed, the default scope, and the visibility constraint. It would be fully complete with a note on result size/pagination, which matters for folder listing, but nothing is actively misleading.
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 both parameters are already fully documented, including the 'root' sentinel for itemId and the list_authorized_mailboxes pointer for mailbox. The description reinforces the root default and the one-account scoping but adds no format or syntax detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (List) plus resource (files and folders in a Google Drive folder) and explicit scope (one folder, one account, defaulting to My Drive root). It distinguishes itself from write siblings like create_gdrive_folder and delete_gdrive_item, but never mentions search_gdrive_items or list_gdrive_permissions, so the boundary against the closest read siblings must be inferred.
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 use case (enumerate a folder's contents) and reveals the access boundary that 'items outside the folders you have access to are not returned,' which is useful context. However, it gives no explicit when-to-use versus search_gdrive_items for query-driven lookups, nor prerequisites beyond the mailbox being connected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gdrive_permissionsSee who has access to a Drive fileARead-onlyInspect
List everyone with access to a file, including grants made outside Higgs Hub, with the permissionId needed to revoke one.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/non-destructive/openWorld=false, so the safety profile is covered. The description usefully adds that external grants (outside Higgs Hub) are included and that returned permissionId values are what you pass to a revoke call. It doesn't mention pagination or result ordering, but adds real context 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?
A single front-loaded sentence where each clause earns its place: the core action, the external-grant scope, and the permissionId payoff. No filler or redundancy, though it is dense enough that it reads as one packed clause chain.
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 two-parameter read-only tool with no output schema, the description covers purpose plus the key output payoff (permissionId) and the non-obvious inclusion of external grants. The notable gap is any explanation of the itemId parameter, but overall it is adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: the mailbox parameter is documented (with a pointer to list_authorized_mailboxes) but itemId has no description at all. The description only vaguely implies 'a file' and says nothing that disambiguates the itemId identifier or its expected format, so it fails to compensate for the undocumented 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?
States a specific verb and resource ('List everyone with access to a file') and adds scope ('including grants made outside Higgs Hub'), which clearly separates it from sibling mutations like unshare_gdrive_item or share_gdrive_item. It does not name a sibling for contrast, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: you call this to audit access before revoking, hinted by 'with the permissionId needed to revoke one'. There is no explicit when-to-use/when-not or direction to the parallel list_onedrive_permissions, so the guidance remains inferential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gmail_filtersList inbox auto-filing filtersARead-onlyInspect
List the Gmail filters currently used to auto-file incoming mail, for one mailbox.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is fully communicated. The description adds only the mailbox scoping and the auto-filing purpose; it says nothing about pagination, filter count limits, or return shape. With annotations carrying the safety profile, a 3 is fitting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the verb and resource with zero filler. Nothing is wasted or buried.
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, read-only list tool with full schema coverage and no output schema, the description plus annotations plus schema are nearly complete. The remaining gap is the absence of any mention of what the returned list looks like or whether results are paginated.
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 mailbox parameter is fully documented in the schema, including the pointer to list_authorized_mailboxes. The description contributes nothing about the parameter beyond what the schema states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('List') and a specific resource ('Gmail filters currently used to auto-file incoming mail'), scoped to one mailbox. It pairs naturally with siblings like create_gmail_filter and delete_gmail_filter without overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'currently used to auto-file incoming mail' implies a read-only inspection use, but the description never says when to choose this over the related list_inbox_rules or list_gmail_labels tools. No explicit exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gmail_labelsList Gmail labelsBRead-onlyInspect
List every label in one mailbox, with message counts. Labels are Gmail's equivalent of folders.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds only the note that counts are returned and the labels-as-folders framing, which is mild context beyond the annotations but not deep behavioral disclosure (no pagination, no ordering).
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, zero waste, with the core action and scope front-loaded before the explanatory aside about folders.
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 a fully documented single parameter and no output schema, the description is nearly sufficient: it signals the return payload includes message counts. It could still mention ordering or empty-mailbox behavior, but nothing essential to invocation 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 description coverage is 100% and the single 'mailbox' parameter is fully documented in the schema, including how to discover valid values via list_authorized_mailboxes. The description's 'one mailbox' phrasing echoes the schema rather than adding new semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List every label') and scopes it to 'one mailbox', which an agent can act on directly. It does not explicitly distinguish itself from adjacent siblings such as list_mail_folders, list_gmail_filters, or find_duplicate_gmail_labels, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives (e.g. find_duplicate_gmail_labels or list_gmail_filters). The mailbox requirement is only discoverable from the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_google_calendar_eventsList Google Calendar eventsARead-onlyInspect
List events in a time window, newest first. Recurring events are expanded into the individual occurrences that fall in the window, so a weekly meeting appears on each of its dates. Defaults to the next 7 days of the primary calendar.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max events to return (default 50, cap 250) | |
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| timeMax | No | Window end, ISO 8601. Defaults to 7 days after the start | |
| timeMin | No | Window start, ISO 8601. Defaults to now | |
| calendarId | No | Defaults to the primary calendar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only profile, and the description adds real behavioral context beyond them: recurring events are expanded into per-date occurrences (a non-obvious expansion rule) and results are ordered newest first. It stops short of noting pagination or the 250 cap behavior, which lives 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?
Three tight sentences, front-loaded with the core verb and ordering, then the recurring-expansion caveat, then defaults. No filler; each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with full schema coverage and annotations covering safety, the description is nearly complete; its most valuable non-obvious fact (recurring expansion) is captured. Minor gap: no note on return shape or how limit/pagination interact, but with no output schema that is a small omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents limit, mailbox, timeMin/timeMax and calendarId. The description restates the default window and primary calendar rather than adding syntax or format detail. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List events') plus scope ('in a time window') and ordering ('newest first'), so the agent knows exactly what it returns. It does not differentiate itself from the sibling search_google_calendar_events, which is the one ambiguity that keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the default window ('next 7 days of the primary calendar'), but there is no explicit when-to-use guidance and no mention of search_google_calendar_events as the alternative for filtered/query-based lookups. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_google_calendarsList Google calendarsARead-onlyInspect
List the calendars on one Google account. Start here to get the calendarId the event tools take — omit it and they use the primary calendar. Calendars outside the ones you have access to are not returned.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: results are limited to calendars the caller has access to, and the returned calendarId feeds the event tools. It does not describe ordering or pagination, keeping it out of 5 territory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action, then the reason to call it and the access-scope caveat. No filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only list tool with no output schema, the description covers what is listed, the access limitation, and how the result is consumed downstream. Minor gaps (ordering, whether pagination applies) remain but are not blocking.
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 single mailbox parameter is fully documented in-schema (including the list_authorized_mailboxes pointer). The description only implicitly echoes the account scoping via "on one Google account" and adds no format or constraint detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (Google calendars) scoped to one Google account, which cleanly separates it from list_outlook_calendars and create_google_calendar. The agent can identify the tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Start here to get the calendarId the event tools take" gives explicit when-to-use guidance and routing to downstream event tools, and the clause about omitting calendarId explains the default (primary calendar). It stops short of naming a specific alternative tool to call instead, so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_google_spreadsheetsList Google Sheets spreadsheetsARead-onlyInspect
Find spreadsheets in the user's Drive, most recently changed first. Returns names and ids only — no cell data. Pass a query to narrow by name. Spreadsheets outside the folders you have access to are not returned, so the list may be shorter than the page size when folder rules apply.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real context beyond that: result ordering (most recently changed first), the exact return shape (names and ids, no cell data), and the access-scoping rule that explains why results can be fewer than expected.
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?
Four short sentences, purpose front-loaded, each adding distinct information (scope, ordering, return shape, filtering, access caveat). No restatement of the title or name.
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 no output schema, the description correctly carries the return-value burden (names and ids only, ordering). It is nearly complete, though the reference to 'page size' hints at pagination that has no corresponding parameter in the schema, leaving a small ambiguity about result limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: mailbox is documented in-schema (with a pointer to list_authorized_mailboxes) but query has no schema description. The description compensates by explaining what query does ('narrow by name'), so both parameters now carry usable 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?
States a specific verb and resource ('Find spreadsheets in the user's Drive') with scope (most recently changed first). The clause 'Returns names and ids only — no cell data' cleanly separates it from get_google_spreadsheet and read_google_sheet_range, so an agent can place it without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one concrete usage tip ('Pass a query to narrow by name') and a caveat about folder scoping, which is implied guidance. However, it never names an alternative tool (e.g. list_gdrive_items or get_google_spreadsheet) or states when-not-to-use, so routing still requires inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_google_task_listsList Google Tasks listsARead-onlyInspect
List the user's Google Tasks lists. Start here — every other task tool needs a listId.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds useful context about being the starting point for the task workflow, but says nothing about what a read-only list returns, ordering, or behavior when no lists exist. Adequate but thin beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, with the routing hint ('start here') front-loaded immediately after the purpose statement. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only listing tool with annotations covering safety, the description plus schema is nearly self-sufficient, and the downstream listId dependency is called out. The only gap is that with no output schema, the agent isn't told what a list entry looks like (id/title), which matters given the stated dependency.
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?
One parameter with 100% schema description coverage; the mailbox field is fully documented in the schema including a pointer to list_authorized_mailboxes. The description adds no meaning 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?
States a specific verb and resource ('List the user's Google Tasks lists'), which cleanly separates it from list_google_tasks (tasks inside a list) and list_outlook_task_lists (the Outlook equivalent) in the sibling set. An agent can pick it without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Start here — every other task tool needs a listId' gives clear sequencing context and implies a prerequisite relationship with create_google_task/list_google_tasks. It stops short of naming those alternatives explicitly or stating exclusions, but the intended entry point is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_google_tasksList tasks in a Google Tasks listBRead-onlyInspect
List the tasks in one list. Completed tasks are left out unless includeCompleted is true, so what comes back is what is still outstanding.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| listId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| includeCompleted | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false and closed-world scope, so the safety profile is covered. The description adds real value beyond that by disclosing the default filtering rule: completed tasks are omitted unless includeCompleted is true. It omits pagination/limit behavior, so it is not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core action and immediately followed by the one non-obvious default. No filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema this is close, but with 25% schema coverage the description should at least note the limit/pagination behavior and that listId is sourced from list_google_task_lists. The includeCompleted rule is covered; the remaining gaps keep it at minimum viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only mailbox is documented), so the description carries the burden. It explains includeCompleted's semantics but says nothing about limit, listId, or where listId comes from, leaving half the surface undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the tasks in one list') and scopes it to a single list, which separates it from list_google_task_lists and get_google_task. It does not explicitly name those siblings or contrast with them, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given; the agent is not told when to prefer this over get_google_task or list_outlook_tasks. The only implied routing is the completed-filter default, which is 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.
list_inbox_rulesList inbox rulesBRead-onlyInspect
List the inbox rules that auto-file incoming mail for one mailbox.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only the meaning of 'auto-file incoming mail'; it says nothing about return shape, ordering, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb, with zero filler. Nothing in it is redundant or padding.
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, read-only listing tool with full schema coverage and clear annotations, the description is largely sufficient. Only a note on how many rules return or the result contents is missing, which is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the mail schema field already documents the email format and points to list_authorized_mailboxes. 'For one mailbox' reinforces the single-mailbox scope, but adds no syntax or semantics 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?
Clear verb+resource (list/inbox rules) with a functional gloss ('auto-file incoming mail') that explains what an inbox rule actually does. It does not explicitly distinguish itself from nearby siblings like list_gmail_filters, list_mail_folders, or create_inbox_rule, keeping it out of the top band.
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 no when-to-use guidance, no prerequisites, and no alternatives despite sitting among many listing tools (list_gmail_filters, list_mail_folders). The 'for one mailbox' phrase implies scope but is not actionable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_mail_foldersList mail foldersARead-onlyInspect
List every mail folder in one mailbox, including nested folders, with item counts and a full path like "Clients/Acme". Folders can be nested.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| includeHidden | No | Include folders Outlook hides by default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description usefully discloses return content (item counts, full path format), which annotations cannot. However it says nothing about ordering, result size, or whether default-hidden folders are excluded, leaving gaps 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?
Two short sentences with the key scope detail front-loaded. The trailing 'Folders can be nested' restates the earlier 'including nested folders', which is mild padding but not damaging.
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 listing tool with no output schema, the description conveys enough about what comes back (folders, nesting, counts, paths) to call it correctly. Missing only minor details like ordering or pagination 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 description coverage is 100%, so both parameters are already documented, including the pointer to list_authorized_mailboxes. The description adds nothing about the mailbox parameter or the includeHidden flag, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List every mail folder in one mailbox') and adds useful scope detail: nested folders, item counts, and the path format ('Clients/Acme'). It does not explicitly differentiate itself from siblings like list_gmail_labels or find_duplicate_mail_folders, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the discovery step before create_mail_folder, rename_mail_folder, or move_messages. There is no explicit when-to-use, when-not-to-use, or named alternative in the description (the pointer to list_authorized_mailboxes lives in the schema, not here).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_messagesList messages in a folderARead-onlyInspect
List messages in one folder — id, subject, sender, received date and read state only, never message bodies. Use this to get the message IDs that move_messages needs.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max messages to return (default 50, cap 200) | |
| search | No | Search within the folder: plain keywords, from:/subject: etc., exact phrases in double quotes. Don't escape anything. | |
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| folderId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower, and the description adds real value on top: 'never message bodies' explicitly bounds the payload, which the annotations do not express. It still says nothing about pagination behavior or truncation beyond the limit parameter's cap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The scope and field list come first and the move_messages routing pointer second, so the most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly takes on the burden of describing the return shape (id, subject, sender, received date, read state, no bodies), which is what an agent needs to decide whether a follow-up get_* call is required. The remaining gap is the undocumented folderId source and no clarification of overlap with search_outlook_messages.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, with mailbox and search well documented in-schema and folderId left bare. The description only gestures at folder scoping ('in one folder') and adds no syntax, format, or lookup path for folderId, so it does not compensate for the gap. Baseline 3 is appropriate when the schema carries most of the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List messages in one folder') and enumerates the returned fields, which clearly separates it from body-fetching siblings like get_outlook_message. It does not, however, distinguish itself from search_outlook_messages, which by name appears to overlap heavily with this tool's folder-scoped search parameter.
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?
'Use this to get the message IDs that move_messages needs' gives explicit downstream context and names the consuming tool, which is genuinely useful routing information. It stops short of when-not guidance, e.g. it never says whether to prefer this or search_outlook_messages, nor that folderId must first come from list_mail_folders.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_onedrive_itemsList OneDrive itemsARead-onlyInspect
List files and folders inside a OneDrive folder. Omit itemId (or pass "root") for the drive root. Items outside the folders you have access to are not returned.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | No | Folder item ID, or omit / "root" for the drive root | |
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds a genuine constraint beyond that — items outside accessible folders are silently not returned — but says nothing about pagination, result limits, or ordering, which matter for a listing 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?
Three short sentences, front-loaded with the action and resource, then the root-targeting rule, then the access caveat. Nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does say what comes back (files and folders) and where from, and annotations carry the safety profile. The remaining gap is pagination/volume behavior for potentially large folder listings, which is minor but not covered elsewhere.
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 restates the itemId root behavior that the schema already documents and adds nothing new about mailbox or itemId semantics; 'root' as a literal value is the only detail echoed in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list files and folders) and pins the scope to a single OneDrive folder, so an agent can distinguish it from create/rename/move/delete_onedrive_item siblings. It does not, however, name search_onedrive_items as the alternative for content-based lookup, so the boundary against that sibling is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the itemId/"root" behavior for targeting the drive root, which is useful invocation context, but it gives no explicit when-to-use guidance such as 'use this to browse a folder; use search_onedrive_items to find files by name or content'. Usage is therefore implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_onedrive_permissionsSee who has access to a OneDrive fileARead-onlyInspect
List everyone with access to an item, including any sharing links that already exist, with the permissionId needed to revoke one.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, destructiveHint=false, so safety is covered. The description adds that sharing links are returned and that the response carries a permissionId usable for revocation, but says nothing about pagination, ownership filtering, or permissions required to call 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?
A single tight sentence with no filler, front-loaded on the core action. 'an item' is slightly vague (file vs folder), but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a read tool whose annotations carry the safety profile and which has no output schema, and it does characterize the return (people, sharing links, permissionId). However the undocumented itemId parameter and absence of any pagination or scoping notes leave a real gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: 'mailbox' is documented in the schema (with a pointer to list_authorized_mailboxes) while 'itemId' has no description at all. The description adds no parameter meaning, so it fails to compensate for the undocumented itemId (file vs folder, drive-qualified ID expectations).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List everyone with access to an item') plus scope ('including any sharing links that already exist') and even flags a downstream field (permissionId). This is clearly distinguishable from list_onedrive_items (files) and list_gdrive_permissions (different service).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the mention of 'the permissionId needed to revoke one' hints that this is the lookup step before unshare_onedrive_item. No explicit when-to-use, prerequisites, or named alternative is given, so the agent must infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_outlook_calendar_eventsList Outlook Calendar eventsARead-onlyInspect
List events in a time window. Recurring events are expanded into the individual occurrences that fall in the window. Defaults to the next 7 days of the default calendar.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max events to return (default 50, cap 250) | |
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| timeMax | No | Window end, ISO 8601. Defaults to 7 days after the start | |
| timeMin | No | Window start, ISO 8601. Defaults to now | |
| calendarId | No | Defaults to the account's default calendar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only, non-destructive, closed-world profile, and the description adds genuinely useful behavior: recurring events are expanded into individual occurrences within the window, and the default window is the next 7 days. It stops short of describing result ordering, pagination behavior, or timezone handling for the ISO timestamps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with zero filler: purpose first, then the recurrence-expansion behavior, then the default window. Each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with full annotation coverage and a fully documented schema, the description covers the essentials. The lack of an output schema is acceptable, but return ordering and pagination expectations (limit cap 250) are left entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter including limit, mailbox, timeMin/timeMax and calendarId is already documented in the schema. The description restates the default window but adds no syntax or format detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List events') plus scope ('in a time window'), which is more precise than a bare restatement of the name. It does not, however, differentiate itself from the nearby search_outlook_calendar_events sibling, which an agent could easily confuse with this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the default behavior ('next 7 days of the default calendar') and the window semantics, but there is no explicit statement of when to choose this over search_outlook_calendar_events or get_outlook_calendar_event. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_outlook_calendarsList Outlook calendarsARead-onlyInspect
List the calendars on one Outlook/Microsoft 365 account. Start here to get the calendarId the event tools take — omit it and they use the default calendar. Calendars outside the ones you have access to are not returned.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds a genuine behavioral constraint beyond that: calendars outside the caller's access are not returned, and omitting the id changes downstream tool behavior. Pagination/return shape is still unstated, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, no redundancy, with the core action and the highest-value guidance (where the calendarId comes from) front-loaded before the access-scope caveat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-parameter list tool with annotations covering safety and no output schema, the description covers everything an agent needs: what it lists, when to call it, what it returns that matters (calendarId), and what is filtered out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (mailbox) with 100% schema coverage, so the schema already carries the description and its pointer to list_authorized_mailboxes. The description references calendarId, but that is an output value rather than the input parameter, so it adds little parameter-level meaning. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (Outlook/Microsoft 365 calendars) scoped to one account, which cleanly separates it from list_google_calendars and from the create/delete/rename Outlook calendar siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Start here to get the calendarId the event tools take" gives explicit sequencing guidance, and the follow-on clause explains the consequence of omission (event tools fall back to the default calendar). This is a real when-to-use rule rather than an implied one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_outlook_task_listsList To Do listsARead-onlyInspect
List the Microsoft To Do task lists in one mailbox. Each mailbox has its own independent lists. Start here to get the listId the task tools need.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false). The description adds that lists are independent per mailbox, which is mild scoping context, but says nothing about result size, ordering, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and scope, and each sentence carries distinct information (what, per-mailbox behavior, why to call it).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with a fully documented single parameter and no output schema, the description tells the agent what it returns and how to use the result. Only result-shape details (ordering, empty case) are absent, which is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, whose schema description is fully covered (100%) and even points to list_authorized_mailboxes. The description adds no further semantics, 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?
States a specific verb and resource ('List the Microsoft To Do task lists') scoped to one mailbox, which cleanly distinguishes it from the sibling list_google_task_lists and from list_outlook_tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly positions the tool as the entry point ('Start here to get the listId the task tools need'), giving clear workflow context, but it does not name alternatives or state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_outlook_tasksList To Do tasksARead-onlyInspect
List tasks in one To Do list. Completed tasks are excluded by default — pass includeCompleted to see them too.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max tasks to return (default 100, cap 200) | |
| listId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| includeCompleted | No | Include completed tasks (default false) |
TDQS
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 adds real behavioral context beyond them: completed tasks are filtered out unless includeCompleted is passed, which is non-obvious result-shaping behavior an agent would otherwise miss. It does not mention pagination behavior or result ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler; the default-exclusion behavior is front-loaded immediately after the purpose statement so an agent reads the surprising part first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, four-parameter list tool with no output schema, the definition covers purpose, scoping, and the one non-obvious filtering rule. It stops short of describing what a returned task contains or whether the list is paginated beyond the limit cap, which the absence of an output schema leaves unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% — limit, mailbox, and includeCompleted are already documented in the schema, including the same default semantic the description restates. listId is undocumented in both places, and the description only gestures at it ('one To Do list'). Baseline 3 applies since the schema does most of the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource with scope: 'List tasks in one To Do list.' The 'one To Do list' phrasing implicitly separates it from list_outlook_task_lists (the containers) and get_outlook_task (a single task), but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the completed-task default and how to override it, which is genuine usage guidance, but it never states when this tool should be chosen over get_outlook_task or list_outlook_task_lists, nor that a valid listId must first be obtained from list_outlook_task_lists. Usage is thereby implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_skillsList skillsARead-onlyInspect
List the skills this workspace offers your agent — standard procedures it has written or adopted from the Higgs Hub library, plus any Higgs Hub includes with every workspace. Use get_skill to fetch one as an installable SKILL.md file. Start here if someone asks what Higgs Hub can help them with, or asks to install their workspace's skills.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds real behavioral context by describing what the returned set contains and that skills come from two distinct origins (workspace-written vs. Higgs Hub library/include), which goes beyond the annotations. It omits return shape, ordering, and whether results are paginated, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what is listed, followed immediately by the sibling handoff and the trigger conditions. Every clause carries information an agent would otherwise have to guess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only listing tool with no output schema, the description supplies everything needed: scope, sources of items, routing to get_skill for the actual artifact, and invocation triggers. Nothing an agent needs in order to call it correctly 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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The mention of get_skill's SKILL.md form is a usage note rather than parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (skills in this workspace) and enumerates the three sources of those skills: workspace-authored procedures, Higgs Hub library adoptions, and universally-included Higgs Hub content. It also explicitly distinguishes itself from the sibling get_skill, which returns a single installable SKILL.md.
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?
Names the alternative (get_skill) and the condition that selects it, then gives an explicit entry-point trigger: 'Start here if someone asks what Higgs Hub can help them with, or asks to install their workspace's skills.' Both the when and the when-not are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspace_membersList workspace membersARead-onlyInspect
Everyone in a workspace you own: name, email, workspace role (owner / admin / member), whether they are paused, and the access role their agent follows. Also lists pending invitations. Owners only.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds meaningful context beyond that: the 'Owners only' authorization requirement and the fact that pending invitations are included in the result. This is good added value, though it omits pagination or result-size behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence enumerating scope and membership fields, closed by the 'Owners only' constraint. Every clause earns its place and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema and full parameter documentation, the description usefully enumerates the returned fields and the authorization requirement. It is nearly complete, missing only minor operational details like ordering or whether paused members are still counted.
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 the single 'workspace' parameter is fully documented in the schema itself, including the hint that it is only needed when you own multiple workspaces. The description adds nothing about the parameter, so the baseline 3 is correct when the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource (list workspace members) and enumerates the returned fields (name, email, workspace role, paused status, agent access role) plus pending invitations, which fairly well distinguishes it from siblings like list_workspaces. However, it never explicitly contrasts itself with adjacent tools such as list_workspaces or invite_member, so it falls short of the 5 bar for stated sibling differentiation.
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 only usage-oriented guidance is the trailing 'Owners only', which is a permission precondition rather than a when-to-use rule. There is no explicit statement of when to choose this over list_workspaces or when it is inappropriate (e.g., for workspaces you don't own). Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspacesList workspacesARead-onlyInspect
List the Higgs Hub workspaces you belong to, with your role in each and whether you own it. Only workspaces you own can be administered from here (invite people, manage access roles, disconnect mailboxes). Signed-in users only — API keys can't call this.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a safe read (readOnlyHint=true, destructiveHint=false), but the description adds real context beyond them: the authentication constraint ('Signed-in users only — API keys can't call this') and the fact that result ownership determines which administration tools are usable. That auth disclosure is exactly the kind of behavior an agent needs and cannot get from annotations, though pagination/size behavior is unaddressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what is listed, then the ownership gating rule, then the auth caveat. No filler, no restatement of the title, and each sentence carries distinct 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?
There is no input schema to document and no output schema provided, so the description carries the return-value burden and does so (role per workspace, ownership flag). Combined with the auth restriction and the admin-gating rule, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4; there is no parameter surface the description could clarify. The prose instead describes the shape of each returned record (role, ownership), which is useful but is not parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource ('List the Higgs Hub workspaces you belong to') and immediately defines the returned fields (your role, ownership), which separates it from the neighboring list_workspace_members and list_access_roles. An agent can identify this tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context — this is the entry point for discovering the workspaces you belong to — and explains the downstream consequence ('Only workspaces you own can be administered from here'), pointing at why an agent would call it before invite_member, assign_access_role or disconnect_mailbox. It never explicitly names an alternative sibling tool to route away from, so it stops 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.
merge_duplicate_gmail_labelsMerge duplicate Gmail labelsADestructiveInspect
Re-label every message carrying any of a set of duplicate labels with one label to keep, then delete the emptied duplicates. Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| labelIds | Yes | All label IDs in the duplicate group, including the one to keep | |
| keepLabelId | Yes | The label ID that should survive; the rest are relabeled away and deleted |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description still adds meaningful nuance beyond that: only *emptied* duplicates are deleted (messages themselves are preserved, just relabeled), and a user confirmation is required. It stops short of describing partial-failure behavior or whether the deletion is reversible.
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: the effect first, the precondition second, with zero filler. Front-loaded with the destructive action so the agent grasps impact before reading the confirmation instruction.
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 three-parameter mutation with no output schema, the description covers what changes and the required confirmation gate. It omits what happens on partial failure and whether any result summary is returned, which are minor gaps given the low complexity and full schema coverage.
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 mailbox, labelIds, and keepLabelId are already fully documented in the schema, including the requirement that labelIds contain the kept label. The description reinforces the relabel target but adds no syntax, grouping constraints, or id-resolution guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource+scope: it relabels every message carrying any of a set of duplicate labels onto a single survivor, then deletes the emptied duplicates. That two-step effect (relabel-then-delete, only the emptied labels) is specific enough to distinguish it from apply_gmail_labels, delete_gmail_label, and rename_gmail_label.
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 human-in-the-loop precondition, 'Ask the user to confirm before calling this,' which is real procedural guidance rather than boilerplate. It never names the natural upstream sibling (find_duplicate_gmail_labels) or states when to prefer a plain relabel/delete instead, so an exclusion clause is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_mail_foldersMerge mail foldersADestructiveInspect
Move every message from a set of duplicate folders into one folder to keep, then delete the emptied folders. Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| folderIds | Yes | All folder IDs in the duplicate group, including the one to keep | |
| keepFolderId | Yes | The folder that should survive; the rest are emptied into it and deleted |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and openWorldHint=false, so the description's added value is explaining precisely what is destroyed (the emptied duplicate folders) versus what is preserved (the messages, consolidated into the kept folder). That is real behavioral context beyond the annotation. It still omits partial-failure behavior and required mailbox permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste; the mutation is front-loaded and the confirmation requirement follows it. Every clause 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 destructive, no-output-schema tool, the description covers the core flow and the safety gate. Remaining gaps (whether messages keep their labels, partial-failure handling, and permission requirements) are modest given the annotations already carry the destructive signal.
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 each parameter is already documented in the schema, including that folderIds must contain the kept folder and that keepFolderId survives. The description's 'set of duplicate folders into one folder to keep' merely restates that mapping, adding no format or constraint detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb chain and resource: move messages from duplicate folders into a kept folder, then delete the emptied folders. It is clearly distinguishable from find_duplicate_mail_folders, delete_mail_folder, and move_messages by its merge-and-cleanup scope, but it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage instruction is the procedural 'ask the user to confirm before calling this,' which is useful but addresses confirmation rather than when-to-use. It implies the tool follows duplicate discovery, but it never states prerequisites or when to prefer this over delete_mail_folder or move_messages.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_gdrive_itemMove Google Drive itemBInspect
Move (and optionally rename) a Google Drive file or folder into a different parent folder, within one account.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| newName | No | ||
| destinationFolderId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, closed-world mutation. The description adds the useful 'within one account' scope limit and clarifies that renaming is optional, but says nothing about permission requirements, cross-drive behavior, or name-collision outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words; the core action and its optional modifier are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the behavioral burden for a mutation with three required params. It covers the core action adequately but omits edge cases an agent would want before calling, such as what happens when the destination already holds an item with that name or whether shared-drive moves are supported.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (just the mailbox field), so the description must compensate. It signals that rename (newName) is optional and that destinationFolderId is a parent folder, but leaves itemId and the ID formats unexplained, so compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (move), resource (Google Drive file or folder), and adds the optional rename capability and destination-parent target. This clearly distinguishes it from delete_gdrive_item and rename_gdrive_item, though it does not name any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance. It does not explain when to pass newName here versus calling rename_gdrive_item, nor when to prefer this over move_onedrive_item or share_gdrive_item. The only constraint offered is the 'within one account' scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_google_calendar_eventMove a Google Calendar eventADestructiveInspect
Move an event to a different calendar on the same account, keeping its times. If it has guests they are emailed an update.
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| calendarId | No | Calendar the event is currently on | |
| destinationCalendarId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true; the description adds real side-effect detail beyond that: event times are preserved and guests receive an email update. It still doesn't say whether the event is removed from the source calendar or what the response contains, but the guest-notification disclosure is genuinely useful.
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 compact sentences, with the core action and result front-loaded and the side-effect caveat following. No 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?
For a mutation tool with no output schema, the description covers the key behavioral facts an agent needs before invoking it: scope, time preservation, and guest notification. Only the missing parameter detail and the fate of the event on the source calendar keep it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: mailbox and calendarId are documented, while eventId and destinationCalendarId carry no descriptions. The prose mentions moving 'an event' and 'a different calendar' generically but adds no format, ID-source, or identification guidance to compensate, leaving two parameters effectively undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb and resource: moving a calendar event to a different calendar while preserving its times. It also scopes the operation ('same account'), which rules out cross-account transfers. It does not explicitly name siblings like update_google_calendar_event, so an agent must infer the distinction.
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 conveys the implied use case (relocating an event between calendars) but offers no explicit when-not guidance and never names the alternative move_outlook_calendar_event or update_google_calendar_event, which is the tool an agent might reach for when only the time changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_messagesMove messages to a folderAInspect
Move messages into a folder. This is a real move, not a label change. Handles any number of messages by batching internally, and reports which ones failed rather than aborting the lot.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| messageIds | Yes | ||
| destinationFolderId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavior beyond that: it is a true folder move, not a label change; it batches internally to handle any number of messages; and it reports individual failures instead of aborting the batch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action. Each sentence earns its place by adding scope, distinction from labeling, and batching/failure behavior.
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 three-required-parameter mutation tool with no output schema and low schema description coverage, the description is only partially complete. It explains the move behavior and failure handling well, but it omits how to obtain or format destinationFolderId and leaves mailbox authorization guidance to the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description needs to compensate for undocumented parameters. It generically says 'messages' and 'folder' and hints that any number of messages can be moved, but it gives no guidance for destinationFolderId format or source and does not meaningfully explain mailbox, messageIds, or destinationFolderId beyond the schema's own names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the verb and resource precisely: 'Move messages into a folder.' It also immediately distinguishes the operation from a label change, so an agent can identify it among the many sibling mail tools without 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?
Gives clear context by saying this is a real move rather than a label change, which helps separate it from label-oriented siblings. However, it does not name an explicit alternative such as apply_gmail_labels or update_agentmail_labels for cases where labeling is desired, so it stops short of full when-to-use routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_onedrive_itemMove OneDrive itemAInspect
Move (and optionally rename) a OneDrive file or folder into a different parent folder.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| newName | No | ||
| destinationFolderId | Yes | Target folder ID, or "root" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive mutation (readOnlyHint=false, destructiveHint=false, openWorldHint=false), so the safety profile is covered. The description adds only that renaming is optional alongside the move; it says nothing about permission requirements, name-collision behavior, or whether the destination folder must exist.
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 well-formed sentence with the core action front-loaded and the optional rename immediately attached. Nothing is wasted and nothing needs re-reading.
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 4-parameter mutation tool with no output schema and half its parameters undocumented, the description is thin: it omits permission/auth expectations, conflict handling, and what a successful move returns. It is adequate to pick the tool but not to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: mailbox and destinationFolderId are documented in the schema, while itemId and newName are bare. The description's 'optionally rename' hints at newName's purpose but adds no format or constraint detail for itemId, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (move) and resource (OneDrive file or folder) plus a scope detail (into a different parent folder), and the parenthetical flags the optional rename capability. It doesn't name the closely related sibling rename_onedrive_item, but the operation itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool applies (relocating an existing item to a new parent) but gives no explicit when-to-use guidance, no mention of rename_onedrive_item as the rename-only alternative, and no prerequisites. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_outlook_calendar_eventMove an Outlook Calendar eventADestructiveInspect
Move an event to another calendar on the same account. Outlook has no true move, so the event is recreated on the destination and the original deleted — it gets a new id. Occurrences of a repeating series, and events with guests, cannot be moved.
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| destinationCalendarId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, and the description explains exactly why: Outlook has no true move, so the event is recreated on the destination and the original deleted, producing a new id. This discloses the destructive mechanism and the identity-changing side effect that annotations alone cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: purpose first, then the behavioral mechanic, then the limitations. Every sentence carries distinct information and the ordering is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers the important behavioral traits (recreate/delete, new id) and the eligibility limits. It omits any detail on the two undocumented identifier parameters, which is the main remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% — only mailbox is documented, while eventId and destinationCalendarId have no schema descriptions. The description offers only an implicit hint that the destination must be on the same account and adds no format or semantics for eventId or destinationCalendarId, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Move an event to another calendar on the same account'), which clearly separates it from update_outlook_calendar_event (in-place edits) and from the Google counterpart. It stops short of explicitly naming a sibling to route to, but the action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete when-not conditions: occurrences of a repeating series and events with guests cannot be moved. That is strong usage guidance, though it does not name an alternative tool to use when the move is disallowed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_memberPause or resume a memberAInspect
Pause a member of a workspace you own: they stay a member, but their agent stops working in that workspace and any admin powers are off until an owner resumes them. Pass paused=false to resume. Owners can't be paused. This only stages a request: the owner opens the link in their browser, reviews it, and approves it there with their agent PIN. Never ask for or accept the PIN in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The member's email. | ||
| paused | Yes | true to pause, false to resume. | |
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=false) by disclosing that this is only a staged request requiring the owner to open a browser link and approve with their agent PIN, plus the hard constraint never to ask for or accept the PIN in chat. That is exactly the kind of non-obvious behavior an agent must know before invoking.
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?
Four sentences, each load-bearing: effect of pausing, how to resume, the owner exclusion, and the approval/PIN workflow. The most decision-relevant fact (what pausing does) is front-loaded with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by explaining the full approval lifecycle the agent will trigger, including where the request goes and that it is not applied immediately. Nothing needed to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents email, paused, and workspace, including 'true to pause, false to resume'. The description restates the paused=false resume semantics but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Pause a member of a workspace you own') and immediately defines the exact semantics: member stays, agent stops working, admin powers off. This clearly separates it from siblings like remove_member or set_member_workspace_role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the resume path ('Pass paused=false to resume'), the ownership precondition ('a workspace you own'), and an exclusion ('Owners can't be paused'). It doesn't explicitly name the sibling alternative (remove_member) for when pausing is the wrong choice, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_agentmail_attachmentRead an AgentMail attachmentARead-onlyInspect
Open one attachment of an AgentMail message and return what is in it. Text, CSV, JSON, HTML and code files come back as themselves; images come back as pictures the assistant can look at; PDFs, Word files and other documents come back as the text AgentMail extracted from them, when it extracted any. Up to 10 MB. Get attachmentId from get_agentmail_message or get_agentmail_thread.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Address of the connected AgentMail inbox to act on. Call list_authorized_mailboxes to see available options. | |
| messageId | Yes | ||
| attachmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), yet the description still adds substantial behavior: per-format return behavior (text/CSV/JSON/HTML/code, images, PDFs/Word extraction), the caveat 'when it extracted any,' and a hard 10 MB limit. This is meaningful context beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then the return-format detail, then the size cap and ID source. Every sentence carries information the agent needs; 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?
There is no output schema, so the description correctly carries the burden of describing return values by file type, including the extraction caveat and size limit. The only incomplete piece is the messageId parameter, whose semantics are not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (mailbox documented; messageId and attachmentId bare), so the description must compensate. It does explain where attachmentId comes from (get_agentmail_message/get_agentmail_thread), but messageId is left entirely unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Open one attachment of an AgentMail message and return what is in it') and pins the scope to AgentMail, which separates it from the sibling read_gmail_attachment and read_outlook_attachment. The return-format breakdown further confirms what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete workflow guidance: 'Get attachmentId from get_agentmail_message or get_agentmail_thread,' which tells the agent the prerequisite call. It does not, however, state when to prefer this over read_gmail_attachment/read_outlook_attachment or any exclusions, so no explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_excel_rangeRead an Excel rangeARead-onlyInspect
Read cell values from a worksheet. Omit range to read whatever is occupied. Formulas come back as the value they display. At most 10,000 cells per call.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Address like "A1:D50". Omit for the used range | |
| sheet | Yes | Worksheet name, e.g. "Sheet1" | |
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| workbookId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is clear. The description adds useful behavior: formulas return their displayed value and there's a 10,000 cell limit per call. But it doesn't mention return format or error behavior, which is a gap for a read tool without an output schema. With annotations covering safety, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the core purpose, then key behaviors. Zero waste; every sentence adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is read-only with annotations covering safety and a schema at 75% coverage, the description covers the essentials: what it reads, range omission behavior, formula handling, and a size limit. Missing details like return format or pagination are minor because there's no output schema and the annotations handle safety. A 4 reflects completeness with minor 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 75%, so the schema already documents parameters like range, sheet, and mailbox reasonably well. The description adds minor details: omitting range reads the used range, and formulas return displayed values. However, it doesn't clarify the workbookId parameter or add significantly more than the schema provides. Baseline 3 is appropriate when schema is mostly complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb (read) and resource (cell values from a worksheet in an Excel workbook), which distinguishes it from siblings like read_google_sheet_range and get_excel_workbook. No ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides one implied usage detail: 'Omit range to read whatever is occupied.' However, it does not explicitly compare to alternatives such as read_google_sheet_range or mention when to use this instead of getting the whole workbook. No when-not conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_gdrive_fileRead a file's contents from DriveARead-onlyInspect
Open one file and return what is in it. Google Docs and Slides come back as text; text, CSV, JSON, HTML and code files come back as themselves; images come back as pictures the assistant can look at. Spreadsheets are refused in favour of read_google_sheet_range, and PDFs cannot be read yet. Get the id from list_gdrive_items or search_gdrive_items.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only profile, so the description's real value is the return-format behavior it adds: Docs/Slides come back as text, images as viewable pictures, spreadsheets and PDFs unsupported. That is rich context beyond the annotations, though auth/rate-limit details are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then file-type behaviors, then exclusions, then id sourcing. Every sentence carries distinct information and none is padding.
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 no output schema, the description correctly explains what is returned for each file type and what is unsupported. It is nearly complete for a read tool; only edge cases like very large files or permission failures are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: the mailbox param is documented in-schema while itemId is not. The description compensates by telling the agent to get the id from list_gdrive_items or search_gdrive_items, giving useful sourcing semantics for the otherwise-undocumented 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?
States a specific verb (read/open) and resource (one Drive file) and enumerates what different file types yield, which cleanly separates it from read_google_sheet_range and read_onedrive_file. An agent can identify the tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when NOT to use it (spreadsheets are refused in favour of read_google_sheet_range, PDFs cannot be read yet) and names the alternative tool. It also tells the agent where to obtain the required id, covering the full invocation path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_gmail_attachmentRead a Gmail attachmentARead-onlyInspect
Open one attachment of a Gmail message and return what is in it. Text, CSV, JSON, HTML and code files come back as themselves; images come back as pictures the assistant can look at. PDFs, spreadsheets and Word files can't be read yet — but any attachment can be saved as-is with save_gmail_attachment_to_drive. Attachments up to 10 MB. Get attachmentId from get_gmail_message or get_gmail_thread.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| messageId | Yes | ||
| attachmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, non-destructive, closed-world), and the description adds context the annotations cannot: a 10 MB size ceiling, the per-format behavior of the return value, and the set of formats that will fail outright. This is exactly the extra behavioral detail the annotations leave out.
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?
Four sentences, front-loaded with the action, then format support, then the failure/alternative path, then the size limit and ID provenance. No filler and every sentence carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carries the return-value burden and does it well by describing what each format comes back as. Combined with the size limit, format exclusions, alternative tool, and ID source, it covers everything needed to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only mailbox is documented in the schema), so the description must compensate. It does for the hardest parameter by explaining where attachmentId comes from (get_gmail_message or get_gmail_thread), but messageId is never mentioned in either place and its relationship to mailbox is left implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Open one attachment of a Gmail message and return what is in it') and scopes it to Gmail, which cleanly separates it from read_outlook_attachment, read_agentmail_attachment and read_gdrive_file. An agent can pick this tool without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the supported formats, states what is NOT supported (PDFs, spreadsheets, Word), and routes the agent to the alternative for those cases ('any attachment can be saved as-is with save_gmail_attachment_to_drive'). It also names the prerequisite tools for obtaining attachmentId.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_google_sheet_rangeRead a Google Sheets rangeARead-onlyInspect
Read cell values from an A1 range, e.g. "Sheet1!A1:D50" or a whole tab like "Invoices". Formulas come back as the value they display. At most 10,000 cells per call — ask for a narrower range rather than a whole large sheet.
| Name | Required | Description | Default |
|---|---|---|---|
| range | Yes | A1 notation, e.g. "Sheet1!A1:D50". A bare tab name reads the whole tab | |
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| spreadsheetId | Yes |
TDQS
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 genuinely non-obvious behavior beyond that: formulas resolve to their displayed value, and there is a hard 10,000-cell ceiling per call with the recommended workaround.
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, no filler. The core action and range format come first, then the two behavioral facts (formula resolution, cell cap) that actually change how an agent calls it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with annotations covering safety and no output schema, the description covers what the return values mean (formula display values) and the operational limit. Only minor gaps remain, such as no mention of auth/mailbox prerequisites, which the schema partially covers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the range parameter's own schema description already documents A1 notation and bare-tab behavior, so the description's examples largely duplicate structured data. spreadsheetId and mailbox are not elaborated in the description at all, leaving the coverage gap unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("Read cell values from an A1 range") with concrete scope examples, so the agent immediately knows what it does. It doesn't explicitly contrast itself with the parallel read_excel_range sibling, but the range/A1 framing plus the tool name makes the Sheets-vs-Excel split inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful scope guidance ("ask for a narrower range rather than a whole large sheet"), which implies when a call is appropriate. However, it never states when to prefer this over get_google_spreadsheet or read_excel_range, nor any preconditions, so usage is only partially directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_onedrive_fileRead a file's contents from OneDriveARead-onlyInspect
Open one file and return what is in it. Text, CSV, JSON, HTML and code files come back as themselves; images come back as pictures the assistant can look at. Excel workbooks are refused in favour of read_excel_range, and PDFs and Word documents cannot be read yet. Get the id from list_onedrive_items or search_onedrive_items.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description goes beyond them by disclosing the return-shape contract per file type and the refusal path for Excel, which materially affects how an agent plans a call. It stops short of noting size limits or truncation behavior for large files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences, front-loaded with the core action, then format behavior, then sourcing of the id. No filler or restatement of the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still characterizes the return values by file type, and it covers the unsupported-format failure modes. Remaining gaps are edge behaviors such as binary/large-file handling and authentication expectations, but nothing essential to selecting or invoking the tool correctly 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 50%: mailbox is fully documented in the schema, but itemId has no schema description. The description compensates by telling the agent where the id comes from (list_onedrive_items or search_onedrive_items), which is the key missing semantic. It does not clarify id format or whether it must be a file rather than a folder.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Open one file and return what is in it') plus the exact file categories it handles and the formats it returns for each. It distinguishes itself from siblings by explicitly refusing Excel workbooks in favour of read_excel_range and by scoping to OneDrive files rather than the Gmail/Drive readers.
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?
Names the alternative tool (read_excel_range) and the condition that selects it, plus declares what is unsupported today (PDFs and Word documents). It also tells the agent how to obtain the required id, via list_onedrive_items or search_onedrive_items.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_outlook_attachmentRead an Outlook attachmentARead-onlyInspect
Open one attachment of an Outlook message and return what is in it. Text, CSV, JSON, HTML and code files come back as themselves; images come back as pictures the assistant can look at. PDFs, Excel workbooks and Word files can't be read yet — but any file attachment can be saved as-is with save_outlook_attachment_to_onedrive. Attached emails and OneDrive links are not files and are refused. Attachments up to 10 MB. Get attachmentId from get_outlook_message or get_outlook_conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| messageId | Yes | ||
| attachmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly and non-destructive, but the description goes well beyond them by disclosing the format support matrix, how each type is returned (images as viewable pictures), the 10 MB limit, and which attachment kinds are rejected outright. This is behavioral context an agent needs before calling and cannot derive from 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?
Front-loaded with the core action, then format behavior, then limits and sourcing. Every sentence carries non-redundant information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains what comes back for each format and the boundary conditions (size, refusals, unsupported types). Nothing an agent needs to call it correctly 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 only 33% (mailbox documented, messageId and attachmentId bare), so the description must compensate. It does so for attachmentId by naming get_outlook_message and get_outlook_conversation as sources, but messageId is left to inference and the 10 MB note is not tied to any specific 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?
States a specific verb and resource ('Open one attachment of an Outlook message and return what is in it') and makes clear it is the read path versus the sibling save path. An agent can distinguish it from read_gmail_attachment, read_agentmail_attachment, and save_outlook_attachment_to_onedrive without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly enumerates supported formats, the unsupported ones (PDFs, Excel, Word) with the alternative named (save_outlook_attachment_to_onedrive), the refusal cases (attached emails, OneDrive links), a size ceiling, and where to obtain the required attachmentId. When-to-use, when-not-to-use and alternatives are all covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_memberRemove a memberADestructiveInspect
Remove someone from a workspace you own. Their agent loses access to its mailboxes immediately; they can be invited again later. You can't remove yourself this way. This only stages a request: the owner opens the link in their browser, reviews it, and approves it there with their agent PIN. Never ask for or accept the PIN in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The member's email. | ||
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: immediate access loss for the member's agent, reversibility via re-invitation, the self-removal prohibition, and critically the two-step approval flow where the owner must approve in-browser with an agent PIN. The PIN security warning and the staged-request nature are exactly the behavioral detail an agent needs and cannot get from the destructiveHint 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?
Front-loaded with the core action, then progressively adds consequence, exclusion, and approval-flow detail. Every sentence carries useful weight, though the standalone PIN warning is slightly separated from the approval-flow sentence it belongs to.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, human-approval-gated mutation with no output schema, the description covers everything needed: what happens, reversibility, exclusions, the multi-step approval mechanism, and a security constraint. Nothing essential to correct invocation 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 description coverage is 100%, so the email and workspace parameters are already documented in the schema, including the workspace disambiguation note. The description adds no parameter-level syntax or format detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Remove someone from a workspace you own') with the ownership scope that constrains it. An agent can distinguish this from siblings like pause_member (temporary) or cancel_invitation (pending invite) based on the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use: removing a member from a workspace you own, with the condition that they can be re-invited later and the exclusion that you cannot remove yourself. It doesn't explicitly name alternative tools like pause_member or cancel_invitation, so the routing guidance is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_access_roleRename an access roleAInspect
Rename an access role in a workspace you own. This only stages a request: the owner opens the link in their browser, reviews it, and approves it there with their agent PIN. Never ask for or accept the PIN in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The role's current name. | |
| newName | Yes | The new name. | |
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=false): it discloses that the call only stages a request, that the owner must approve it in a browser via a link, and adds an explicit security rule about never accepting the PIN in chat. This is exactly the kind of behavioral context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and scope, then the approval workflow, then the security caveat. Every sentence carries distinct, necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-destructive staged mutation with full schema coverage and annotations, nothing essential is missing: the caller knows the prerequisite (ownership), the outcome (staged request), and the interaction model (browser approval). No output schema exists, and the description covers what to expect in its place.
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 each of the three parameters is documented in-schema, so baseline 3 applies. The description only reinforces the workspace-ownership scoping already implied by the 'workspace' parameter description and adds no new format or naming rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Rename an access role') and scopes it to 'a workspace you own', which distinguishes it from create_access_role, delete_access_role, and the many rename_* siblings targeting other 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?
Gives clear context for when this applies (you own the workspace, presumably one workspace unless specified) and explains the staged-approval flow the caller must expect. It stops short of naming an explicit alternative or saying when not to use it, but the ownership prerequisite is a real usage constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_gdrive_itemRename Google Drive itemBInspect
Rename a Google Drive file or folder without moving it.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| newName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the mutation/safety profile is covered by structured data. The description's "without moving it" adds a genuine behavioral trait (location is preserved), but says nothing about permissions, name-collision behavior, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action front-loaded and the key constraint trailing. No 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?
This is a mutation tool with no output schema and two of three parameters undocumented in both schema and description. An agent still lacks the identifier format for itemId and the constraints on newName, so the definition is not sufficient on its own.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% — only mailbox is documented in the schema. The description notes the target may be a file or folder (marginal help for itemId) but explains nothing about itemId's format or what newName accepts (extension handling, invalid characters). With low coverage the description should compensate more than it does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Rename a Google Drive file or folder") and adds a scoping clause ("without moving it") that functionally separates it from move_gdrive_item. It does not explicitly name the sibling, but the distinction is inferable, so it falls just short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "without moving it" implies this is not the tool for relocating items, which is a weak routing signal toward move_gdrive_item. There is no explicit when-to-use/when-not statement, no prerequisite on locating the item first, and no alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_gmail_labelRename Gmail labelCInspect
Rename an existing Gmail label.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| labelId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered by structured data. Beyond that the description adds nothing: it does not say whether the old name is discarded, whether label membership/associations are preserved, or what permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler and the action front-loaded. It is efficient, though arguably under-specified rather than genuinely concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-required-parameter mutation tool with 33% schema coverage and no output schema, the description is too thin. The meaning and format of labelId and name are never addressed anywhere, so an agent cannot confidently 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?
Schema description coverage is only 33% (only mailbox is documented, with a helpful list_authorized_mailboxes pointer). The description compensates for neither labelId nor name, leaving two required parameters semantically undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Rename) and resource (Gmail label), so the purpose is unambiguous. However, it does nothing to distinguish itself from near-neighbors like rename_mail_folder or merge_duplicate_gmail_labels, which occupy similar conceptual space.
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 offers no when-to-use guidance, no prerequisites, and no mention of alternatives such as create_gmail_label or merge_duplicate_gmail_labels. The agent must infer everything about when this is the right tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_google_calendarRename a Google calendarCInspect
Change a calendar's name, and optionally its description.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| calendarId | Yes | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a non-read-only, non-destructive mutation, but the description adds nothing about permissions, whether the change is reversible, or effects on existing calendar data. Given zero annotation coverage of specifics, the description carries the behavioral burden and falls short.
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?
Single efficient sentence, front-loaded with the core action. No waste, though it is arguably too terse given missing parameter 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?
For a mutation tool with 4 params at 25% schema coverage, no output schema, and no annotation detail on effects, the description leaves significant gaps: it never mentions which mailbox/calendar must be identified or the auth requirement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% – mailbox and calendarId lack descriptive text, and name/description have type only. The description's mention of name and optional description is marginal and doesn't compensate for the undocumented required identifiers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (change a calendar's name) and mentions the optional description field. The name and description align, though it doesn't explicitly distinguish itself from sibling update_google_calendar_event or rename_outlook_calendar.
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?
Implies usage for renaming calendars but offers no explicit when/when-not guidance or pointer to alternatives like update_google_calendar_event for broader changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_google_task_listRename a Google Tasks listCInspect
Change a task list's title.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| listId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the agent knows this is a non-destructive mutation. The description adds nothing beyond that – no note on whether duplicate titles are allowed, whether the change is reversible, or what happens on an invalid listId.
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 five-word sentence with zero waste and the key noun front-loaded. It is concise, but so terse that brevity tips into under-specification rather than economy.
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 3-parameter mutation tool with no output schema and only 33% schema coverage, the description is not complete enough. It omits required-parameter context (mailbox/listId sourcing) and any behavioral detail an agent needs to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only 'mailbox' is documented). The description mentions 'title' only incidentally and says nothing about what 'listId' identifies or how to obtain it, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (change) and resource (a task list's title), which is marginally more specific than the tool name alone. However, it offers no differentiation from the many sibling rename tools (rename_outlook_task_list, rename_gmail_label, rename_gdrive_item), so an agent cannot distinguish scope from the description.
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 when-to-use guidance, no prerequisites, and no mention of alternatives such as create_google_task_list, delete_google_task_list, or rename_outlook_task_list. The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_mail_folderRename mail folderCInspect
Rename an existing mail folder without moving it.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| folderId | Yes | ||
| displayName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the mutation profile is largely covered. The description adds only the 'without moving it' behavior, with no mention of permissions, collision handling, or whether renaming affects children/rules.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that is efficient, though it errs on the side of under-specification rather than richness.
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 3-parameter mutation tool with no output schema and two undocumented parameters, the description omits how to identify the folder, what a successful result looks like, and failure modes. It is too thin for the schema 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 coverage is only 33%: mailbox is well documented and points to list_authorized_mailboxes, but folderId and displayName have no descriptions. The tool description does nothing to fill that gap, e.g. how to obtain folderId or any naming constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (rename) and resource (mail folder) and adds a scope note ('without moving it') that clarifies it's a pure rename. It doesn't explicitly distinguish itself from siblings like move_messages or merge_mail_folders, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives (rename_gmail_label, merge_mail_folders, move_messages) or prerequisites such as needing an existing folder id. The scope clause implies a constraint but is not usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_onedrive_itemRename OneDrive itemBInspect
Rename a OneDrive file or folder without moving it.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| newName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the mutation-but-safe profile is covered. The description adds one useful behavioral fact beyond that: the operation changes the name only and leaves the item in place. It says nothing about permission requirements, name-collision behavior, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the scope constraint is placed where it matters. It is efficient, though the brevity leaves the gaps noted in other dimensions unfilled.
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 3-parameter mutation tool with no output schema, the description plus annotations cover the essential safety profile, but two of three parameters are undocumented in both schema and description, and failure modes (name conflicts, permissions) are absent. Adequate but with clear holes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% – itemId and newName have no descriptions – and the tool description mentions no parameters at all. It neither explains that itemId identifies the target within a specific mailbox nor clarifies newName semantics (extension handling, invalid characters), so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (rename) and resource (OneDrive file or folder), and the clause 'without moving it' implicitly separates it from move_onedrive_item. It does not explicitly name a sibling, so an agent must infer the boundary, but the purpose is 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?
Usage is only implied: the 'without moving it' constraint suggests this is for in-place name changes rather than relocations, which quietly routes away from move_onedrive_item. There is no explicit when-to-use statement, no prerequisites, and no mention of the required mailbox context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_outlook_calendarRename an Outlook calendarCInspect
Change a calendar's name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| calendarId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false. The description adds no behavioral detail about permissions, mailbox scope, reversibility, or side effects, so it does not enrich the annotation 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?
A single sentence with no filler and the action is front-loaded. It is appropriately brief for a simple rename, though the brevity comes at the cost of missing 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?
For a mutation tool with no output schema and only 33% schema coverage, the description is too sparse. It omits required mailbox/calendarId context, auth expectations, and return behavior, leaving the agent to infer critical invocation 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 description coverage is only 33%; mailbox is documented in the schema, but calendarId and name have no schema descriptions. The description mentions the name concept but gives no format, constraints, or meaning for mailbox or calendarId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the verb 'Change' and resource 'calendar's name', so the operation is clear. However, it does not mention Outlook in the description itself and does not distinguish this from sibling tools like rename_google_calendar or rename_outlook_task_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no when-to-use guidance, prerequisites, or alternatives. There is no indication of when to choose this over update_outlook_calendar_event or other rename tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_outlook_task_listRename To Do listCInspect
Rename an existing To Do task list.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| displayName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the mutation/safety profile is covered. The description only adds 'existing' as an implicit precondition; it does not say whether a missing list errors, whether the rename is reversible, or what permissions are needed.
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 clean, front-loaded sentence with no filler. It is well-formed prose, though its brevity reflects under-specification rather than disciplined editing.
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?
A three-parameter mutation tool with no output schema and no annotation detail beyond safety hints. The description omits the meaning of a required parameter, success/failure behavior, and any error conditions, so an agent cannot confidently call it without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% — mailbox is documented in the schema (including the useful list_authorized_mailboxes pointer), but listId and displayName have no description anywhere. Critically, the description does not disambiguate whether displayName is the new name or a lookup, leaving a required parameter ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Rename') and resource ('To Do task list'), and 'existing' signals it operates on an already-created list. It is distinguishable from create_outlook_task_list and delete_outlook_task_list, though it does not explicitly name or contrast against rename_google_task_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to rename versus create/delete a list, no prerequisites (e.g., the list must already exist), and no mention of alternatives. The agent must infer all of this from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_gmail_attachment_to_driveSave an email attachment to DriveAInspect
Copy one attachment of a Gmail message into this account's Google Drive, as-is — any file type, up to 10 MB, without reading it. Goes into the folder parentItemId (from list_gdrive_items or search_gdrive_items) or My Drive's root when omitted; the name defaults to the attachment's own. Drive allows two files with the same name in a folder, so calling this twice makes a second copy. Get attachmentId from get_gmail_message.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | File name to save under; defaults to the attachment's name | |
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| messageId | Yes | ||
| attachmentId | Yes | ||
| parentItemId | No | Destination folder id; omit for My Drive's root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant context beyond the annotations: a 10 MB size cap, acceptance of any file type, that the file is copied without being read, and the non-idempotent behavior where calling twice creates a second copy because Drive permits duplicate names. These are exactly the operational caveats a write tool needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and front-loaded: the core action leads, followed by size/type constraints, destination behavior, duplication semantics, and parameter provenance. Every sentence carries information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers inputs, defaults, limits, and side effects thoroughly for a mutation tool with no output schema. The one gap is that it doesn't hint at what the call returns (e.g. the created file id), which an agent might want to chain into follow-up calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description compensates well: it explains the parentItemId source and default (root), that name defaults to the attachment's own name, and where attachmentId originates. messageId and mailbox rely on the schema, which already documents mailbox, so the remaining gap is minor.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource: copy one Gmail attachment into this account's Google Drive. It clearly distinguishes itself from siblings like read_gmail_attachment ('without reading it') and save_outlook_attachment_to_onedrive (Gmail vs Outlook, Drive vs OneDrive).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear routing context: parentItemId comes from list_gdrive_items or search_gdrive_items, falling back to My Drive root when omitted, and attachmentId comes from get_gmail_message. It doesn't explicitly state when to prefer this over read_gmail_attachment, so it stops short of full alternative/exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_outlook_attachment_to_onedriveSave an email attachment to OneDriveAInspect
Copy one attachment of an Outlook message into this account's OneDrive, as-is — any file type, up to 10 MB, without reading it. Goes into the folder parentItemId (from list_onedrive_items or search_onedrive_items) or the drive root when omitted; the name defaults to the attachment's own, and a taken name gets a suffix rather than overwriting. Get attachmentId from get_outlook_message.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | File name to save under; defaults to the attachment's name | |
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| messageId | Yes | ||
| attachmentId | Yes | ||
| parentItemId | No | Destination folder id; omit for the drive root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-readOnly and non-destructive, and the description adds genuinely new behavior: a 10 MB cap, file-type agnostic, byte-for-byte 'as-is' saving without reading, and name-collision handling that adds a suffix instead of overwriting. It omits auth/permission requirements and any return information, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph that front-loads the core action and then layers destination, naming, and ID provenance. Every clause carries information, though the sentential packing makes it slightly heavier to parse than a two-sentence split would be.
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 no output schema and a 5-parameter mutation, the description covers the destination, naming, size limit, and ID sources an agent needs to invoke it correctly. The only meaningful omission is what the call returns on success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description compensates by explaining parentItemId's default (drive root) and sourcing, the name default (attachment's own name), and where attachmentId comes from. mailbox and messageId are left to the schema/obvious context, leaving a small residual gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (copy), a specific resource (one email attachment), and both endpoints (Outlook message -> this account's OneDrive), which cleanly separates it from read_outlook_attachment, save_gmail_attachment_to_drive, and move_onedrive_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?
Explains the destination resolution path (parentItemId from list_onedrive_items/search_onedrive_items, or drive root when omitted) and points to get_outlook_message for attachmentId, giving an agent a clear recipe. It does not explicitly state when to prefer this over reading the attachment first or moving an existing OneDrive item, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_agentmail_messagesSearch AgentMail messagesARead-onlyInspect
Find messages in an AgentMail inbox and return their metadata (id, thread, sender, recipients, subject, date, preview, labels) — not full bodies. With query, a full-text search of sender, recipients, subject and body, best match first. Without it, the newest messages, optionally filtered by labels and by from/to/subject substrings. Then read one with get_agentmail_message, or file it with update_agentmail_labels. Trashed and spam messages are skipped unless asked for.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | A recipient contains this text | |
| from | No | Sender contains this text | |
| after | No | Only messages after this time (ISO 8601) | |
| limit | No | Max results (default 20, cap 100) | |
| query | No | Full-text search; when given, labels/from/to/subject are ignored | |
| before | No | Only messages before this time (ISO 8601) | |
| labels | No | Only messages carrying all of these labels, e.g. ["unread"] | |
| mailbox | Yes | Address of the connected AgentMail inbox to act on. Call list_authorized_mailboxes to see available options. | |
| subject | No | Subject contains this text | |
| pageToken | No | nextPageToken from the previous call, for the next page | |
| includeSpam | No | ||
| includeTrash | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and non-destructive, so the safety profile is covered. The description adds genuinely useful behavior beyond annotations: metadata-only returns, result ordering (best match first vs newest), and that trashed/spam messages are skipped unless requested. It doesn't mention pagination behavior or the limit cap, which are minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and return scope, then modes, then follow-ups. Efficient and well-structured. Slightly dense with four ideas packed into few sentences, but every clause 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 12-param, metadata-only search tool with no output schema, the description covers return scope, modes, exclusions, and follow-ups well. The only omissions are pagination and result-cap guidance, which are documented in the schema parameters pageToken and limit.
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 high (83%), so the schema carries most parameter detail. The description still adds valuable semantics beyond the schema: the precedence rule that `query` causes labels/from/to/subject to be ignored, and the ordering/mode distinction. It doesn't cover to/from/subject substring nuances, but the schema does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (find messages in an AgentMail inbox) and explicitly scopes the return to metadata (id, thread, sender, recipients, subject, date, preview, labels) rather than full bodies. It routes to the correct sibling tools (get_agentmail_message, update_agentmail_labels), clearly distinguishing it from retrieval and labeling operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains the two modes: with `query` it does full-text search best-match-first; without it, it returns newest messages optionally filtered. It names the follow-up alternatives get_agentmail_message and update_agentmail_labels, and states trash/spam exclusion with an override. When-to-use is fully covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_gdrive_itemsSearch Google DriveARead-onlyInspect
Search one account's Google Drive for files/folders whose name matches a text query. Items outside the folders you have access to are not returned, so results may be fewer than the page size when folder rules apply.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, destructiveHint, openWorldHint). The description adds genuine behavioral context: results are scoped to folders you can access and may be fewer than the page size. It does not cover return format or pagination handling, but adds real value 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?
Two sentences, zero waste, purpose front-loaded and the access-scoping caveat following. 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?
For a 2-param read tool with annotations and no output schema, the description is largely sufficient. The mention of 'page size' with no corresponding pagination parameter is slightly confusing, but nothing critical to correct invocation 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 50%: mailbox is fully documented in-schema (with a list_authorized_mailboxes reference), while query has no schema description. The description partially compensates by explaining query matches item names, but gives no syntax or matching behavior detail, so baseline 3 fits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search one account's Google Drive for files/folders') plus the matching mechanism ('name matches a text query'). This implicitly distinguishes it from list_gdrive_items, but no sibling alternative is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name-match criterion, but there is no explicit when-to-use/when-not guidance and no routing to alternatives like list_gdrive_items. The agent must infer the difference between searching and listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_gmail_messagesSearch Gmail messagesARead-onlyInspect
Search a mailbox using Gmail's own query syntax and return message metadata (id, subject, sender, date, snippet, labels) — not full bodies. Use this to find messages, then get_gmail_message to read one, or apply_gmail_labels to file them. Query examples: 'from:acme.com', 'has:attachment newer_than:7d', 'subject:invoice is:unread'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20, cap 100) | |
| query | No | Gmail search query, same syntax as the Gmail search box | |
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| labelIds | No | Restrict to these label IDs |
TDQS
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 adds genuinely useful behavior beyond that: what is returned (id, subject, sender, date, snippet, labels) and explicitly that full bodies are excluded, which prevents the agent from expecting body content. It doesn't mention pagination or result ordering, so not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and return shape, then routing, then examples. Every sentence earns its place and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only 4-param search tool with a fully described schema and annotations, the description covers purpose, return shape, exclusions, and next-step routing. No output schema exists, so the description's return-value summary is exactly what's 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?
Schema coverage is 100%, so all four parameters are already documented in the schema, including the query syntax and the limit default/cap. The description reinforces the query syntax with examples but adds little 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?
States a specific verb (search) and resource (a mailbox) and scopes the output precisely: Gmail query syntax returning message metadata, not full bodies. This clearly distinguishes it from get_gmail_message and the other mail search 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?
Explicitly routes the agent: use this to find messages, then get_gmail_message to read one, or apply_gmail_labels to file them. That is an explicit when-to-use plus named alternatives, backed by concrete query examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_google_calendar_eventsSearch Google Calendar eventsARead-onlyInspect
Find events matching a text query across titles, descriptions and locations. Searches the next year unless a window is given.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| timeMax | No | ||
| timeMin | No | ||
| calendarId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only, non-destructive, closed-world profile, so the bar is lower. The description still adds non-obvious behavior the schema does not express: the default search window extends one year forward unless timeMin/timeMax are given. It does not describe pagination or how limit interacts with results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core purpose and followed by the one default an agent needs to know. 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 6-parameter read tool with no output schema, the description covers purpose and the time-window default but omits the semantics of calendarId, limit, and the date formats of timeMin/timeMax. Adequate for basic invocation, but under-specified for confident parameter construction.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17% (only mailbox is documented), so the description must carry more of the parameter burden. It clarifies only that the query applies to titles, descriptions and locations, leaving calendarId, timeMin/timeMax format, and limit semantics unexplained in both the schema and the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (find/search) and resource (events), and goes further by stating the searched fields (titles, descriptions, locations). This clearly separates it from list_google_calendar_events, though it never explicitly contrasts with that sibling by name.
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 only usage-relevant guidance is the implicit default (a one-year forward window), which tells the agent what happens if no window is supplied. There is no statement of when to prefer this over list_google_calendar_events or how it behaves relative to search_outlook_calendar_events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_onedrive_itemsSearch OneDriveBRead-onlyInspect
Search one account's OneDrive for files and folders matching a text query. Items outside the folders you have access to are not returned, so results may be fewer than the page size when folder rules apply.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description does add a genuine behavioral trait beyond annotations: results are filtered by folder access and may be smaller than the page size. However, the mention of 'page size' is confusing given no paging parameter exists in the schema, and nothing is said about result shape or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose front-loaded, and every clause carries information. The second sentence is slightly convoluted ('fewer than the page size when folder rules apply') but is not padding.
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 two-parameter read-only search with no output schema, the description covers purpose and one useful access-filtering caveat, but omits what a result item contains and how results are ordered or limited. Adequate but with clear gaps for an agent that must interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: mailbox is fully documented in the schema (including a pointer to list_authorized_mailboxes), while query has no description. The description only clarifies that query is free text, adding little beyond what the schema already conveys. 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?
States a specific verb and resource ('Search one account's OneDrive for files and folders') and narrows scope to text-query matching, which implicitly separates it from list_onedrive_items. It does not name any sibling explicitly, so the differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'matching a text query' implies you reach for this tool when you have a search term rather than a full listing, but the description never states when to prefer it over list_onedrive_items (or search_gdrive_items for the other drive). Usage is implied, not prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_outlook_calendar_eventsSearch Outlook Calendar eventsARead-onlyInspect
Find events whose title, preview text or location matches a query. Searches the next year unless a window is given.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| timeMax | No | ||
| timeMin | No | ||
| calendarId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds a genuinely useful behavioral trait not present in structured fields: the default search window of one year when no time bounds are supplied. It still omits pagination/limit behavior and result ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the match scope is front-loaded and the default window caveat follows immediately. Every clause 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?
With no output schema, the description should say more about what is returned (event fields, ordering, limit effect), and it says nothing. It does cover the core search semantics and the default window, which is adequate for a basic search but leaves the agent guessing on result shape and the undocumented limit/calendarId 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?
Schema coverage is only 17%, so the description must carry weight; it does add meaning for 'query' (matched against title, preview text, location) and implies the time window that timeMin/timeMax control. However, 'limit' and 'calendarId' remain completely undocumented in both schema and description, leaving real gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Find') and resource (events) and clarifies the match fields (title, preview text, location), which implicitly separates it from list_outlook_calendar_events and get_outlook_calendar_event. It does not, however, explicitly name any sibling tool, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It conveys the search context (query-based matching) and the default time horizon ('next year unless a window is given'), which tells the agent when it can call without time parameters. It offers no explicit when-not guidance and never names list_outlook_calendar_events as the alternative for enumerating events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_outlook_messagesSearch Outlook messagesARead-onlyInspect
Search a mailbox using Outlook's search syntax and return message metadata — not bodies — best match first. Searches the whole mailbox unless folderId is given. Use this to find messages, then get_outlook_message to read one, or move_messages to file them. Plain keywords plus from:, to:, subject:, received>=YYYY-MM-DD, hasattachments:yes and OR all work; put an exact phrase in double quotes and don't escape anything. Examples: 'from:acme.com', 'invoice overdue', 'subject:"roof quote" received>=2026-09-01'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25, cap 100) | |
| query | No | Search terms; omit to get the most recent messages | |
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| folderId | No | Restrict to one folder; omit to search the whole mailbox |
TDQS
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 adds genuinely useful traits beyond that: results are metadata only (not bodies), ordered best-match-first, and mailbox-wide by default unless folderId narrows it — none of which is in 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?
Front-loaded with purpose, then scope, then routing, then syntax and concrete examples — four tight sentences with no filler. Every clause (including the quoting note and examples) earns its place by preventing malformed queries.
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 no output schema, the description compensates by stating the return shape (metadata, not bodies) and ordering, and annotations cover the safety profile. The only mild gap is not enumerating which metadata fields come back, which is minor for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, making 3 the baseline, but the description goes further by documenting the query grammar (from:, to:, subject:, received>=YYYY-MM-DD, hasattachments:yes, OR, quoted phrases) that the schema does not express. It also reinforces folderId's scoping behavior, adding real meaning over the parameter list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Search a mailbox") and immediately scopes the output ("message metadata — not bodies") and the default scope (whole mailbox unless folderId is given). This cleanly separates it from get_outlook_message (reads one message) and list_messages, so an agent can pick it without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes: "Use this to find messages, then get_outlook_message to read one, or move_messages to file them," naming both the trigger and the follow-on tools. It lacks an explicit when-not clause (e.g., versus list_messages or search_gmail_messages), so it falls just 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.
send_agentmail_messageSend from an AgentMail inboxADestructiveInspect
Send a new email from this AgentMail inbox, as that inbox's address. Plain text only — write real line breaks, not HTML. Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | ||
| to | Yes | Recipient addresses. Bare addresses only — display names aren't supported. | |
| bcc | No | ||
| body | Yes | Plain text body. | |
| mailbox | Yes | Address of the connected AgentMail inbox to act on. Call list_authorized_mailboxes to see available options. | |
| subject | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and openWorldHint=true, so the safety profile is partly covered. The description adds real value beyond that: it discloses the plain-text-only constraint, warns against HTML markup, and mandates user confirmation before sending — none of which the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses, front-loaded with the action, then the format constraint, then the confirmation gate. No filler and nothing buried.
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 six-parameter outbound send with no output schema, the description covers the essentials an agent needs: sending identity, plain-text format, and the confirmation requirement. It leaves cc/bcc handling and any recipient-count limits unaddressed, which is a minor gap given the schema's enum-less, mostly self-describing 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?
Schema description coverage is 50%, and the description only reinforces the body format ('plain text only, real line breaks') already noted in the body schema and clarifies the mailbox-as-sender-identity relationship. It says nothing about cc, bcc, or subject beyond what the schema minimally 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?
States a specific verb (Send) plus resource (new email) and scoping (from this AgentMail inbox, as that inbox's address). The word 'new' implicitly separates it from send_agentmail_reply and create_agentmail_draft, and the sending-identity clause pins down what the mailbox parameter represents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage directive — 'Ask the user to confirm before calling this' — which tells the agent this is a gated action. It doesn't explicitly name send_agentmail_reply or create_agentmail_draft as alternatives for other cases, so the routing is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_agentmail_replyReply from an AgentMail inboxADestructiveInspect
Reply in an existing thread. Recipients and subject come from the original — you supply only the body. Set replyAll to include everyone on the original's To and Cc; by default it replies to the sender only. Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Extra Cc recipients. | |
| body | Yes | Plain text body of the reply. | |
| mailbox | Yes | Address of the connected AgentMail inbox to act on. Call list_authorized_mailboxes to see available options. | |
| replyAll | No | Include everyone on the original. Default false. | |
| messageId | Yes | The message being replied to, from search_agentmail_messages or get_agentmail_thread. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true; the description earns credit for adding real context beyond them — that addressing and subject are derived from the original message, the default is sender-only reply, and that user confirmation is expected before the irreversible send. It does not mention rate limits or delivery failure behavior, keeping it out of the top band.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core contract front-loaded, followed by the replyAll nuance and the safety instruction. No filler and nothing repeated from the schema verbatim.
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 mutating, open-world send tool with no output schema, the description covers the essentials: what is auto-derived, the addressing default, and the confirmation requirement. It stops short of describing delivery/error outcomes or what happens if the thread or messageId is invalid, which would complete the picture.
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 the schema already documents replyAll's default and the cc field, so the schema does the heavy lifting. The description restates the replyAll semantics and clarifies that body is the only content the caller owns, which is mildly additive but not new syntax or format 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?
States a specific verb (reply) and resource (existing thread) and immediately defines the contract: recipients and subject are inherited, the caller only supplies the body. This distinguishes it from send_agentmail_message and create_agentmail_draft without the agent needing to open another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit conditional guidance for replyAll (include everyone vs. sender-only default) and a clear precondition — 'Ask the user to confirm before calling this.' It does not name the sibling tool to use when starting a new thread instead, so the routing guidance is one step short of exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_gmail_messageSend a Gmail messageADestructiveInspect
Send a new email from this mailbox. Sends as the mailbox owner and nobody else. Plain text only — write real line breaks, not HTML. Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | ||
| to | Yes | Recipient addresses. Bare addresses only — display names aren't supported. | |
| bcc | No | ||
| body | Yes | Plain text body. | |
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| subject | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With destructiveHint/openWorldHint already set, the description still adds meaningful context: the mail is sent only as the mailbox owner (identity constraint) and the body must be plain text with real line breaks rather than HTML. It stops short of stating rate limits, irreversibility, or whether the sent message is stored in the mailbox.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short imperative sentences, no filler. The core action leads, and the identity, format, and confirmation constraints follow in order of importance.
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 six-parameter, no-output-schema mutation tool, the description covers operation, sender scope, body format, and the confirmation workflow. It omits any mention of cc/bcc semantics or whether an attachment can accompany the send, which is a modest remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'to', 'body', and 'mailbox' are documented in the schema while 'cc', 'bcc', and 'subject' are not. The description only reinforces the plain-text body constraint and adds nothing about the undocumented recipients or subject, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Send a new email from this mailbox'), and the qualifier 'new' implicitly separates it from send_gmail_reply and create_gmail_draft in the sibling list. An agent can identify the tool's role without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete precondition — 'Ask the user to confirm before calling this' — which is real operational guidance for an outbound-send tool. However, it never names alternatives, so an agent is not explicitly told to prefer create_gmail_draft for drafts or send_gmail_reply for replies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_gmail_replyReply to a Gmail messageADestructiveInspect
Reply in an existing thread. Recipients and subject are taken from the original — you supply only the body. Set replyAll to include everyone on the original's To and Cc; by default it replies to the sender only. Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Extra Cc recipients. | |
| body | Yes | Plain text body of the reply. | |
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| replyAll | No | Include everyone on the original. Default false. | |
| messageId | Yes | The message being replied to, from search_gmail_messages or get_gmail_thread. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the write/external-effect profile is covered. The description adds real value beyond them: auto-derived recipients/subject, replyAll including To and Cc vs. sender-only default, and a mandatory user-confirmation step.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action and thread behavior, then the replyAll default, then the confirmation requirement. No filler and every sentence carries operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a send tool with no output schema and full schema coverage, the description covers the operationally critical facts (derived fields, replyAll semantics, confirmation). It omits what the call returns (e.g. new message/thread id), which is the only notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description still adds meaning: it clarifies that only body is supplied (recipients/subject are derived) and explains replyAll's exact scope (original To and Cc) versus the default sender-only behavior, exceeding the schema's terser wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (reply to a Gmail message) and the key behavioral distinction that recipients and subject come from the original thread. This clearly separates it from send_gmail_message (new message) and create_gmail_draft, so an agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear context ("in an existing thread") and an explicit procedural instruction ("Ask the user to confirm before calling this"). It does not explicitly name send_gmail_message as the alternative for new threads, but the thread-scoping makes the boundary inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_outlook_messageSend an Outlook messageADestructiveInspect
Send a new email from this mailbox. Sends as the mailbox owner and nobody else. Plain text only. Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | ||
| to | Yes | Recipient addresses. Bare addresses only — display names aren't supported. | |
| bcc | No | ||
| body | Yes | Plain text body. | |
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| subject | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the write/external nature is known. The description adds context annotations don't carry: the message is sent strictly as the mailbox owner and nobody else, the body must be plain text, and user confirmation is required. These are real behavioral constraints beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short, front-loaded sentences with no filler: the action, the sender identity constraint, the format constraint, and the confirmation rule. Each sentence carries distinct information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, no-output-schema send tool, the description covers identity, format, and the confirmation safeguard, which is the critical safety information. The gap is the undocumented cc/bcc/subject parameters and absence of any error or failure behavior, but the essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'to', 'body' and 'mailbox' are documented in the schema, while cc, bcc and subject are not. The description's 'plain text only' partly supports the body parameter and 'as the mailbox owner' reinforces mailbox, but cc/bcc/subject semantics remain undocumented in either place, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Send a new email from this mailbox'), and the word 'new' implicitly separates it from the sibling send_outlook_reply. It does not name any sibling explicitly, so differentiation rests on inference rather than an explicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one concrete usage rule — confirm with the user before calling — which is genuinely useful for a destructive send. However, it never says when this tool is preferable to create_outlook_draft or send_outlook_reply, nor any condition under which 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.
send_outlook_replyReply to an Outlook messageADestructiveInspect
Reply in an existing conversation. Outlook builds the reply itself — recipients, subject and the quoted original — so you supply only the body. Set replyAll to include everyone on the original. Ask the user to confirm before calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Plain text body of the reply. | |
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| replyAll | No | Include everyone on the original. Default false. | |
| messageId | Yes | The message being replied to, from search_outlook_messages or list_messages. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write/open-world/destructive profile, so the bar is lower, and the description still adds real value: it discloses that the server generates recipients, subject and quoted text, and it imposes a confirm-before-calling guardrail. It does not say whether the send is irreversible or what happens if the conversation has moved on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and the reason it differs from a generic send, then parameter guidance, then the safety instruction. No waste and no restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the definition covers the key unknowns an agent faces: what it must supply, what the server derives, how recipient scope is controlled, and that user confirmation is expected. Nothing required for a correct call 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%, so the baseline is 3, but the description adds meaning beyond the schema by explaining the contract behind body (only the body is supplied because everything else is derived) and tying replyAll to its behavioral effect on the original's recipient list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Reply in an existing conversation') and immediately clarifies the mechanism that separates it from send_outlook_message and create_outlook_draft: Outlook constructs recipients, subject and quoted original server-side. An agent can distinguish this tool from its siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It scopes usage to an existing conversation and states the replyAll condition plus a human-confirmation requirement, which is clear operational context. It stops short of explicitly naming the alternatives (send_outlook_message for new mail, create_outlook_draft to stage without sending) or stating 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.
set_access_role_capabilityTurn a capability on or off for an access roleADestructiveInspect
Switch one of the eight capabilities on or off for an access role in a workspace you own — it reaches everyone who follows the role at once. Capabilities: readMail (Read my email), sendMail (Send email on my behalf), manageSheets (Work with my spreadsheets), readFiles (Read my files), shareFiles (Share files with people I name), manageTasks (Manage my tasks), draftReplies (Draft replies for me), manageCalendar (Manage my calendar). This only stages a request: the owner opens the link in their browser, reviews it, and approves it there with their agent PIN. Never ask for or accept the PIN in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | The access role's name. | |
| enabled | Yes | true to allow, false to refuse. | |
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. | |
| capability | Yes | Which capability. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing that the call only 'stages a request' requiring the owner to approve out-of-band with an agent PIN, and warns never to accept the PIN in chat. That approval workflow and security constraint are non-obvious behaviors an agent cannot infer from destructiveHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and resource, then the capability glossary, then the approval caveat. The eight-item list is somewhat long and overlaps the schema enum, but each gloss adds value and the ordering keeps the critical caveat visible at the end.
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 mutation tool with no output schema, the description covers everything needed to invoke correctly: the resource domain, the workspace precondition, the blast radius, and the out-of-band approval flow. Nothing an agent needs 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 description coverage is 100%, so the baseline is 3. The description adds real meaning by mapping each enum value to a plain-language gloss (readMail = 'Read my email', sendMail = 'Send email on my behalf'), which the bare enum does not provide, and by clarifying the workspace parameter's ownership requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Switch ... on or off'), the exact resource (one of eight named capabilities for an access role), and scope (a workspace you own). It enumerates all eight capability values with human-readable glosses, so an agent knows precisely what is being toggled without opening the enum.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition ('in a workspace you own') and blast-radius context ('reaches everyone who follows the role at once'). It implicitly separates itself from siblings like set_access_role_mailbox_access and set_access_role_skill_access by scoping to the eight capability names, but never names an alternative or an explicit when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_access_role_mailbox_accessSet an access role's reach into a mailboxADestructiveInspect
How far an access role's agents may reach into one mailbox: the access level (write = everything its capabilities allow, read = search and read only, none = hidden), which folders its file tools may use (all / only these / all except these, by folder path), and which calendars (all / only these / all except these, by calendar name). Give only the parts you want to change; the others stay as they are. list_access_roles shows the current standing. This only stages a request: the owner opens the link in their browser, reviews it, and approves it there with their agent PIN. Never ask for or accept the PIN in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | The access role's name. | |
| level | No | Access level: write, read, or none (hidden). | |
| folders | No | Folder paths for an only/except folder rule, e.g. ["Clients/Acme", "Shared"]. | |
| mailbox | Yes | The connected mailbox's address. | |
| provider | No | Only needed when the same address is connected under more than one provider. | |
| calendars | No | Calendar names (or ids) for an only/except calendar rule. | |
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. | |
| folderMode | No | Folder rule for file tools: all, only, or except. | |
| calendarMode | No | Calendar rule: all, only, or except. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, destructiveHint=true, openWorldHint=false. The description adds real behavior the annotations cannot convey: this is a partial/patch update, it does not take effect immediately but stages a request that the owner approves in a browser with an agent PIN, and the PIN must never be handled in chat. It also explains what each access level actually grants, which is exactly the kind of context a mutation tool needs.
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?
Four sentences, each load-bearing, and the scoping statement is front-loaded ahead of patch semantics, the read-tool pointer, and the staging/PIN warning. No filler or restatement of the schema.
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 9-parameter mutation with no output schema, the description covers everything an agent needs: what is configurable, that unspecified parts are preserved, that the effect is deferred to an owner approval step, and the PIN handling constraint. Nothing material 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%, so the baseline is 3, and the description meaningfully exceeds it by defining the enum semantics the schema only lists: write = everything its capabilities allow, read = search and read only, none = hidden, plus the all/only/except interpretation for folders and calendars. It does not touch provider or workspace, but those are self-documenting in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates exactly what the tool configures: an access role's reach into one mailbox, split into access level, folder rules for file tools, and calendar rules. That content makes it naturally distinguishable from the capability/skill siblings. The one weakness is that the operative verb ('set') lives in the title rather than the description, whose first sentence is a noun phrase ('How far an access role's agents may reach...').
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?
Strong operational guidance: 'Give only the parts you want to change; the others stay as they are' establishes patch semantics, and 'list_access_roles shows the current standing' routes the agent to the read counterpart. The staging workflow and the PIN rule are spelled out clearly. It never names a when-not condition or an adjacent write sibling (set_access_role_capability, set_access_role_skill_access), so the alternative-selection guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_access_role_skill_accessSet an access role's access to a skillADestructiveInspect
How far an access role's agents may go with one skill: none (hidden — not listed, not served), use (may read and follow it; the default for every role), or edit (may also change it for the whole workspace with update_skill). Owners always have edit. list_skills shows the slugs. This only stages a request: the owner opens the link in their browser, reviews it, and approves it there with their agent PIN. Never ask for or accept the PIN in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | The access role's name. | |
| level | Yes | none = hidden from the role's agents, use = may follow it, edit = may also change it. | |
| skill | Yes | The skill's slug, as list_skills shows it. | |
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnly=false / destructive=true / openWorld=false; the description adds substantially more: the call is two-phase (stages a request, owner reviews and approves via browser link with an agent PIN), 'none' means hidden and not served, and there is an explicit security rule never to accept the PIN in chat. That is exactly the behavioral context annotations can't express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the actual semantics (the three levels) before the workflow and safety notes, and every subsequent sentence carries operational weight. It is dense but not padded; the colon list in sentence one is slightly compressed but readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must tell the agent what the call actually does — and it does, making clear the change is staged and only takes effect after owner approval, plus who can do what and which tool supplies valid skill identifiers. Nothing needed to call or interpret it correctly 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 description coverage is 100%, so all four parameters and the level enum are already documented in the schema; the description's restatement of the three levels and the 'list_skills shows the slugs' pointer largely duplicate it. Baseline 3 is appropriate, with only marginal added meaning (e.g. 'not served' sharpening 'none').
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 opening sentence gives a specific verb+resource at the exact granularity of the tool (one access role × one skill) and enumerates the three possible states. That granularity distinguishes it from the nearby set_access_role_capability / set_access_role_mailbox_access / assign_access_role siblings without either schema being opened.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the precondition (skill slugs come from list_skills), the default state (use for every role), the owners-always-edit exception, and the post-call workflow the agent must expect. It does not explicitly name which sibling to reach for instead when the intent is a non-skill capability, so it stops 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.
set_member_workspace_roleChange a member's workspace roleADestructiveInspect
Make a member of a workspace you own an admin, a member, or an owner. Owners are unrestricted and can administer the workspace; admins put people in access roles; members just use it. You can't change your own role this way. This only stages a request: the owner opens the link in their browser, reviews it, and approves it there with their agent PIN. Never ask for or accept the PIN in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | The new workspace role. | |
| Yes | The member's email. | ||
| workspace | No | Which workspace, by name or id. Only needed when you own more than one — list_workspaces shows them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the write/destructive profile but nothing about workflow. The description adds major context the annotations cannot: the call only stages a request, the owner must open a link and approve in-browser with a PIN, and the agent must never request or accept that PIN in chat. It also discloses the self-role restriction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then role semantics, then constraints, then the staging/PIN workflow. Four sentences, each carrying real information; the trailing PIN safety instruction is distinct and not redundant, though the role-definitions clause is slightly verbose.
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 no output schema and annotations limited to safety hints, the description carries the full burden and does: it covers the staged-approval flow, the security handling of the PIN, and the self-role limitation. An agent has everything needed to call and explain the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a 3 is the baseline, but the description adds meaning beyond the schema: it explains what owner/admin/member actually confer, and clarifies the optional workspace param is only needed when the caller owns more than one (matching the schema note but reinforcing it in prose).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Make a member of a workspace you own an admin, a member, or an owner') and defines each role's meaning. The 'admins put people in access roles' phrasing implicitly separates this from sibling assign_access_role, and the owner/admin/member semantics distinguish it from invite_member or remove_member.
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?
Imposes a clear precondition ('a workspace you own') and an explicit exclusion ('You can't change your own role this way'), which gives the agent real routing signal. It stops short of naming the sibling alternative to use instead, so it is clear context rather than full when/when-not/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_agentmail_labelsLabel or trash AgentMail messagesAInspect
Add and remove labels on up to 50 messages. Labels are plain names, created on first use. Add trash to move a message to trash (reads and searches skip it; removing trash restores it); remove unread to mark it read.
| Name | Required | Description | Default |
|---|---|---|---|
| mailbox | Yes | Address of the connected AgentMail inbox to act on. Call list_authorized_mailboxes to see available options. | |
| addLabels | No | ||
| messageIds | Yes | ||
| removeLabels | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond annotations by disclosing implicit side effects: labels are created on first use, adding 'trash' hides the message from reads and searches, and removing it restores the message. That reversibility detail supports the destructiveHint=false annotation and tells the agent the operation is recoverable, though response/error behavior is unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with the core action front-loaded and the special-label semantics following. No filler, every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param mutation with low schema coverage and no output schema, it covers limits, label creation semantics, and the trash/unread special cases well. It lacks detail on combining add and remove in one call and on failure modes, but is largely sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only mailbox is documented), so the description must compensate. It does add meaning for the label params ('plain names, created on first use') and clarifies the messageIds cap ('up to 50 messages'), but does not explain the addLabels vs removeLabels distinction or that they are separate arrays.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verbs (add/remove) plus resource (labels on AgentMail messages) and scope (up to 50 messages). An agent can immediately tell this is the AgentMail labeling tool and not the Gmail equivalent or a folder/move 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?
Explains the practical scenarios for special labels ('Add trash to move a message to trash... remove unread to mark it read'), which tells the agent when to reach for those values. It does not name or compare against alternatives like apply_gmail_labels or move_messages, so it stops short of explicit 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_excel_rangeWrite cells to an Excel rangeADestructiveInspect
Overwrite the cells in a range. Whatever is there is replaced without warning, so read the range first if you need to keep any of it. Values are interpreted as if typed.
| Name | Required | Description | Default |
|---|---|---|---|
| range | Yes | ||
| sheet | Yes | ||
| values | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| workbookId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, so the safety profile is covered, but the description adds the practical consequence ('replaced without warning') and a genuinely new behavioral fact not in any structured field: 'Values are interpreted as if typed,' which warns about implicit type coercion. It doesn't mention auth requirements or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, and the destructive warning is front-loaded immediately after the verb so the risk is read before any 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?
For a destructive write tool with no output schema and 20% schema coverage, the description covers the risk side well (overwrite, coercion) but leaves the call-construction side thin: range addressing and values shape are undefined anywhere. Workable, but an agent must guess at parameter formats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (just the mailbox field), and the description never explains what 'range' expects (A1 notation?), how 'sheet' is identified, or that 'values' is a 2-D array of strings. 'Interpreted as if typed' hints at coercion but does not compensate for four undocumented required 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 states a specific verb and resource: 'Overwrite the cells in a range,' which an agent can distinguish from append_excel_rows or read_excel_range by the overwrite semantics. It does not explicitly name any sibling tool, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete precondition for safe use ('read the range first if you need to keep any of it'), which tells the agent when this call is dangerous. It stops short of naming read_excel_range or contrasting with append/clear variants, so the guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_google_calendar_eventUpdate a Google Calendar eventADestructiveInspect
Change an event's title, times, description, location or guest list. Supply only the fields to change. Changing an event that has guests emails them an update. Editing a whole recurring series is not supported. Passing attendees REPLACES the guest list — include everyone who should stay on the event, or they are uninvited.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No | ||
| title | No | ||
| eventId | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| location | No | ||
| timeZone | No | ||
| attendees | No | The complete guest list after the change. Replaces what is there — omitting someone uninvites them and emails them a cancellation | |
| calendarId | No | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and openWorldHint=true; the description goes well beyond them by disclosing that guest-bearing events trigger notification emails and that passing attendees wholesale REPLACES the guest list, uninviting and emailing cancellations to omitted people. That is exactly the side-effect detail an agent needs before calling a destructive mutation.
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?
Five short sentences, front-loaded with the action and mutable fields, then escalating to the two risk-bearing caveats. Nothing is redundant with the schema and no sentence is 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?
No output schema exists, so return behaviour is not described, but the destructive-path warnings and the recurring-series limitation cover the highest-risk unknowns. The unexplained calendarId/timeZone parameters are the only notable shortfall for an otherwise well-covered mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20% (mailbox and attendees are the only documented properties), so the description must compensate. It maps title, start/end, description, location and attendees to the request, but leaves calendarId and timeZone unexplained and gives no format guidance (e.g. date-time encoding), leaving real gaps for a 10-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?
States a specific verb (change/update) and resource (Google Calendar event) and enumerates the mutable surface: title, times, description, location, guest list. It does not name the neighbouring alternatives (update_outlook_calendar_event, move_google_calendar_event) to sharpen the boundary, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Supply only the fields to change" gives clear partial-update semantics, and "Editing a whole recurring series is not supported" is an explicit when-not constraint. It never names a sibling tool as the alternative for cases it excludes (e.g. moving an event), so it is context-rich but not fully routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_google_sheet_rangeWrite cells to a Google Sheets rangeADestructiveInspect
Overwrite the cells in a range. Whatever is there is replaced without warning, so read the range first if you need to keep any of it. Values are interpreted as if typed unless valueInput is RAW.
| Name | Required | Description | Default |
|---|---|---|---|
| range | Yes | ||
| values | Yes | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| valueInput | No | ||
| spreadsheetId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds real value: it warns the replacement happens 'without warning' and explains value-interpretation behavior tied to valueInput. It does not cover auth/permission requirements, but with annotations carrying the safety profile this is solidly above 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?
Three tight sentences with the destructive warning front-loaded and zero filler. Every sentence carries information the agent needs before calling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive write tool with no output schema, the description covers the critical destruction and valueInput semantics. It omits range format and permission/mailbox prerequisites, which leaves a small gap for a 5-param mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (mailbox alone), so the description must compensate and it only partially does. It clarifies the valueInput semantics ('interpreted as if typed unless RAW'), which is the trickiest param, but range notation (A1?), values shape, and spreadsheetId are left undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (overwrite) and resource (cells in a range), and the word 'overwrite' implicitly distinguishes it from append_google_sheet_rows and clear_google_sheet_range. However, it never names a sibling tool, so the differentiation is left to inference rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives actionable pre-call guidance: 'read the range first if you need to keep any of it.' That is clear context for a destructive write. It stops short of routing between alternatives (e.g., append vs overwrite, or the Excel equivalent), so no explicit exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_google_taskUpdate a Google taskADestructiveInspect
Change a task's title, notes, due date or status. Only the fields you pass are touched. Use clearDueDate to remove a due date — omitting dueDate leaves the existing one alone.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| title | No | ||
| listId | Yes | ||
| status | No | ||
| taskId | Yes | ||
| dueDate | No | ||
| mailbox | Yes | Email address of the connected Gmail/Google Workspace mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| clearDueDate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the agent knows this mutates state. The description adds valuable patch-behavior context (unpassed fields are preserved, clearDueDate removes the date) that the annotations do not convey. It stops short of explaining what destruction means here or what identifiers/authorization the call requires, so it neither contradicts nor fully enriches the annotation 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?
Three short sentences, front-loaded with the field list and zero filler. Every sentence carries information the agent needs: what changes, that it's a partial update, and how to clear a due date.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with 13% schema coverage and no output schema, the description covers the mutation semantics well but omits how to identify the target (listId, taskId), whether it requires mailbox authorization, and what happens on invalid IDs. Adequate but with clear 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 only 13% (just 'mailbox'), so the description must compensate: it explains clearDueDate and the omit-vs-explicit dueDate distinction, which is genuinely beyond the bare schema. However listId and taskId — two of three required parameters — get no explanation anywhere, so coverage is still incomplete. Baseline 3 fits given the partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Change a task's title, notes, due date or status') and enumerates the mutable fields, so the agent knows exactly what this tool does. It does not differentiate itself from near-siblings like update_outlook_task or complete_google_task, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful invocation semantics ('only the fields you pass are touched', 'clearDueDate to remove a due date'), which is real guidance on how to call it. It never says when to pick this over alternatives such as update_outlook_task or complete_google_task, nor any prerequisites, so usage 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.
update_outlook_calendar_eventUpdate an Outlook Calendar eventADestructiveInspect
Change an event's title, times, description, location or guest list. Supply only the fields to change. Changing an event that has guests emails them an update, which Outlook sends unconditionally. Editing a whole recurring series is not supported. Passing attendees REPLACES the guest list — include everyone who should stay on the event, or they are uninvited.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No | ||
| title | No | ||
| eventId | Yes | ||
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| location | No | ||
| timeZone | No | ||
| attendees | No | The complete guest list after the change. Replaces what is there — omitting someone uninvites them and emails them a cancellation | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give readOnly=false/destructive=true/openWorld=true; the description adds non-obvious side effects the annotations cannot express — that changing an event with guests emails them unconditionally, and that passing attendees silently uninvites omitted guests. This is exactly the behavioral detail that prevents a destructive mistake.
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?
Four sentences, each front-loaded and earning its place: purpose, patch instruction, email side effect, recurring-series limitation, and the attendees replacement warning. No 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?
For a destructive mutation with no output schema, the description covers the highest-risk behaviors (guest notification, attendee replacement, recurring-series limitation). It omits timeZone handling relative to start/end and any response expectation, but is otherwise sufficient to call the tool safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 22%, so the description must carry the load, and it does for the important ambiguous cases: it clarifies the field set (title, start/end, description, location, attendees) and spells out the replace-not-merge semantics of attendees. It leaves timeZone and eventId unexplained, so it doesn't fully close the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (change/update) and resource (Outlook calendar event) and enumerates the mutable fields (title, times, description, location, guest list). This clearly distinguishes it from create_/delete_/move_/get_outlook_calendar_event siblings without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Supply only the fields to change" establishes patch semantics, and "Editing a whole recurring series is not supported" is an explicit when-not constraint. It stops short of naming an alternative tool (e.g. move_outlook_calendar_event for relocating), so routing guidance is implied rather than complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_outlook_taskUpdate To Do taskADestructiveInspect
Change a task's title, due date, importance, notes or status. Omitted fields are left alone; pass clearDueDate to remove a due date entirely.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| title | No | ||
| listId | Yes | ||
| status | No | ||
| taskId | Yes | ||
| dueDate | No | "YYYY-MM-DD" or a full datetime | |
| mailbox | Yes | Email address of the connected Outlook/Microsoft 365 mailbox to act on. Call list_authorized_mailboxes to see available options. | |
| timeZone | No | IANA timezone for dueDate | |
| importance | No | ||
| clearDueDate | No | Remove the due date |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With destructiveHint=true already declared, the description adds real value by clarifying that omitted fields are preserved (partial update, not overwrite) and that clearDueDate is the explicit mechanism for removing a due date. It does not cover permission/auth requirements or reversibility, so it stops short of full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the field list comes first and the patch/clearDueDate behavior follows as the key 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?
For a 10-parameter mutation tool with no output schema, the description adequately covers the mutation contract and the one non-obvious flag. The remaining gap is that it never frames the required mailbox/listId/taskId triplet as the addressing scheme, though the mailbox schema partially covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40%, so the description must carry weight, and it does: it names title, dueDate, importance, notes, status and clearDueDate, i.e. the very fields the schema leaves undocumented, and explains the clearDueDate side effect. It omits any semantic help for the required identifiers (mailbox, listId, taskId) and timeZone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (change/update) and resource (an Outlook To Do task) and enumerates the mutable fields, so the agent knows exactly what surface it touches. It doesn't explicitly distinguish itself from close siblings like complete_outlook_task or update_google_task, but the task-update 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?
Usage is implied by the field list and the patch semantics ('omitted fields are left alone'), which tells the agent this is for partial edits rather than a full replacement. However, it never says when to prefer complete_outlook_task over this tool, nor does it name any alternative or prerequisite beyond the mailbox parameter's own schema note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_skillChange a skill for the whole workspaceAInspect
Save a new version of one of this workspace's skills, so every agent in the workspace follows the change from its next use. Call it when the person asks you to change how a skill works: send the slug, the full new body (the instructions only — not the SKILL.md front matter, the Inputs list or the Changing-this-skill section), and a one-line reason for the history. Description and inputs can be changed the same way. Every version is kept and an owner can restore any of them. Allowed only where list_skills shows access: edit; a skill that follows the Higgs Hub library becomes this workspace's own copy on its first change. The reply carries the new file — write it over your installed copy.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | The complete new instructions, Markdown, replacing the current body. | |
| slug | Yes | The skill's slug, as returned by list_skills. | |
| reason | Yes | One line for the version history: what changed and why, e.g. "ask for the job address at intake". | |
| arguments | No | The inputs the skill asks for, replacing the current list. | |
| description | No | A new one-paragraph description — what the skill does and when to use it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the generic write/non-destructive profile; the description adds real behavioral context beyond that: every version is retained and restorable by an owner, a library-derived skill forks into a workspace copy on first change, and the reply carries a file the agent must write over its installed copy. These are the traits an agent cannot infer from readOnlyHint=false or destructiveHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and trigger before the caveats, and nearly every sentence carries required information (access gate, versioning, the body's exclusion list, the file-write side effect). It is a dense single paragraph, but the density is load-bearing rather than 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 five-parameter mutation tool with no output schema, the description covers the access prerequisite, version retention, the fork-from-library behavior, the content boundaries of the body field, and what the response contains. Nothing an agent needs before calling it 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%, so the baseline is 3, but the description adds genuine semantics: 'body' is the instructions only and must exclude the SKILL.md front matter, Inputs list and Changing-this-skill section, and 'reason' is a one-line history entry. That goes beyond the schema's own wording for these fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Save a new version of one of this workspace's skills') plus scope ('every agent in the workspace follows the change from its next use'). It is clearly distinguishable from siblings get_skill and list_skills, which read rather than version a skill.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('Call it when the person asks you to change how a skill works') and a hard precondition ('Allowed only where list_skills shows access: edit'). It also distinguishes itself from add/list tools by naming the sibling that gates it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_request_statusCheck a staged changeARead-onlyInspect
What happened to a change you staged (invite_member, create_access_role, …): pending, approved (with the outcome), declined, expired, or failed (with the reason). Call it after the user says they have dealt with the approval link.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | The requestId the staging tool returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds value beyond that by disclosing the actual result states and noting that 'approved' carries an outcome and 'failed' carries a reason, which is genuine behavioral context for interpreting the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste: the outcome list is front-loaded and the invocation trigger is appended. Every clause carries information the agent cannot get from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must convey return semantics — and it does, by listing all terminal and in-progress states. Combined with read-only annotations and a single fully-documented parameter, an agent has everything needed to call and interpret 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?
Schema description coverage is 100% and the single requestId is fully documented in the schema as 'the requestId the staging tool returned.' The description only refers to 'a change you staged' and adds no additional semantics, so the baseline 3 applies when the schema does all the 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 states a specific resource (a staged change request) and enumerates its possible outcomes (pending, approved, declined, expired, failed), so an agent knows exactly what this returns. It also names the staging tools (invite_member, create_access_role) that generate the request, which cleanly separates it from every write-oriented sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete trigger: 'Call it after the user says they have dealt with the approval link.' The prerequisite (a change was previously staged) is implied by the parenthetical staging tools. There is no explicit when-not guidance or named alternative, but no close sibling competes for this use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
- Added
create_agentmail_draft - Changed
disconnect_mailbox2 fields changed- changed
Input schema / properties / provider / descriptionPrevious value: -"Only needed when the same address is connected under both providers."New value: +"Only needed when the same address is connected under more than one provider." - changed
Input schema / properties / provider / enumPrevious value: -[ - "google", - "microsoft" -]New value: +[ + "google", + "microsoft", + "agentmail" +]
- Added
get_agentmail_message - Added
get_agentmail_thread - Changed
list_messages2 fields changed- changed
Input schema / properties / search / descriptionPrevious value: -"Free-text search within the folder"New value: +"Search within the folder: plain keywords, from:/subject: etc., exact phrases in double quotes. Don't escape anything." - added
Input schema / properties / search / maxLengthAdded value: +500
- Added
read_agentmail_attachment - Added
search_agentmail_messages - Changed
search_outlook_messages1 field changed- added
Input schema / properties / query / maxLengthAdded value: +500
- Added
send_agentmail_message - Added
send_agentmail_reply - Changed
set_access_role_mailbox_access2 fields changed- changed
Input schema / properties / provider / descriptionPrevious value: -"Only needed when the same address is connected under both providers."New value: +"Only needed when the same address is connected under more than one provider." - changed
Input schema / properties / provider / enumPrevious value: -[ - "google", - "microsoft" -]New value: +[ + "google", + "microsoft", + "agentmail" +]
- Added
update_agentmail_labels
138 tool updates
- First observed
add_excel_sheet - First observed
add_google_sheet_tab - First observed
append_excel_rows - First observed
append_google_sheet_rows - First observed
apply_gmail_labels - First observed
assign_access_role - First observed
cancel_invitation - First observed
clear_excel_range - First observed
clear_google_sheet_range - First observed
complete_google_task - First observed
complete_outlook_task - First observed
create_access_role - First observed
create_excel_workbook - First observed
create_gdrive_folder - First observed
create_gmail_draft - First observed
create_gmail_filter - First observed
create_gmail_label - First observed
create_google_calendar - First observed
create_google_calendar_event - First observed
create_google_spreadsheet - First observed
create_google_task - First observed
create_google_task_list - First observed
create_inbox_rule - First observed
create_mail_folder - First observed
create_onedrive_folder - First observed
create_outlook_calendar - First observed
create_outlook_calendar_event - First observed
create_outlook_draft - First observed
create_outlook_task - First observed
create_outlook_task_list - First observed
delete_access_role - First observed
delete_gdrive_item - First observed
delete_gmail_filter - First observed
delete_gmail_label - First observed
delete_google_calendar - First observed
delete_google_calendar_event - First observed
delete_google_task - First observed
delete_google_task_list - First observed
delete_inbox_rule - First observed
delete_mail_folder - First observed
delete_onedrive_item - First observed
delete_outlook_calendar - First observed
delete_outlook_calendar_event - First observed
delete_outlook_task - First observed
delete_outlook_task_list - First observed
disconnect_mailbox - First observed
find_duplicate_gmail_labels - First observed
find_duplicate_mail_folders - First observed
find_google_calendar_busy_times - First observed
find_outlook_calendar_busy_times - First observed
get_excel_workbook - First observed
get_gmail_message - First observed
get_gmail_thread - First observed
get_google_calendar_event - First observed
get_google_spreadsheet - First observed
get_google_task - First observed
get_outlook_calendar_event - First observed
get_outlook_conversation - First observed
get_outlook_message - First observed
get_outlook_task - First observed
get_skill - First observed
invite_member - First observed
list_access_roles - First observed
list_authorized_mailboxes - First observed
list_excel_workbooks - First observed
list_gdrive_items - First observed
list_gdrive_permissions - First observed
list_gmail_filters - First observed
list_gmail_labels - First observed
list_google_calendar_events - First observed
list_google_calendars - First observed
list_google_spreadsheets - First observed
list_google_task_lists - First observed
list_google_tasks - First observed
list_inbox_rules - First observed
list_mail_folders - First observed
list_messages - First observed
list_onedrive_items - First observed
list_onedrive_permissions - First observed
list_outlook_calendar_events - First observed
list_outlook_calendars - First observed
list_outlook_task_lists - First observed
list_outlook_tasks - First observed
list_skills - First observed
list_workspace_members - First observed
list_workspaces - First observed
merge_duplicate_gmail_labels - First observed
merge_mail_folders - First observed
move_gdrive_item - First observed
move_google_calendar_event - First observed
move_messages - First observed
move_onedrive_item - First observed
move_outlook_calendar_event - First observed
pause_member - First observed
read_excel_range - First observed
read_gdrive_file - First observed
read_gmail_attachment - First observed
read_google_sheet_range - First observed
read_onedrive_file - First observed
read_outlook_attachment - First observed
remove_member - First observed
rename_access_role - First observed
rename_gdrive_item - First observed
rename_gmail_label - First observed
rename_google_calendar - First observed
rename_google_task_list - First observed
rename_mail_folder - First observed
rename_onedrive_item - First observed
rename_outlook_calendar - First observed
rename_outlook_task_list - First observed
save_gmail_attachment_to_drive - First observed
save_outlook_attachment_to_onedrive - First observed
search_gdrive_items - First observed
search_gmail_messages - First observed
search_google_calendar_events - First observed
search_onedrive_items - First observed
search_outlook_calendar_events - First observed
search_outlook_messages - First observed
send_gmail_message - First observed
send_gmail_reply - First observed
send_outlook_message - First observed
send_outlook_reply - First observed
set_access_role_capability - First observed
set_access_role_mailbox_access - First observed
set_access_role_skill_access - First observed
set_member_workspace_role - First observed
share_gdrive_item - First observed
share_onedrive_item - First observed
unshare_gdrive_item - First observed
unshare_onedrive_item - First observed
update_excel_range - First observed
update_google_calendar_event - First observed
update_google_sheet_range - First observed
update_google_task - First observed
update_outlook_calendar_event - First observed
update_outlook_task - First observed
update_skill - First observed
workspace_request_status
Publisher details
- Operator
- Higgs Hub · Publisher source
- Operator website
- https://higgshub.pro
- Vendor relationship
- First-party
- Documentation
- https://higgshub.pro/faq
- Trust center
- https://higgshub.pro/security
- Restrictions
- Requires a free Higgs Hub account. Users connect their own Google or Microsoft accounts via OAuth (no custom OAuth app needed). Free tier: 1 mailbox, 500 actions/month; paid plans from $19/month add mailboxes and actions. · Publisher source
Related MCP Connectors
Email, calendar and contacts for AI agents: Gmail, Microsoft 365 and IMAP accounts behind one API.
Email for AI agents: read, search and send from your Gmail, Outlook, Yahoo, iCloud or IMAP inbox.
Gmail, Outlook, iCloud, Fastmail and any IMAP mailbox for your agent. Scoped OAuth, approved sends.
Every email and calendar account you connect, for AI agents, with permissions and approvals.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to securely read, search, and send email across IMAP and Microsoft Graph accounts, with scoped tokens, approval flows, and an audit trail.1MIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to securely manage Google Workspace services (Gmail, Calendar, Drive, Sheets, Contacts) with persistent multi-account OAuth. Uses OS keychain for credential storage with health monitoring and granular business rules for enterprise security.-
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to access and manage multiple Gmail and Google Workspace accounts simultaneously, including unified search, reading, drafting, sending, labeling, unsubscribing, package tracking, and follow-up reminders.1MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to access multiple Gmail/Google Workspace accounts for searching and reading mail, calendars, and attachments.-
Glama MCP Gateway
Add one secure layer between your agents and this server.