Dayze — Life Context
Server Details
Life context for agents: get_context_pack + public notable packs. x402 + OAuth.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- gohluke/dayze-mcp
- GitHub Stars
- 0
- Server Listing
- Dayze MCP
TDQS
Scored across 95 tools
Many tools overlap: get_life_context vs get_context_pack, log_transaction/log_income/log_expense are near-aliases, notable_pack vs notable_pack_premium vs notable_profile differ only in depth, and upload_asset vs upload_photo both handle image uploads. Descriptions provide hints, but boundaries are frequently blurred, making misselection likely.
Almost all tools follow snake_case verb_noun patterns (get_*, log_*, update_*, delete_*, search_*). Minor deviations like notable_* (noun-first) and bare 'search' exist, but the overall convention is predictable and readable.
95 tools is an extreme mismatch for a single MCP server, far beyond the 25+ threshold. Many are aliases or slight variations (e.g., log_income = log_transaction, get_money_between_people = get_person_transactions), bloating the surface unnecessarily.
Coverage is broad across CRM, calendar, inventory, expenses, sleep, location, photos, and clarifications, with many create/read/update operations. However, notable gaps exist: no delete/archive for people or places, and no clear create/update/delete surface for trips, leaving lifecycle dead ends.
Available Tools
95 toolsadd_inventory_itemAdd Inventory ItemAInspect
Add an owned object to Life Inventory. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| request_id | No | Client idempotency key (retries return original result). | |
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| item | No | Inventory item record. |
| message | No | |
| inventory_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnly=false, destructive=false), the description discloses the $0.10 cost and API-key requirement, which are useful operational constraints. It does not discuss duplicate handling or creation side effects, but the schema covers idempotency keys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with the purpose first and cost/auth appended compactly. 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?
For a simple create-style tool with an output schema and documented idempotency parameters, the description covers the main purpose and operational prerequisites. It could mention duplicate behavior or when to use update instead, but these lacks are 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?
Schema description coverage is 67%, so the schema already explains request_id and idempotency_key. The description adds little parameter-specific meaning; 'owned object' only weakly implies that name identifies the object being added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add') and resource ('an owned object to Life Inventory'), making the core function clear. It does not expressly contrast itself with sibling add_inventory_valuation, but the 'item' vs 'valuation' distinction is inferable from name and wording.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 is given on when to choose this tool over alternatives such as update_inventory_item, archive_inventory_item, or add_inventory_valuation, and no exclusions or prerequisites are stated beyond the API key requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_inventory_valuationAdd Inventory ValuationBInspect
Append immutable valuation observation. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| currency | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| inventory_id | Yes | ||
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| valuation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations: the operation appends an immutable observation, costs $0.10, and requires an API key. Annotations already indicate it is a write operation, but the description usefully discloses immutability and cost.
Agents need to know what a tool does to the 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 extremely concise and front-loaded with the action. The parenthetical cost and API key requirement earn their place without adding fluff. Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple append operation, the description covers the essential behavioral facts: immutability, cost, and authentication. However, it is incomplete as a standalone guide because it omits usage context and leaves the core parameters (value, currency, inventory_id) semantically under-specified despite low 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 only 40%, and the description does not explain value, currency, or inventory_id. The phrase 'valuation observation' hints at the meaning of value, but the description does not compensate for the missing parameter documentation, especially for required fields like inventory_id and the optional currency format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Append' and the resource 'valuation observation', making the core operation clear. The word 'immutable' also implicitly distinguishes it from update/delete tools, though it does not explicitly name sibling tools or state what it is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings like get_inventory_valuations, update_inventory_item, or add_inventory_item. It mentions API key and cost, which are prerequisites, but gives no context about when this tool is the right choice or when an alternative should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_assetArchive AssetADestructiveInspect
Soft-delete an asset (sets archived_at). Original rows are preserved for versioning. ($0.05; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| asset_id | Yes | ||
| request_id | No | Client idempotency key (retries return original result). | |
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| asset | No | |
| message | No | |
| archived | No | |
| asset_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the destructiveHint=true annotation by clarifying that this is a soft-delete: it sets archived_at and preserves original rows for versioning. This materially reduces the risk of an agent assuming permanent destruction. It also mentions the cost and API key requirement, adding operational 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?
The description is compact and front-loaded. The core action and state change come first, followed by the preservation behavior and then operational prerequisites. 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?
The tool's purpose, effect, cost, auth requirement, and non-destructive nature are all covered. The main omission is the return value or response shape, especially since no output schema is provided, but for a simple soft-delete operation the provided context is otherwise 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 67%, with request_id and idempotency_key already described in the schema. The description itself does not add parameter-level detail, but asset_id is self-explanatory given 'archive an asset.' The description does not compensate for the undocumented asset_id semantics, but the 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?
The description clearly states the action: 'Soft-delete an asset (sets archived_at).' This is a specific verb plus resource, and it distinguishes the tool from related siblings like upload_asset and update_asset by clarifying the archive semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied through the 'soft-delete' and 'archive' language, so an agent can infer when to use it. However, it does not explicitly state when not to use it or mention alternatives such as update_asset, upload_asset, or a hard-delete path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_inventory_itemArchive Inventory ItemADestructiveInspect
Archive instead of destructive delete. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| inventory_id | Yes | ||
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| archived | No | |
| inventory_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=true, so the description correctly aligns with a mutating, destructive-intent operation. The description adds important context: the operation is non-destructive in terms of data loss ('archive instead of destructive delete'), there is a $0.10 monetary cost, and an API key is required. Ironically, the annotation destructiveHint=true may mean the operation is considered destructive (e.g., it removes the item from active lists), but the description clarifies it is not a permanent delete. The description adds value beyond annotations by disclosing cost and authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence with three useful clauses: the operation type, the cost, and the auth requirement. It front-loads the most important behavioral distinction ('Archive instead of destructive delete'). It could be slightly more structured (e.g., separate cost and auth into a second sentence), but it earns every word and has no wasted 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 tool with an output schema, 4 parameters, and destructiveHint=true, the description is minimally adequate: it tells the agent this is an archival operation with cost and auth requirements. But it doesn't explain the meaning of reason, what happens to the archived item (e.g., is it still visible in get_inventory?), or how retries work with idempotency keys (though the schema documents retries). Given the output schema exists, return values don't need explanation, but the behavioral consequence of archiving is left partially inferred.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, with documented parameters being request_id and idempotency_key. The description does not explain inventory_id or reason beyond the schema's basic type declarations. However, the description's 'Archive instead of destructive delete' implies inventory_id is the target item, and reason is presumably an audit/archive reason. Baseline 3 is appropriate because the schema covers half the parameters and the description partially compensates by clarifying the operation's nature, but it doesn't add specific meaning to the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses 'Archive instead of destructive delete' which clearly indicates the operation is a non-destructive archival action on an inventory item. It distinguishes itself from delete operations by emphasizing it is not destructive, though it doesn't name a specific sibling alternative like delete_event or delete_food. The related get_inventory_item, update_inventory_item, and add_inventory_item siblings help contextualize it, but the primary behavior (archive an inventory item) is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'instead of destructive delete' phrase provides an implicit usage guideline: use this when you want to remove an inventory item from active use without permanently destroying it. However, it does not explicitly state when to use this over update_inventory_item (e.g., when the item should be retired) or contrast with alternative archive tools like archive_asset, nor does it mention the $0.10 cost as a decision factor. This is adequate but relies on inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_assetAttach AssetAInspect
Link an existing asset_id to another entity by creating a linked copy (does not move the original row). Roles: original | processed | thumbnail | cover | document | receipt | certificate | other. Legacy: pass url instead of asset_id. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| role | No | original | cover | thumbnail | … | |
| asset_id | No | ||
| metadata | No | ||
| entity_id | Yes | ||
| asset_type | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| entity_type | Yes | ||
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| asset | No | |
| message | No | |
| asset_id | No | |
| attached | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal, so the description carries the burden. It discloses the key side effect: it creates a linked copy rather than moving the original row. It also adds legacy URL behavior, role values, cost, and API-key requirements. It does not describe failure modes or output behavior, but the core semantics are clearly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and well-front-loaded. The first sentence delivers the operation and its main caveat, followed by compact role and legacy/cost information. Every sentence contributes practical information, though the role list is partially redundant with 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?
Given the tool has 9 parameters, nested objects, and low schema coverage, the description is only minimally sufficient. It explains the main operation and one parameter relationship but leaves key invocation details—entity_type/entity_id allowed values, metadata/asset_type semantics, and URL vs. asset_id precedence—incompletely specified. The output schema helps, but the overall context is not 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?
With only 33% schema description coverage, the description must compensate for undocumented parameters. It does explain asset_id vs. URL legacy behavior and role values briefly, but entity_type, entity_id, metadata, asset_type, and idempotency behavior are left under-explained. It also omits a valid schema enum value, 'photo', from its Roles 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?
The description starts with an explicit verb and resource: 'Link an existing asset_id to another entity by creating a linked copy.' This is clearly distinct from upload_asset, update_asset, and archive_asset, and the clarifying clause 'does not move the original row' removes ambiguity about whether this is a move operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for the intended use: linking an existing asset to an entity, creating a linked copy, and supporting a legacy URL path. It also notes API key and cost requirements. It stops short of explicitly saying when not to use this tool or naming upload/update/archive as alternatives, so it is not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_dismiss_clarificationsBulk Dismiss ClarificationsBInspect
Dismiss non-person / typed junk from the clarification queue. ($0.05; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| entity_type | No | ||
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| dismissed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not a read-only operation (readOnlyHint=faalse). The description adds cost ('$0.05') and authentication ('API key required'), which are useful semantics beyond the annotations. However, it does not explain side effects such as whether the action is reversible, how many items are affected, or the exact criteria for 'non-person / typed junk'.
Agents need to know what a tool does to the 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 plus a parenthetical is extremely concise and front-loaded: the core action and scope are stated first, then cost and auth requirements. No words are 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?
The tool has no required parameters and four optional ones, but the description leaves the meaning of 'bulk' and the valid inputs (reason, entity_type) ambiguous. It also does not say how it differs from the per-item dismiss_clarification. The presence of an output schema helps with return values, but an agent still lacks enough context to construct a correct call 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 covers 50% of parameters: request_id and idempotency_key are described; reason and entity_type are bare strings. The tool description does not clarify what values reason or entity_type should accept, and the phrase 'typed junk' only loosely hints at entity_type's role. It does not compensate for the schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Dismiss') and resource ('the clarification queue') with a clear scope: non-person / typed junk. The 'bulk' in the tool name and this qualifier distinguish it from the sibling 'dismiss_clarification', which presumably handles a single 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?
There is no guidance on when to use this tool versus alternatives like dismiss_clarification or resolve_clarification. The use case is implied ('dismiss non-person / typed junk') but no explicit conditions, prerequisites, or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commit_life_updateCommit Life UpdateBInspect
Owner approve+commit via payload_hash + owner_session_id (flagged; off by default). ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | ||
| proposal_id | Yes | ||
| payload_hash | Yes | ||
| idempotency_key | No | ||
| owner_session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| enabled | No | |
| message | No | |
| assertionIds | No | |
| graphVersion | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses three behavioral traits the structured fields do not: the feature flag is off by default, an API key is required, and each call costs $0.10. That is exactly the kind of operational context annotations cannot convey, though it omits whether a commit 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 fragments with parenthetical qualifiers — the gating facts (flag, cost, auth) are front-loaded and nothing is padded. The telegraphic style borders on cryptic, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the cost/flag/auth profile is covered. Still missing for a write/commit tool: whether the operation is idempotent or reversible, and what payload_hash must match — a material gap given three required parameters with no schema documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters, and the description only gestures at two of them (payload_hash, owner_session_id) without explaining format, provenance, or purpose. proposal_id, request_id, and idempotency_key are left entirely undocumented in both the schema and the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names a specific action ('Owner approve+commit') and the key credentials involved (payload_hash, owner_session_id), which implies it finalizes a proposal created by propose_life_update. But 'life update' is never defined and the verb phrase 'approve+commit' is compressed jargon, so an agent must infer the resource being mutated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'flagged; off by default' and 'API key required' give real gating conditions for when this call is permitted. However, it never names propose_life_update as the prerequisite step or explains when an owner should choose to commit versus leave a proposal pending.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_livesCompare Two LivesARead-onlyInspect
Side-by-side notable packs for two slugs (life_in_days + day_number timelines). One call instead of two notable_pack. Example: elon-musk vs steve-jobs. ($0.08)
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD target date for both packs | |
| peers | No | ||
| slug_a | Yes | First person slug | |
| slug_b | Yes | Second person slug | |
| similar | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| a | Yes | First notable-person knowledge pack. |
| b | Yes | Second notable-person knowledge pack. |
| pack | Yes | |
| compare | Yes | Computed comparison fields and URLs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so no contradiction exists. The description adds useful behavioral context beyond the annotations: it packages what would be two notable_pack calls into one, notes the timeline format, and discloses the $0.08 cost.
Agents need to know what a tool does to the 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 concise semantic units in one sentence: what it returns, why it is preferable to calling notable_pack twice, and a concrete example. No filler words or redundant restatements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool with only two required parameters, the description plus the input schema and annotations gives an agent everything needed to call it correctly. It also includes enough comparison-specific context to choose this over notable_pack, and the cost and timeline details remove the main remaining unknowns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
slug_a and slug_b have schema descriptions, and the example reinforces what a slug looks like. However, the description adds nothing about date, peers, or similar, and peers/similar are not described in the schema either, so the 40% schema-description gap is left uncompensated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear operation: produce side-by-side notable packs for two slugs. It names the resource (notable packs with life_in_days + day_number timelines) and explicitly differentiates itself from notable_pack by noting it replaces two calls. The elon-musk vs steve-jobs example grounds the abstraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names notable_pack as the alternative and frames compare_lives as the one-call version for comparing two people. It doesn't give formal when-not conditions, but the intended context is clear enough for an agent to decide when to pick this over a single notable_pack call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_personCreate PersonAInspect
Add a CRM contact; checks duplicates first. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tier | No | ||
| No | |||
| notes | No | ||
| phone | No | ||
| aliases | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| relationship | No | ||
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| person | No | CRM person record. |
| created | No | |
| message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses a duplicate check, a $0.10 cost, and an API key requirement. It does not specify the outcome when a duplicate is found (error vs no-op), but still adds material behavioral context not present in annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One efficient sentence with essential business constraints appended parenthetically. The main action is front-loaded, and every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema covers return values and annotations cover basic mutability, so the description need not explain those. However, it omits what happens on duplicate detection and does not clarify parameter semantics (especially tier/relationship), leaving moderate gaps for an agent to hit errors on alternative paths.
Complex tools with many parameters or behaviors need more documentation. 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 22% (just request_id/idempotency_key), and the description lists no parameter details. An agent must infer the meaning of tier, relationship, and aliases from names alone, which is risky for a 9-parameter creation 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 'Add' and resource 'CRM contact', and adds unique behavioral cue 'checks duplicates first'. This clearly distinguishes it from update_person, merge_people, and read-only lookup 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?
The description clearly frames the tool as the way to create a new CRM contact, and the duplicate-check note implies it is the entry point before considering update or merge operations. It does not explicitly name alternatives or exclusion conditions, but the context is sufficient for an agent to select it for creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_placeCreate Place CardAInspect
Save a venue card (business_contacts): address, opening_hours, affordability ($/$$/$$$), notes, tags. Idempotent by name or idempotency_key — does not create calendar notes. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | ||
| city | No | ||
| name | Yes | ||
| tags | No | ||
| hours | No | Alias for opening_hours | |
| notes | No | ||
| phone | No | ||
| address | No | ||
| country | No | ||
| website | No | ||
| category | No | restaurant|cafe|supermarket|shop|hawker|… (aliases mapped to business_contacts.category) | |
| latitude | No | ||
| longitude | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| description | No | ||
| price_level | No | Alias for affordability | |
| hours_source | No | agent | google_places | user | |
| affordability | No | $ | $$ | $$$ (or 1–3) | |
| opening_hours | No | ||
| phone_numbers | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| place | No | Saved place card. |
| created | No | |
| message | No | |
| place_id | No | |
| duplicate | No | |
| business_contact_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the non-read/non-destructive profile, so the bar is lower. The description adds genuinely useful context: idempotency behavior ('Idempotent by name or idempotency_key'), a cost signal ($0.10), and an auth requirement (API key required) — all 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?
Two compact sentences with the primary purpose front-loaded, then behavioral constraints. Efficient; slight density of parenthetical signals but no wasted 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?
Output schema exists so return values need not be explained, and annotations cover the safety profile. However, for a 21-param creation tool with 29% schema coverage, the description omits many parameter semantics and gives no explicit relationship to siblings like update_place or resolve_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 only 29%, and the description only names a handful of fields (address, opening_hours, affordability, notes, tags) out of 21 params. It doesn't clarify the alias relationships (hours↔opening_hours, price_level↔affordability) that the schema does document, leaving substantial gaps the description does not compensate for.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Save a venue card') and enumerates the fields it holds (address, opening_hours, affordability, notes, tags). It is clearly a creation tool distinct from get_place/get_places/update_place siblings, but it does not explicitly name those siblings the way a 5 would.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'does not create calendar notes' implies when-not usage by exclusion, but there is no explicit guidance on when to use create_place versus resolve_place or enrich_place_from_google. 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.
delete_eventDelete Event (calendar remove)ADestructiveInspect
MUTATES by removing one existing calendar event the authenticated user owns. Required: event_id (UUID). Unknown or other-user event_id returns an error. event_people tags cascade; linked entity_assets are archived. When the event mirrors a Food Diary row (external_source user_food_log), the food row is deleted too. For food-diary meals, prefer delete_food. Rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | UUID of a calendar event the authenticated user owns | |
| request_id | No | Client idempotency key (retries return original result). | |
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted | Yes | A Dayze calendar event record. |
| event_id | Yes | |
| food_deleted_ids | Yes | |
| life_state_rebuilt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and readOnlyHint=false, and the description adds substantial behavioral detail: event_people tags cascade, linked entity_assets are archived, replicated food rows are deleted, life_state is rebuilt, and auth/cost constraints are stated. This goes well beyond what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every clause adds value: mutation message, required parameter, failure mode, cascade effects, sibling routing, system rebuild, auth requirements, and cost. The most important operational facts are front-loaded at the beginning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with cascading side effects, the description covers the required parameter, ownership validation, error behavior, side effects, routing to delete_food, auth scope, and cost. An output schema exists and describes return values, so the description is sufficiently complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents event_id as a UUID of an owned calendar event and documents request_id and idempotency_key fully. The description mostly restates that event_id is required and adds error behavior rather than new parameter meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'removing one existing calendar event the authenticated user owns.' It clearly distinguishes delete_event from sibling tools like delete_food and update_event by focusing on owned calendar events and noting the food-diary special case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'For food-diary meals, prefer delete_food,' naming the alternative and the condition that redirects usage. It also sets boundaries by stating unknown or other-user event_ids return an error, and that share tokens cannot write, which clarifies when this tool is not appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_foodDelete Food (Food Diary remove)ADestructiveInspect
MUTATES by removing one Food Diary row the authenticated user owns and its mirrored calendar event. Required: food_id (UUID). Prefer this over delete_event for meals logged via log_food. Unknown or other-user food_id returns an error. Rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| food_id | Yes | UUID of a Food Diary row the authenticated user owns | |
| request_id | No | Client idempotency key (retries return original result). | |
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted | Yes | Deleted food diary row. |
| food_id | Yes | |
| event_id | No | |
| life_state_rebuilt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, and the description adds substantial behavior: it removes the mirrored calendar event, rebuilds life_state, returns an error for unknown/other-user food_id, and notes that share tokens cannot write. This goes far beyond the annotations, no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: the mutating effect, required param, sibling routing, error behavior, side effect, auth requirements, and cost. Front-loaded with 'MUTATES' and sized appropriately for the information density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 purpose, target, side effects, error conditions, auth, and cost. With output schema present, return values need no explanation. Complete for a destructive single-object deletion tool with 3 parameters and rich annotations.
Complex tools with many parameters or behaviors need more documentation. 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 that food_id is required and is a UUID, but adds no extra semantics for request_id or idempotency_key beyond what the schema already provides. It is adequate but not additive.
Input schemas describe structure but not intent. Descriptions should explain 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 ('removing'), resource ('Food Diary row'), ownership scope ('the authenticated user owns'), and the mirrored calendar event side effect. The title and description together make it clear this is the food-diary deletion tool, and it explicitly differentiates from delete_event via the 'prefer this over delete_event' note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (delete_event) and provides the condition for choosing this tool ('for meals logged via log_food'). Also states error conditions for unknown/other-user food_id and gives auth prerequisites, which helps the agent decide when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dismiss_clarificationDismiss ClarificationBInspect
Dismiss a pending entity clarification (not_person, etc.). ($0.05; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| idempotency_key | No | Alias for request_id. | |
| clarification_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| dismissed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by disclosing the API key requirement and the $0.05 cost. It does not contradict the annotations, but it also does not explain the effect of dismissal, whether it is reversible, or what happens to the entity afterward.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the core action and adds only the essential cost/auth caveat. It is appropriately sized, though a bit more context about related tools would improve it without bloating 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?
Given the annotations and output schema, the description is mostly adequate for a simple dismissal action, but it leaves gaps around when to use bulk vs single dismissal and what the optional reason parameter is for. The presence of an output schema means return values need not be explained, but alternative routing 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 50%, covering request_id and idempotency_key, but the required clarification_id and the optional reason are undocumented in the schema. The description does not explain how to supply or format any parameter, so it adds little beyond the tool name and 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 clearly states the action ('Dismiss'), the resource ('pending entity clarification'), and gives a concrete example type ('not_person'). It is distinguishable from siblings like resolve_clarification and bulk_dismiss_clarifications, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to choose this tool over the related bulk_dismiss_clarifications or resolve_clarification siblings. The phrase 'pending entity clarification' implies when it is applicable, but the description does not state exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enrich_place_from_googleEnrich Place from GoogleAInspect
Optional Google Places fill for a saved place card (hours/address/phone/website). Defaults to fill_empty_only — does not overwrite agent-supplied fields. ($0.15; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| place_id | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| fill_empty_only | No | ||
| idempotency_key | No | Alias for request_id. | |
| business_contact_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| place | No | Saved place card. |
| message | No | |
| enriched | No | |
| place_id | No | |
| applied_fields | No | |
| business_contact_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety basics (readOnlyHint=false, destructiveHint=false), and the description adds genuinely new behavioral context: the default non-overwrite policy, a $0.15 per-call cost, and an API-key requirement. It does not describe rate limiting, failure modes when Google has no match, or interaction between place_id and business_contact_id; note also that openWorldHint=false sits uneasily with a documented external Google API dependency.
Agents need to know what a tool does to the 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 clauses: what it fills, the non-overwrite default, and the cost/auth note. Nothing is redundant, though the parenthetical field list and price note are packed densely into one sentence rather than separated for scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, with five parameters and zero required, the definition should say which identifier (place_id or business_contact_id) the caller must supply and what happens if neither is given; that gap leaves the agent unable to construct a valid call from the description 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 40% (request_id and idempotency_key are documented; place_id, fill_empty_only, business_contact_id are not). The description compensates partially by stating the default for fill_empty_only, but it never explains the role of place_id versus business_contact_id or whether either is required.
Input schemas describe structure but not intent. Descriptions should explain 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 ('enrich ... saved place card') plus the fields it fills (hours/address/phone/website) and the external source (Google Places). This clearly separates it from sibling mutators like update_place, which edit a place card without an external data 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?
It gives clear context for use: it is 'optional', defaults to non-overwriting behavior ('fill_empty_only — does not overwrite agent-supplied fields'), and carries a cost/auth requirement. It does not explicitly name alternative tools (e.g., update_place) or state when to prefer manual editing, 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.
explain_factExplain FactARead-onlyInspect
Return evidence/provenance for a claim: polaris_learned_facts, life_events / life_event_relationships when present, then memories. Use when the agent must cite why it believes something — do not invent sources. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| fact | No | Alias for query | |
| limit | No | Max evidence rows 1–20, default 8 | |
| query | Yes | Fact or phrase to explain |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| query | Yes | |
| message | No | |
| evidence | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses the source lookup order, the API-key requirement, the $0.10 cost, and an important integrity constraint against inventing sources. This adds substantial behavioral context that the annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences: function, usage guidance, and cost/auth. Every sentence earns its place, and the most important 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?
Given the output schema exists and annotations cover safety, the description provides everything else an agent needs: the provenance strategy, when to invoke it, and operational constraints like API key and cost. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters well. The description reinforces the notion of a 'claim' but does not add significant additional parameter semantics 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 starts with a specific verb and resource: 'Return evidence/provenance for a claim.' It goes further by naming the exact source types to consult and their precedence, which clearly distinguishes this tool from siblings like get_memories or get_life_graph.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger condition ('Use when the agent must cite why it believes something') and a clear negative behavior ('do not invent sources'). However, it does not explicitly name alternative tools or describe when NOT to use this tool beyond that one negative instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assetGet AssetARead-onlyInspect
Fetch one asset by asset_id with signed_url for download/processing. ($0.05; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| asset_id | Yes | ||
| include_signed_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| asset | No | |
| count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal read-only safety, and the description adds meaningful behavioral context: the operation costs $0.05 and requires an API key, which is beyond the structured annotations. It also discloses that the output can include a signed_url for download/processing, clarifying a key behavioral detail not present in the schema. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact two-sentence definition with no filler. The primary action and resource are front-loaded, and the cost/api-key caveat is appended economically without disrupting the core message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 low parameter count and existing output schema, the description provides the key context needed to call the tool: what it returns, the lookup method, cost, and authentication requirement. It falls slightly short only because it does not clarify the include_signed_url parameter's behavior, which is important for accurate invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must carry parameter meaning, but it only explicitly mentions asset_id and the concept of a signed_url. The optional boolean include_signed_url is not named or explained, leaving its effect ambiguous. This is a notable gap for an otherwise simple two-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch'), a clear resource ('one asset'), and the lookup key ('asset_id'), making the tool's core purpose unambiguous. It also states the return context ('signed_url for download/processing'), distinguishing it from sibling list-type tools like get_entity_assets or update-oriented tools like update_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'Fetch one asset by asset_id' gives a clear and direct when-to-use scenario: retrieve a single asset when you have its ID. It also adds practical usage conditions, noting the $0.05 cost and API key requirement. However, it does not explicitly name alternatives or exclusion cases, such as when to use get_entity_assets instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cities_visitedCities VisitedCRead-onlyInspect
Canonical cities from completed trips. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| cities | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive behavior, so the description does not need to restate that. It adds useful context: API key required, a $0.10 cost, and restriction to completed trips. It does not explain canonicalization behavior or result shape, but the output schema covers returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact, front-loads the purpose, and adds only high-value operational notes (cost and API key). No filler or redundant restatement of the tool name exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return value documentation is not needed. However, with 0% parameter coverage, no usage guidance, and no explanation of 'to'/'from', the description is not complete enough for an agent to invoke the tool correctly in all cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the 'to' and 'from' parameters have no descriptions. The description does not clarify whether these are dates, place identifiers, or some other range, so an agent cannot reliably determine parameter format or meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('canonical cities') and the source domain ('completed trips'), and the tool name reinforces the action. It does not explicitly contrast with siblings like get_countries_visited or get_travel_history, but the core purpose is understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 is provided, and no alternative tools are mentioned. The phrase 'from completed trips' implies a filter condition, but it does not explain when an agent should prefer this tool over get_countries_visited, get_place_visits, or get_travel_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_context_packLife Context PackARead-onlyInspect
Life Context Protocol (LCP) pack for the authenticated user: identity, pulse, who_matters, whats_next, memories. Pass include_relationships/include_memories false to omit those sections; location and money stay opt-in. Spec: https://dayze.com/docs/life-context ($0.20; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Optional focus hint echoed in the pack (e.g. places, travel, people) | |
| query | No | Optional focus query for semantic memories | |
| include_money | No | Include the private cashflow summary | |
| include_trips | No | Include recent/upcoming trips from completed travel history | |
| include_places | No | Include recent canonical places (venue-level, no GPS points) | |
| include_location | No | Include city/country label; never returns a precise address | |
| include_memories | No | Include recent memories (default true). A query always enables focused memories. | |
| include_relationships | No | Include who_matters (inner-circle, relationship health, reach-out). Default true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| error | No | Present when life state is unavailable. |
| focus | No | |
| pulse | Yes | |
| query | No | |
| trips | No | Recent trips when include_trips=true. |
| places | No | Recent canonical places when include_places=true. |
| partial | No | |
| identity | Yes | |
| memories | No | |
| protocol | Yes | Life Context Protocol metadata. |
| sections | No | Per-section ok/error status for partial packs. |
| whats_next | Yes | |
| who_matters | No | |
| generated_at | No | |
| preferred_tool | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only and non-destructive. The description adds valuable behavior: a $0.20 cost, required API key, a spec URL, and explicit opt-in behavior for location and money. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three dense sentences with no filler: the first names the pack and its sections, the second gives toggle guidance, and the third covers cost, auth, and spec. Information is front-loaded and each 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?
Given the output schema and annotations, the description covers the important operational details: contents, toggles, opt-in sections, cost, API key, and spec link. The main gap is the lack of differentiation from similar life-context sibling tools, which makes the definition mostly complete but not 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 100%, so the schema fully documents all eight parameters. The description only restates that include_relationships/include_memories can be omitted and that location/money stay opt-in, adding minor context but no substantial parameter semantics 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 names a specific resource — 'Life Context Protocol (LCP) pack for the authenticated user' — and enumerates its contents: identity, pulse, who_matters, whats_next, memories. This clearly goes beyond the generic title, though it does not explicitly distinguish itself from the similarly named sibling get_life_context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides parameter-level usage guidance ('Pass include_relationships/include_memories false to omit those sections; location and money stay opt-in') and notes the API key and cost, but it never states when to use this tool instead of alternatives like get_life_context, get_memories, or get_location_context. Selection guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_countries_visitedCountries VisitedBRead-onlyInspect
Canonical countries from completed trips (not other people travel). ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | ||
| include_residence | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| countries | 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 valuable context beyond that: the data is canonical, derives from completed trips, excludes other people's travel, costs $0.10 per call, and requires an API key. No contradiction exists.
Agents need to know what a tool does to the 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 extremely compact and front-loaded, with the core meaning first and the cost/auth note parenthesized. All words carry value, though the phrase 'not other people travel' is grammatically awkward and 'canonical' is undefined. Overall it is efficient, not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 three optional and completely undocumented parameters, the description does not give the agent enough to call the tool correctly. The output schema and read-only annotations help, but the missing parameter semantics and the lack of explicit date-range/format guidance make this under-specified for a tool with multiple optional inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the undocumented 'to', 'from', and 'include_residence' parameters. It does not mention or explain any of them. The agent is left to guess whether 'from'/'to' are dates, ids, or something else, and what residence inclusion means.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (countries) and the source scope (completed trips), and adds a distinguishing 'not other people travel' note. It does not use an explicit verb, but 'canonical countries from completed trips' is unambiguous enough for an agent to infer a retrieval operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when the ask concerns canonical countries visited on completed trips, not cities or individual trips) but does not name any alternative tool or state explicit exclusions. Sibling tools like get_cities_visited or get_travel_history are present but not referenced, leaving routing to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_statesCurrent StatesCRead-onlyInspect
Permitted assertion states for a person (flagged life-graph; off by default). ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| known_at | No | ||
| valid_at | No | ||
| people_id | No | CRM people.id UUID | |
| person_id | No | Alias for people_id | |
| predicates | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| states | No | |
| enabled | 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 the cost ($0.10) and API key requirement, which are useful operational constraints, but says nothing about what 'states' are, how they are filtered, or output behavior beyond what the output schema likely covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the resource and includes cost/auth details. It is efficient, though the parenthetical may be too terse to be useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, but the description fails to explain the core concept of 'permitted assertion states' or how the temporal parameters affect results. For a tool with five parameters and 40% schema coverage, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, and the description provides no information about the five parameters (known_at, valid_at, people_id/person_id alias, predicates). Two parameters have schema descriptions (people_id and person_id alias), but the temporal and predicate parameters are undocumented, and the description does not 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 the resource ('assertion states for a person') and implies a retrieval action, but the verb is not explicit and the phrase 'flagged life-graph; off by default' is ambiguous. It is distinguishable from siblings like get_life_graph or get_person_links only by the specialized 'states' concept, which is not clearly defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 get_life_graph, get_context_pack, or get_life_context. The parenthetical about being off by default suggests limited availability but does not give actionable conditions for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entity_assetsGet Entity AssetsARead-onlyInspect
List assets linked to an entity (role, signed_url, versions). entity_type inventory_item → inventory. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | ||
| asset_type | No | ||
| entity_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| assets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive behavior, and the description's 'List' wording is consistent. It goes beyond annotations by disclosing that an API key is required and that the call costs $0.10, which is operationally useful for an agent deciding whether 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?
The description is two compact sentences with no filler; the main verb is front-loaded and the cost/auth constraint is efficiently appended. The arrow notation is terse but packs useful parameter semantics into very few words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Cost, authentication, read-only intent, and some asset-type scope are covered, and an output schema exists so return format need not be described. However, with three un-described parameters, no enums, and many sibling tools, the description leaves enough ambiguity around entity_type values and the inventory mapping that invocation still requires inference.
Complex tools with many parameters or behaviors need more documentation. 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 0% schema description coverage, the description must explain parameters, and it partially does: the parenthetical likely enumerates asset_type values and 'entity_type inventory_item → inventory' adds domain mapping. But it leaves entity_id implicit and does not enumerate valid entity_type values, so the compensation for low schema coverage is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('List assets linked to an entity') and gives concrete asset-type examples (role, signed_url, versions), so an agent can tell what the tool returns. It does not explicitly contrast this with get_asset or get_inventory, so it misses the highest sibling-differentiation bar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 intended use is implied by 'List assets linked to an entity,' and the 'entity_type inventory_item → inventory' hint is context-specific. However, there is no explicit guidance about when to choose this over get_asset/get_inventory or when it should not be used, which is noticeable given the large sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entity_linksGet Entity LinksARead-onlyInspect
List graph edges for an event, trip, place, or person. ($0.05; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | ||
| entity_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| links | No |
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 valuable context by stating the cost ($0.05) and auth requirement (API key), which are behavioral constraints not present in the structured metadata. It does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence of about 13 words with no filler. The core action and scope are front-loaded, with cost and auth appended parenthetically. Every token earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, two required params, and an existing output schema, the description covers the purpose, entity types, cost, and auth requirement. The term 'graph edges' is somewhat technical but the output schema presumably defines the return shape. The only notable gap is lack of usage guidance, but that is covered by another dimension.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It partially does by enumerating the allowed entity_type values (event, trip, place, person) and implying entity_id is the identifier of that entity. However, it does not describe what IDs look like or the exact meaning of entity_id beyond that implication.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a specific resource ('graph edges') and names the valid entity types (event, trip, place, person). This clearly differentiates it from sibling tools like get_entity_assets or get_person_connections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies when to use the tool by scoping it to a specific entity type and graph edges, but it does not explicitly say when to use it over alternatives like get_life_graph or get_person_connections. There is no when-not-to-use guidance or mention of complementary tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventsCalendar EventsARead-onlyInspect
Authenticated user's calendar events. Prefer explicit from/to (YYYY-MM-DD). Shortcuts: today|week|month|year (calendar year)|decade. Browsing noise excluded by default. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Inclusive YYYY-MM-DD | |
| from | No | Inclusive YYYY-MM-DD (preferred over range) | |
| kinds | No | Filter event_kind e.g. ["life_event","todo"] | |
| range | No | ||
| include_browsing | No | Include extension "Browsed domain · Xm" auto-events (default false) | |
| include_calendar_blocks | No | Include Focus Time / calendar_block rows (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Inclusive YYYY-MM-DD upper bound. |
| cap | Yes | |
| from | Yes | Inclusive YYYY-MM-DD lower bound. |
| range | Yes | |
| total | No | |
| events | Yes | |
| truncated | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds meaningful operational context beyond that: the API key requirement, a $0.10 cost, and the default exclusion of browsing noise. These are behavioral and constraint details not present in the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by parameter guidance, default behavior, and operational constraints. Every sentence provides actionable information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the input schema covers most parameters, the description fills the remaining important gaps: range semantics, default noise exclusion, auth requirements, and cost. An agent has enough information to select and invoke 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 high at 83%, and the description adds useful semantics beyond the schema: it clarifies that 'year' means calendar year, lists the range shortcut values, and emphasizes preferring explicit from/to. It does not add meaningful detail for the kinds parameter, but the schema already describes that adequately.
Input schemas describe structure but not intent. Descriptions should explain 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 identifies the resource as 'Authenticated user's calendar events' and the tool name supplies the 'get' verb, making it clear this is a read operation on calendar events. It distinguishes itself from obvious siblings like log_event, update_event, and delete_event, but it does not explicitly name any alternatives or provide contrast with similar listing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear invocation guidance: prefer explicit from/to dates, use shortcuts for common ranges, and note that browsing noise is excluded by default. It does not, however, state when NOT to use this tool or point to alternatives such as log_event, update_event, or delete_event.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_expensesExpense SummaryARead-onlyInspect
Authenticated user cashflow summary: spend, income, net, and top spend categories. Requires OAuth or a supported scoped credential. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| net | No | |
| usd | No | Totals converted to USD (approximate FX). |
| count | No | |
| spend | No | |
| income | No | |
| period | Yes | |
| currency | No | |
| by_currency | No | |
| period_days | No | |
| multi_currency | No | |
| top_categories | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only safety profile is covered. The description adds useful behavioral context beyond annotations: authentication requirements ('OAuth or a supported scoped credential'), API key requirement, and cost ($0.10). This is meaningful additional operational information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with the core purpose front-loaded and the authentication/cost details appended compactly. Every sentence carries useful information with 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 simple zero-parameter tool with output schema present and annotations covering safety, the description is largely complete: it names the returned summary components, authentication requirements, and cost. The only minor gap is that it does not specify the time period or scope of the cashflow summary (e.g., all-time vs. current period), though this may be covered by the 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?
The tool has zero parameters, so the schema offers no parameter documentation burden. Per the baseline for 0-parameter tools, a score of 4 is appropriate. The description adds no parameter details because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns an 'Authenticated user cashflow summary' with specific components: spend, income, net, and top spend categories. This gives a specific resource and output scope. It does not explicitly distinguish itself from siblings like get_transactions or get_money_between_people, but the summary purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is for the authenticated user's own cashflow summary and notes OAuth/scoped credential requirements. However, it does not explicitly state when to use this tool over alternatives, nor does it mention exclusions or alternative tools, leaving some usage inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inventoryGet InventoryARead-onlyInspect
Browse owned inventory with filters. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and non-destructive behavior. The description adds useful context by disclosing a $0.10 cost and API key requirement, which are behavioral constraints beyond the annotations. It does not mention pagination or filter specifics, but the annotations lower the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that communicates purpose, filtering capability, cost, and authentication requirement without any filler. It is efficiently 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?
For a simple browse operation with no required parameters, an output schema, and read-only annotations, the description is mostly sufficient. The main gap is that the available filters are not enumerated, but this does not prevent a basic invocation and the overall context is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the baseline is 4. The description adds that filters are supported, which is meaningful even though the schema is empty and allows additional properties. It does not list filter names, but with no required parameters this is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Browse owned inventory') and mentions filters, making the core purpose clear. It does not explicitly differentiate itself from get_inventory_item or search_inventory, 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?
No guidance is given on when to use this tool versus siblings like search_inventory or get_inventory_item. The phrase 'with filters' implies a browsing use case, but there are no explicit use conditions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inventory_itemGet Inventory ItemBRead-onlyInspect
Full item with valuations, people links, assets. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| inventory_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| item | No | Inventory item record. |
| assets | No | |
| valuations | No | |
| people_links | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and non-destructive, so the description is not burdened with safety disclosure. It adds meaningful context beyond annotations: the call costs $0.10, requires an API key, and returns a full item with related valuations, people links, and assets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the most important functional information, followed by cost and auth requirements in parentheses. Every phrase earns its place, though the content is sparse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and read-only annotations present, the description is adequate for a simple single-id retrieval: it states what is returned, the cost, and the API key requirement. It is not fully complete because it fails to distinguish this from the sibling list/get tools, which is relevant given the large sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention inventory_id at all. Although the parameter name and type are self-explanatory, the description provides no added meaning about what value is needed or how it maps to the returned item.
Input schemas describe structure but not intent. Descriptions should explain 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 identifies the resource as a single inventory item and specifies what it contains ('valuations, people links, assets'), which is clear and useful. It does not explicitly name a sibling alternative, so it stops short of full differentiation from get_inventory or get_inventory_valuations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 choose this tool over the many related siblings like get_inventory, get_inventory_valuations, or get_entity_assets. It mentions API key requirement but does not state use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inventory_valuationsGet Inventory ValuationsARead-onlyInspect
Chronological valuation history for an item. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| inventory_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| valuations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe read operation. The description adds useful behavioral context by disclosing the $0.10 cost and required API key, and by noting the chronological ordering of results. These details go beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with a useful parenthetical for cost/auth. There is no fluff or redundant repetition of the tool 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 one required parameter, an output schema, and read-only annotations, the context is mostly sufficient. The description adds cost/auth and ordering behavior, though it could be more explicit about the inventory_id parameter and when to use this tool over siblings.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must compensate for the undocumented inventory_id parameter. It only refers to 'an item,' which provides minimal semantic context and does not explain the ID format, source, or relationship to get_inventory_item. The parameter name helps, but the description leaves most of the burden unmet.
Input schemas describe structure but not intent. Descriptions should explain 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 the tool returns a 'Chronological valuation history for an item,' which is a clear resource and scope. It does not explicitly contrast with siblings like get_inventory_item or add_inventory_valuation, but the word 'history' distinguishes it reasonably well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 intended use is implied: an agent needing valuation history for an inventory item would choose this tool. However, there is no explicit guidance about when to prefer it over related tools such as get_inventory_item or add_inventory_valuation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_life_contextLife Context SnapshotARead-onlyInspect
Get a snapshot of the authenticated user's current life context (identity, today/upcoming events, pulse, trackers). Relationships and memories are included by default; pass include_*=false to omit. Location is opt-in. Requires an authenticated Dayze account via OAuth; scoped API keys are also supported for direct clients. ($0.15; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| include_location | No | Include city/country label; never returns a precise address | |
| include_memories | No | Include recent memory summaries (default true; set false to omit) | |
| include_relationships | No | Include inner-circle and relationship summaries (default true; set false to omit) |
Output Schema
| Name | Required | Description |
|---|---|---|
| identity | Yes | Account identity and timezone. |
| mood_score | No | |
| energy_score | No | |
| inner_circle | No | |
| pulse_streak | No | |
| social_edges | No | |
| today_events | Yes | |
| active_trackers | No | |
| recent_memories | No | |
| upcoming_events | Yes | |
| pending_responses | No | |
| relationship_health | No | |
| pending_responses_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive, and the description adds meaningful context: authentication requirements via OAuth or scoped API keys, cost, and default inclusion behavior. This goes beyond the structured annotations and aligns with them, with no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences that front-load the purpose and then cover defaults and auth/cost. Every sentence adds useful information without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with zero required parameters, an output schema, and safe annotations, the description adequately covers defaults, opt-in location, and authentication. It is slightly thin on routing to more granular sibling tools, but an agent has enough to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three boolean parameters are already documented with defaults. The description reinforces the include_*=false pattern and the opt-in nature of location, but adds little new meaning beyond the structured schema. This fits the baseline where schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and names a composite resource ('snapshot of the authenticated user's current life context') with enumerated contents: identity, today/upcoming events, pulse, trackers. It also clarifies the optional relationship, memory, and location buckets. It does not explicitly differentiate from sibling tools like get_context_pack, so it is clear but not maximally distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that relationships and memories are included by default and can be omitted via include_*=false, and that location is opt-in. This gives practical call-construction guidance but no explicit when-to-use versus alternatives such as get_memories, get_events, or get_trackers. Usage is implied by 'snapshot' rather than stated with exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_life_graphLife Graph ExportARead-onlyInspect
Explicit private life-graph export: favorites/VIP plus people with edges or recent event tags. Pass full=true for a larger capped list. Optional event–people links. Requires OAuth or a supported scoped credential. ($0.25; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Include additional people by last interaction, up to max_people | |
| max_people | No | ||
| event_links_limit | No | ||
| include_event_links | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| hot | Yes | |
| edges | Yes | |
| nodes | Yes | |
| edge_count | Yes | |
| node_count | Yes | |
| event_people_links | No | |
| max_people_requested | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to reassert safety. It adds valuable behavioral context by disclosing the private export scope, the cap behavior behind full=true, optional event-people links, the OAuth/scoped-credential requirement, and the $0.25 cost. This goes beyond what the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first clause states what the tool exports, followed by the key flag, optional links, and auth/cost note. Every sentence earns its place, and there is no filler or redundant 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?
Given the output schema, annotations, and the tool's simple parameter structure, the description covers essential invocation details: scope, the full flag, optional links, auth, and cost. The only notable gaps are explicit guidance around the max_people/event_links_limit caps and alternatives, but these are not critical for a successful 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?
With only 25% schema description coverage, the description must compensate for underdocumented parameters. It explicitly mentions full=true and 'Optional event-people links,' but it never names or explains max_people or event_links_limit, and 'larger capped list' is vague about the actual cap. This is only partial compensation for four 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 clearly identifies the action ('export') and the object ('private life-graph'), and it enumerates the graph's contents: favorites/VIP plus people with edges or recent event tags. It does not explicitly contrast with sibling tools like get_life_context or get_people, but the name and content make the purpose distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through phrases like 'Explicit private life-graph export' and 'Pass full=true for a larger capped list,' and it states an authentication requirement. However, it never explicitly says when to choose this tool over related siblings such as get_people or get_life_context, nor does it state exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_location_contextLocation ContextARead-onlyInspect
Likely current or at-time place with confidence and provenance. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | ISO timestamp |
Output Schema
| Name | Required | Description |
|---|---|---|
| at | No | |
| place | No | Canonical place record. |
| confidence | No | |
| provenance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and non-destructive. The description adds useful behavioral context beyond those annotations: the result is a 'likely' estimate, includes confidence and provenance, requires an API key, and costs $0.10 per call.
Agents need to know what a tool does to the 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 conveys the core purpose, uncertainty, provenance, cost, and authentication requirement without any filler. The most important information is front-loaded and every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one optional parameter fully documented in the schema, an output schema, and read-only annotations, the description covers the essential operational facts including cost and API key requirement. No critical information needed to invoke the tool correctly appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the only parameter, 'at', as an ISO timestamp with 100% coverage. The description adds meaning by distinguishing 'current' vs 'at-time', which clarifies that omitting the parameter yields the current estimate and providing it yields an estimate for that time.
Input schemas describe structure but not intent. Descriptions should explain 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 names the resource, a place estimate at the current or a specified time, with confidence and provenance. It is understandable, though it lacks an explicit verb and does not distinguish itself from sibling tools like get_life_context or get_location_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 phrasing 'current or at-time place' implies this tool is for point-in-time location estimation, but the description does not explicitly say when to use it over alternatives or when not to use it. Cost and API key requirements are practical prerequisites, but not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_location_historyLocation HistoryBRead-onlyInspect
Normalized visit history (venue-level by default, not raw GPS noise). ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| city | No | ||
| from | No | ||
| place | No | ||
| country | No | ||
| precision | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| visits | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the annotations: results are normalized, venue-level by default, and not raw GPS noise, plus an API key and cost are required. Since annotations already declare readOnlyHint, the description does not need to belabor safety, and it adds meaningful nuance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core behavior is front-loaded and the cost/auth caveat is appended compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and read-only annotations reduce the burden there, but the description still omits parameter meanings and sibling differentiation. For a six-parameter tool, an agent needs more than one implicit precision hint to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only hints at one parameter: 'venue-level by default' implies a precision default. The other five parameters (to, from, city, place, country) receive no semantic explanation, leaving the agent to guess how they combine.
Input schemas describe structure but not intent. Descriptions should explain 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 scopes the tool to normalized visit history at venue-level rather than raw GPS noise, which distinguishes it from a raw location feed. It lacks a direct contrast with siblings like get_place_visits or get_travel_history, but the resource and its normalizing behavior are 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?
The only guidance is that an API key is required and the call costs $0.10. There is no indication of when to prefer this over get_travel_history, get_place_visits, get_location_context, or get_cities_visited, and no exclusions or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_memoriesAgent MemoriesARead-onlyInspect
Authenticated user memories from Dayze Agent. Pass query for semantic/keyword retrieval. Prefer search for event-first trip and calendar titles. Requires OAuth or a supported scoped credential. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows 1–50, default 20 | |
| query | No | Semantic focus (optional) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | |
| query | No | |
| events | No | |
| people | No | |
| memories | 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 value beyond annotations by disclosing OAuth/scoped credential and API key requirements and the $0.10 cost. No behavioral trait contradicts 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?
Purpose is front-loaded, followed by usage guidance, alternative routing, and requirements in a compact form. Every clause contributes new information; no filler or redundant elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 the input schema covering both parameters and an output schema present, the agent has all return and parameter details. The description fills the remaining gaps: when to prefer search, authentication needs, API key, and cost. This is complete for a read-only retrieval 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%, so schema already documents both optional parameters. The description adds meaning to 'query' by stating it supports both semantic and keyword retrieval, which goes beyond the schema's 'Semantic focus' label. Limit semantics are left to the schema, which is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific action and resource: retrieving authenticated user memories from Dayze Agent. It also distinguishes itself from sibling search by noting when search is preferred for event-first trip and calendar titles. This is more than a restatement of the name or title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs passing a query for semantic/keyword retrieval and tells the agent to prefer search for event-first trip and calendar titles. It also discloses credential and API key prerequisites. This gives clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_money_between_peopleMoney Between PeopleARead-onlyInspect
Same as get_person_transactions: authenticated user ↔ one contact via expenses FKs. Prefer get_person_transactions; this alias exists for agent discoverability. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Inclusive YYYY-MM-DD filter | |
| from | No | Inclusive YYYY-MM-DD filter | |
| name | No | Surface name if person_id unknown | |
| limit | No | Max rows 1–200, default 50 | |
| person_id | No | CRM people.id |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| model | No | |
| totals | No | |
| entries | No | |
| person_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and non-destructive behavior. The description adds valuable operational traits beyond annotations: cost ($0.10), API key requirement, and the precise scoping 'authenticated user ↔ one contact via expenses FKs.' No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it establishes the relationship to get_person_transactions first, then adds the alias rationale and cost constraints. Every sentence earns its place with 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?
With 100% schema parameter coverage, an output schema, safety annotations, and an explicit pointer to the sibling tool, the description is nearly complete. It could directly restate the return behavior instead of relying on 'Same as get_person_transactions,' but the alias framing makes this 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 the baseline is 3 even without extra parameter details in the description. The description's scoping phrase 'one contact via expenses FKs' gives some context for person_id/name, but it does not add meaningful syntax or format details 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 the tool's function via 'Same as get_person_transactions: authenticated user ↔ one contact via expenses FKs,' which clearly specifies a verb, resource, and scope. It also distinguishes itself from the sibling by explicitly naming get_person_transactions and framing this as an alias, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit selection guidance: 'Prefer get_person_transactions; this alias exists for agent discoverability.' This tells the agent when not to use this tool and points to the preferred alternative, leaving no ambiguity about routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_peopleUser ContactsARead-onlyInspect
List the authenticated user's CRM people. Each person includes avatar_url, photo_count, and has_photos; use get_person_photos(person_id) for the full gallery. Notes omitted by default (has_notes flag); pass include_notes=true for progressive fetch (credential/secret spans are redacted server-side). Supports limit (default 100, max 500) and offset; returns total and truncated. Requires OAuth or a supported scoped credential. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size (default 100, max 500) | |
| offset | No | Skip N rows (default 0) | |
| include_notes | No | When true, include notes (server-redacted). Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | |
| total | Yes | |
| offset | Yes | |
| people | Yes | |
| truncated | Yes | |
| include_notes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds valuable behavior: OAuth/scoped credential requirement, cost, server-side redaction of credential/secret spans, default note omission, and pagination behavior (total/truncated). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place—purpose, field summary, alternative, notes behavior, pagination, auth/cost. It is front-loaded with the primary purpose and 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 all necessary aspects: primary action, output fields, pagination, notes behavior, authentication, cost, and the sibling for photos. With an output schema present, nothing an agent needs to call 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%, but the description goes beyond schema by explaining the semantics of include_notes (redaction, progressive fetch) and limit/offset (returns total and truncated). This adds meaning the schema alone doesn't convey.
Input schemas describe structure but not intent. Descriptions should explain 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 the authenticated user's CRM people.' It also distinguishes itself from the sibling get_person_photos by noting that the full gallery is available via that tool, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to an alternative with 'use get_person_photos(person_id) for the full gallery' and explains the include_notes progressive fetch condition. This gives clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_person_aliasesPerson AliasesARead-onlyInspect
List canonical aliases (nicknames) for a CRM person. Pass person_id or name (resolved via aliases). Requires OAuth or a supported scoped credential. ($0.05; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Surface name if person_id unknown | |
| person_id | No | CRM people.id |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| aliases | No | |
| person_id | No | |
| candidates | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation read-only, and the description adds useful behavioral context: name resolution via aliases, OAuth/scoped credential requirement, and API key cost. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no waste. The core purpose is front-loaded, and the credential/cost details are compactly appended.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and an output schema present, the description covers the essential behavioral and operational details. It could be slightly clearer that at least one of person_id or name should be supplied, since the schema marks both as optional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds semantic value by explaining the relationship between person_id and name, and that name is resolved through aliases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List canonical aliases (nicknames) for a CRM person.' It clearly specifies the operation and distinguishes it from broader person tools like get_people or resolve_person.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by saying to pass either person_id or name, which tells the agent how to invoke it. It does not explicitly compare against sibling tools, but the intended use is apparent enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_person_connectionsGet Person ConnectionsARead-onlyInspect
List graph edges for one CRM person. ($0.05; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| person | No | |
| connections | No |
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 useful behavioral context by noting the $0.05 cost and the API key requirement, which are not present in annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with zero filler. It front-loads the core action and resource, then appends the only two operational caveats (cost and API key) in a brief parenthetical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool with an output schema, the description covers the essential information: what it lists, the scope, cost, and auth. It does not mention usage trade-offs against sibling graph-related tools, but this is a minor gap given the simple interface and existing annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds that the tool operates on 'one CRM person,' giving some meaning to person_id. However, it does not clarify the expected format of person_id or how it relates to other person identifiers in sibling tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'List graph edges for one CRM person.' It is specific about operating on a single person's graph edges, though it does not explicitly distinguish itself from sibling tools like get_entity_links or get_life_graph, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for one CRM person' implies the tool is for retrieving the graph connections of a specific person, and the mention of API key required and cost gives operational context. However, there is no explicit guidance on when to use this tool versus alternatives such as get_life_graph or get_person_interactions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_person_interactionsPerson InteractionsARead-onlyInspect
Relationship timeline for one CRM person: interactions rows (message/call/meeting/note + extended kinds like visit/gift/stayed_over encoded in summary) plus co-tagged calendar events. Prefer this over dumping people.notes for “when did I last see X?”. Pass person_id or name. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Inclusive YYYY-MM-DD filter | |
| from | No | Inclusive YYYY-MM-DD filter | |
| kind | No | Optional filter: meeting, visit, gift, stayed_over, met, … | |
| name | No | ||
| limit | No | Max rows 1–100, default 40 | |
| person_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| count | No | |
| events | No | |
| person_id | No | |
| truncated | No | |
| matched_via | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and non-destructive behavior, so the description correctly focuses on more useful behavioral details: 'extended kinds like visit/gift/stayed_over encoded in summary' and inclusion of 'co-tagged calendar events'. These reveal data-modeling quirks beyond what readOnlyHint and destructiveHint communicate.
Agents need to know what a tool does to the 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 dense sentences: purpose, usage guidance, and invocation essentials. No filler or redundant restatement of the schema. The main purpose is front-loaded and every clause adds 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 tool with an output schema and read-only annotations, the description covers the core inputs, the interaction-kinds semantics, the calendar-event inclusion, and the cost/auth caveat. It could slightly improve by stating what happens if neither person_id nor name is supplied, but it is otherwise sufficiently complete for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, leaving name and person_id bare. The description compensates by stating 'Pass person_id or name,' which clarifies that these are mutually acceptable identifiers. It also reinforces the kind parameter by listing extended kinds like visit/gift/stayed_over, adding meaning beyond the bare schema examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific product: 'Relationship timeline for one CRM person' and enumerates the exact contents (interactions rows, extended kinds, co-tagged calendar events). It is clearly distinct from siblings like get_person_transactions or get_people. This is a strong, specific verb-resource-scope statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to prefer this tool: 'Prefer this over dumping people.notes for "when did I last see X?"'. It also tells the agent how to identify the person: 'Pass person_id or name.' This gives a concrete usage directive and names an alternative approach to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_person_neighborhoodPerson NeighborhoodARead-onlyInspect
Subgraph around one user-owned person_id — profile (avatar_url, photo_count, has_photos) plus declared connections. Use get_person_photos for the full gallery. Notes omitted unless include_notes=true (redacted). Requires OAuth or a supported scoped credential. ($0.15; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | UUID | |
| include_notes | No | When true, include center.notes (server-redacted). Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| center | Yes | A Dayze person or contact record. |
| connections | Yes | |
| include_notes | No | |
| connection_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description adds meaningful behavioral context: notes are redacted and omitted unless include_notes=true, an OAuth or supported scoped credential is required, and an API key is needed. It also clarifies the returned data scope and does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: function is front-loaded, the alternative is named, notes behavior is clarified, and auth/pricing are included. No sentence is wasted and it remains 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?
Given the tool has an output schema, the description does not need to explain return values. It covers the person_id scoping, the include_notes behavior, authentication requirements, and the distinction from a sibling. Nothing essential is missing for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is a 3. The description adds extra meaning by specifying person_id must be user-owned and by explaining include_notes affects whether redacted notes are returned. These details go beyond the raw 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 clearly states the tool returns a subgraph around one user-owned person_id, including profile fields and declared connections. It also differentiates from the sibling get_person_photos by directing that tool for the full gallery, leaving no ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use get_person_photos for the full gallery,' which tells the agent when not to use this tool and which alternative to choose. It also clarifies authentication requirements and pricing, giving enough context for appropriate selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_person_photosPerson PhotosARead-onlyInspect
Gallery image URLs for a CRM contact. Returns photos[{ id, url, is_primary, created_at }] plus inline MCP image attachments for chat render. Accepts person_id. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| photos | No | |
| person_id | No |
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 clear. The description goes beyond annotations by disclosing the exact return structure (photos array with id, url, is_primary, created_at), the fact that inline MCP image attachments are included for chat rendering, and the cost/auth requirements ($0.10; API key required). This adds meaningful 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?
The description is a single, efficient sentence that front-loads the core function, then provides the return format, attachments, and cost/auth in a compact parenthetical. Every piece of information earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, clear purpose) and the presence of an output schema, the description covers everything an agent needs: it states what it does, what it returns, the input, and even cost/auth. It is complete for correct invocation and interpretation of results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It says 'Accepts person_id,' which is minimal but does imply person_id refers to the CRM contact from the opening. However, it does not elaborate on the type, format, or constraints beyond what the schema already states, so it only marginally adds meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves gallery image URLs for a CRM contact, which is a specific verb+resource. It also describes the return shape and the input parameter, making the purpose unambiguous and differentiating it from sibling tools like get_photos_for_event or get_photos_for_place by the explicit 'CRM contact' context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage context by stating it is for a CRM contact, but it does not explicitly name alternatives or give conditions for when to use this tool versus other photo-related tools such as search_photos or get_photos_for_event. There is no direction on exclusions or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_person_transactionsPerson TransactionsARead-onlyInspect
Me↔contact money ledger from expenses (paid_to_person_id / income_from_person_id). Pass person_id or name. Returns entries + per-currency totals. Reuses existing expenses — no parallel ledger table. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Inclusive YYYY-MM-DD filter | |
| from | No | Inclusive YYYY-MM-DD filter | |
| name | No | Surface name if person_id unknown | |
| limit | No | Max rows 1–200, default 50 | |
| person_id | No | CRM people.id |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| count | No | |
| totals | No | |
| entries | No | |
| person_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable non-obvious context beyond annotations: it reuses existing expense records rather than maintaining a parallel ledger, and it notes cost and API key requirements. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the core purpose, inputs, outputs, data source, cost, and authentication requirement with no filler. The information is front-loaded and every clause carries meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full input schema, complete parameter descriptions, read-only annotations, and an output schema available, the description covers the remaining important context: data derivation, required identifier style, return shape, and operational considerations. Nothing critical for 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 100%, so the baseline is 3. The description adds meaningful semantic guidance by connecting person_id/name to the ledger concept and explaining the data source ('paid_to_person_id / income_from_person_id'), which helps an agent understand how parameters relate to the domain.
Input schemas describe structure but not intent. Descriptions should explain 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 defines the tool as a 'Me↔contact money ledger' built from expense fields, which is a specific verb+resource. It also states what it returns ('entries + per-currency totals') and distinguishes it from a generic expense query by focusing on person-related transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: pass person_id or name to get person-to-person money movement. It does not explicitly name alternatives like get_transactions, search_transactions, or get_money_between_people, nor does it state when not to use this tool, but the 'person ledger' framing strongly implies the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_photoGet PhotoARead-onlyInspect
Single photo metadata + secure URL. Returns inline MCP image attachment when available. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| photo_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| photo | No | Photo or entity asset metadata. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful context beyond the annotations: it returns a secure URL, may include an inline MCP image attachment, requires an API key, and has a $0.10 cost. This is valuable operational information without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence covering the core behavior, followed by a compact parenthetical with cost and auth requirements. Every clause contributes meaningful information; 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?
For a simple one-parameter read-only lookup, the description covers the return content, security property, attachment availability, cost, and authentication. An output schema exists, so enumerating metadata fields is unnecessary. Minor gaps include error handling and not-found behavior, but they are not essential for this simple 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 0%, and the description does not explain photo_id at all—it doesn't state where the ID comes from, expected format, or how it relates to other photo endpoints. With only one parameter, the description should compensate for the missing schema docs, but it doesn't.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Single photo metadata + secure URL,' which states a specific resource and operation. The 'Single photo' phrasing clearly distinguishes it from collection-oriented siblings like get_person_photos and search_photos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 this tool is for retrieving one photo by ID, but it never states when to choose it over related siblings such as get_photos_for_event or get_photos_for_place. There is no explicit when/when-not guidance; the agent must infer usage from the tool name and the word 'Single.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_photos_for_eventPhotos For EventDRead-onlyInspect
Assets linked to an event. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| photos | No | |
| event_id | No |
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 useful context: cost ($0.10) and the requirement for an API key. However, it does not explain behavior beyond that, such as what the returned 'assets' represent or any pagination/limits. With annotations carrying the safety burden, the added cost/auth info earns 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?
The description is a single short sentence, so it is concise in length, but it is not front-loaded with the most critical information. The core purpose is vague ('Assets linked to an event'), and the useful cost/API key details come after. It is under-specified rather than effectively 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?
Even though the tool is simple (one parameter) and has an output schema, the description is far from complete. It fails to clarify what 'assets' means, does not mention event_id, and does not provide enough context for an agent to correctly invoke the tool or distinguish it from similar tools like get_photos_for_place. The description is wholly inadequate for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the event_id parameter at all. The agent is left to infer that event_id identifies an event, but no format, semantics, or relationship to other tools is provided. The description adds no value for the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Assets linked to an event.' is a noun phrase, not an explicit action like 'Retrieve' or 'Get'. It is vague about what 'assets' means (photos? other files?) and does not differentiate from siblings such as get_entity_assets or get_photos_for_place. The name suggests photos, but the description says assets, adding confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The description only provides cost and API key requirements, which are not usage guidelines. No mention of scenarios, exclusions, or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_photos_for_placePhotos For PlaceCRead-onlyInspect
Assets linked to a canonical place. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| place_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| photos | No | |
| place_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe-read nature is covered. The description adds useful extra context with the $0.10 cost and API-key requirement, and it scopes behavior to 'canonical place' assets, but it discloses little beyond those points.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and includes both cost and auth context in a single sentence. However, it reads as a noun phrase rather than a complete operational description, so it is concise but slightly under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and an output schema, and annotations cover the read-only safety profile. Still, the description omits any usage context or parameter clarification, so the agent is left to infer details that could help correct invocation, especially among many similar photographic and place-related 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 0%, so the description must compensate for the undocumented place_id parameter, but it never mentions place_id or explains what canonical place ID format is expected. While the parameter name is somewhat self-evident, the description adds no semantic value 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 resource scope ('Assets linked to a canonical place') but lacks an explicit verb such as 'retrieves' or 'returns'; the operation is mostly carried by the tool name. It also does not distinguish this from sibling tools like get_photos_for_event, get_person_photos, or get_place_visits, so an agent must infer what makes this tool unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 about when to use this tool versus alternatives. The only added context is cost and API-key requirements, which do not help an agent choose between get_photos_for_place, get_photos_for_event, or search_photos. No exclusions or conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_placeGet Place CardARead-onlyInspect
Fetch one saved place card (business_contacts) by place_id — address, opening hours, affordability, notes. ($0.05; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| place_id | No | ||
| business_contact_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| place | No | Saved place card. |
| message | No | |
| place_id | No | |
| business_contact_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, non-destructive, closed-world). The description adds pricing ($0.05) and API-key requirement, which are useful quirks beyond the annotations. But it names place_id as the key while the schema exposes three optional identifiers, an unresolved behavioral 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?
One sentence, em-dash summary of return fields, parenthetical cost and auth. Front-loaded verb+resource with zero 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?
Output schema exists, so return-value detail is not required. But with 0% schema description coverage and three interchangeable-looking ID params, the description should clarify the parameter contract; naming only place_id is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with 3 undocumented params. The description compensates by naming place_id as the lookup key, but is silent on id and business_contact_id, leaving ambiguity about which parameter actually selects the record.
Input schemas describe structure but not intent. Descriptions should explain 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 (Fetch one saved place card) plus resource (business_contacts) and enumerates the returned fields (address, opening hours, affordability, notes). Clear against siblings like get_places (list) and get_place_visits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (single-record lookup by place_id) is clear, but no when-to-use vs get_places, resolve_place, or enrich_place_from_google. The cost and auth note hint at a paid/authenticated path but don't route between alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_placesList PlacesBRead-onlyInspect
Known venues: visit-graph places plus saved place cards (saved_places from business_contacts) with address, opening_hours, and affordability ($/$$/$$$). ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| area | No | ||
| city | No | ||
| near | No | Filter saved cards by area/tag/notes (e.g. Madeira). | |
| limit | No | ||
| country | No | ||
| affordability | No | $ | $$ | $$$ |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| places | No | |
| saved_count | No | |
| saved_places | 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 usefully adds non-obvious operational context the annotations do not: the $0.10 cost and the API key requirement, plus disclosure of the two underlying data sources. Only minor gaps remain (e.g. pagination or default limit 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 compact sentence front-loads the data sources and fields, with the cost/auth note trailing. There is little waste, though the source-qualified phrasing (`saved_places` from business_contacts) is denser than an agent needs for selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and annotations cover safety. However, for a 7-parameter, 0-required tool with only 29% schema coverage, the description leaves filtering behavior and usage context underspecified, making it only minimally adequate.
Complex tools with many parameters or behaviors need more documentation. 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%, and with 7 parameters (tag, area, city, near, limit, country, affordability) the description documents essentially none of them beyond restating the affordability format ($/$$/$$$) already in the schema. It does not compensate for the large coverage gap, leaving filtering semantics for tag/area/city/country/limit unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resources clearly ('visit-graph `places` plus saved place cards') and what fields accompany them (address, opening_hours, affordability), which lets an agent understand this is a listing of known venues. It stops short of distinguishing itself from siblings like get_place, get_place_visits, or resolve_place, so it is clear but not disambiguating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit when-to-use guidance, no mention of alternatives, and no stated conditions or prerequisites beyond the cost/API-key note. An agent cannot tell from this text when to prefer get_places over get_place or a search tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_place_visitsPlace VisitsBRead-onlyInspect
When was I at a venue — merges place_visits, location_visits, and event locations. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | ||
| place | Yes | ||
| place_id | No | ||
| person_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| place | Yes | |
| visits | Yes | |
| confidence | No | |
| people_present | No | |
| matching_events | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and non-destructive behavior, so the description adds value by disclosing the multi-source merge, the $0.10 cost, and the API-key requirement. It does not cover rate limits or failure behavior, but for a read-only tool with annotations present this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one tight sentence that leads with the user-facing purpose and packs scope, cost, and auth requirement into minimal space. There is 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 five-parameter tool with zero schema descriptions, the description is too thin to let an agent construct a correct call. The output schema may cover return values, but input semantics for place_id vs place, person_ids, and from/to are 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 0%, and the description only implies that 'place' refers to a venue and that from/to relate to a time interval. The distinction between place and place_id, the meaning of person_ids, and expected date formats are all left 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?
The description's opening, 'When was I at a venue,' clearly conveys the query intent, and 'merges place_visits, location_visits, and event locations' defines the resource scope. However, it does not name or contrast sibling tools such as get_location_history or get_travel_history, so a 5 is not warranted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 use case of retrieving venue visits is implied by 'When was I at a venue,' and the data-source merge helps an agent know what the tool covers. There is no explicit guidance on when to prefer this over related tools or any exclusions, so the guidance remains 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.
get_sleepGet SleepCRead-onlyInspect
Sleep: list typed sleep/nap records with duration_minutes. ($0.05; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| sleeps | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds value by disclosing the cost ($0.05) and the API key requirement, which are not in the annotations. However, it does not explain behavioral details like date range semantics or pagination, and the phrase 'typed' is ambiguous. Overall it adds some context but leaves important behavioral aspects 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?
The description is a single, concise sentence that front-loads the core purpose. It efficiently includes cost and auth information without fluff. The structure is clean and easy to scan, though it could benefit from a clearer separation of cost/auth and operational details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three parameters and zero schema coverage, the description must compensate by explaining how to use the parameters. It fails to do so, leaving critical context (e.g., default date ranges, limit behavior) unspecified. The presence of an output schema mitigates return-format ambiguity, but the overall description is incomplete for safe and 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 0%, so the description must compensate for the lack of parameter documentation. It does not explain what 'to', 'from', or 'limit' represent. The mention of 'duration_minutes' is a result field, not a parameter. The description provides minimal help in understanding the parameters, leaving users to guess their meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and the resource (typed sleep/nap records) and mentions a key field (duration_minutes). It is specific and informative, though it does not explicitly differentiate from the sibling get_sleep_summary, which likely serves a different purpose. The word 'typed' hints at detailed records rather than a summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_sleep_summary. It does not state whether this is for individual records or aggregated data, nor does it mention any exclusions or preferred contexts. Users must infer usage from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sleep_summarySleep SummaryARead-onlyInspect
Sleep: day/week/month totals and averages. ($0.05; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| range | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| range | No | |
| nights | No | |
| total_minutes | No | |
| average_minutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds operational details beyond annotations: a $0.05 cost and the need for an API key. This is valuable transparency for an agent deciding whether to invoke the tool. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tight sentence that front-loads the core function ('Sleep: day/week/month totals and averages') and then adds cost and auth requirements. There is no fluff; every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only summary tool with one parameter and an output schema, the description covers the essential context: operation, time ranges, and operational constraints (cost, API key). Return format is delegated to the output schema, which exists. It is complete enough for an agent to call correctly without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'range' has an enum (day, week, month). The description indirectly references this via 'day/week/month totals and averages', giving context to the parameter. However, with 0% schema description coverage, the description carries the burden, and it adds minimal detail beyond the enum values themselves. Adequate but not rich.
Input schemas describe structure but not intent. Descriptions should explain 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 function: retrieving sleep totals and averages for day, week, or month ranges. It implies a summary view, distinguishing it from sibling get_sleep (likely raw logs) and log_sleep (write), though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like get_sleep or log_sleep. The only contextual hints are cost and API key requirements, which are operational constraints rather than usage guidance. The description does not specify conditions for choosing summary over raw data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trackersHabit TrackersARead-onlyInspect
Authenticated user live trackers only; expired countdowns and inactive streaks are omitted. Sobriety/streak trackers remain visible at day 0 after a reset. Merges event-backed trackers with the trackers table when present. Requires OAuth or a supported scoped credential. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| trackers | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnly and non-destructive, and the description goes further by revealing specific filtering rules, merge logic with event-backed trackers, day-0 visibility after reset, and credential requirements. It also discloses cost ('$0.10'), which is valuable. No contradiction with annotations; the description enriches transparency substantially.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core scope, then exclusions, an exception, merge behavior, and finally auth/cost. It packs valuable info without excess verbosity, though it is a bit dense with multiple clauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and zero params, the description covers all necessary behavioral context: filtering, merging, auth, and cost. Nothing critical is missing for an agent to call this correctly. It is complete for a read-only getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add parameter meaning. The empty input schema is clear, and the description's auth mention is not parameter-related. The baseline for zero parameters is 4, and the description does not detract from it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource (authenticated user's trackers) and the scope (live only, with exclusions). The verb 'get' is implied but name makes it clear. It distinguishes this from other get_* tools by specifying unique filtering and merging behavior, though no sibling specifically competes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when to use this tool by defining what is included and excluded (expired countdowns and inactive streaks are omitted), and states the authentication requirement. It does not explicitly contrast with alternatives, but no direct alternative exists among siblings. The contextual detail about reset behavior adds practical usage nuance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transactionsGet TransactionsARead-onlyInspect
List expense/income/transfer rows. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| transactions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the primary behavioral profile is covered. The description adds two useful behavioral details beyond the schema: the call costs $0.10 and requires an API key. It doesn't mention pagination, rate limits, or the shape of the response, but with annotations covering safety, this is a reasonable contribution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that states the action and scope, followed by two parenthetical cost and auth notes. All content earns its place with no redundancy or filler. It is appropriately front-loaded with the core purpose 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?
Given the zero parameters and read-only annotations, the description covers the essential calling requirements: what it lists, the cost, and the API key requirement. However, it does not mention that an output schema exists or describe the return format, and it doesn't note whether all rows are returned or if there are implicit limits. For a list operation, this is adequate but not 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?
The schema has zero parameters and 100% coverage, so there is no parameter documentation burden. With 0 params, the baseline is 4 per the rubric. The description adds no param detail, but none is needed since there are no parameters. It does not need to compensate for any schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'List expense/income/transfer rows.' This distinguishes it from other transaction-related tools like search_transactions, though it doesn't explicitly name alternatives. However, the title is essentially the same as the description, and the scope of 'rows' is somewhat vague. The description is clear but not strongly differentiated from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is a listing operation for expense/income/transfer rows, but it does not explicitly say when to use this tool vs alternatives such as get_expenses, search_transactions, or get_person_transactions. There is no mention of filtering, pagination, or date ranges, and it doesn't say when NOT to use it. Usage context is only implied by the verb 'List.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_travel_historyTravel HistoryBRead-onlyInspect
Completed/confirmed travel only. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| trips | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and non-destructive behavior, so the description adds value by disclosing the $0.10 cost, API key requirement, and the data scoping to completed/confirmed travel. This gives an agent useful operational and semantic context beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with every element earning its place: the scope qualifier, cost, and authentication requirement. It is front-loaded and contains 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?
Despite the presence of annotations and an output schema, the description fails to explain the two parameters, leaving an agent unable to construct a correct request. The simple nature of the tool and safety annotations are positives, but the complete absence of parameter semantics makes it insufficiently 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 0% and the description does not mention 'to' or 'from' at all. An agent has no guidance on what these parameters mean (e.g., date range, location bounds) or what format to provide them in, which is a critical gap for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain 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 name 'get_travel_history' combined with the description's scope qualifier 'Completed/confirmed travel only' clearly identifies this as a retrieval operation for a specific subset of travel records. It is not a tautology and adds meaningful clarification, though it does not explicitly differentiate from sibling tools like get_trips or get_location_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool ('completed/confirmed travel only'), which suggests it is not for planned or in-progress travel. However, it does not name specific alternatives or provide explicit when-to-use versus when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tripGet TripARead-onlyInspect
Single trip with linked places and people. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| trip_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| trip | No | |
| people | No | |
| places | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful behavioral context beyond annotations by stating the $0.10 cost and API key requirement. It does not describe rate limits or error behavior, but the read-only annotations reduce the burden.
Agents need to know what a tool does to the 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 efficiently front-loaded with the core result, followed by a compact parenthetical covering cost and authentication. Every word contributes necessary information with 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 read-only tool with one parameter and an output schema, the description conveys the essential result and operational requirements. It is slightly thin on parameter details and tool differentiation, but the output schema and annotations fill most 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?
The input schema has a single required trip_id parameter with no description, and schema description coverage is 0%. The description does not mention trip_id or clarify its format or provenance, so the agent must infer meaning from the parameter name alone. The description fails to compensate for the absent schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as a 'Single trip' and specifies its contents as 'linked places and people.' This distinguishes it from the sibling tool get_trips, which returns multiple trips. The action verb is implied by the title rather than stated in the description, 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 implies use when a single trip with associated places and people is needed, but it provides no explicit when-to-use guidance or comparison with alternatives like get_trips. The selection is left mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tripsList TripsCRead-onlyInspect
User trips with status filter (planned/completed/etc.). ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | ||
| limit | No | ||
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| trips | No |
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 useful invocation context with the API key requirement and $0.10 cost, and it mentions the status filter, but it does not disclose behavior like date-range interpretation, result ordering, or pagination. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core function stated first and cost/auth details appended. It is efficient with no filler, though the trailing 'etc.' is slightly vague and could be replaced with more concrete status examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four parameters with zero schema descriptions, no enums, and no usage guidance, this description is too sparse for reliable invocation. An output schema exists to describe return values, but the missing parameter semantics and lack of sibling differentiation leave significant 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 0%, so the description must compensate for all four parameters, but it only explains 'status' with examples like planned/completed. The parameters 'to', 'from', and 'limit' remain entirely ambiguous—an agent cannot tell whether to/from are dates, locations, or something else.
Input schemas describe structure but not intent. Descriptions should explain 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 title 'List Trips' and description 'User trips with status filter' make it clear this tool retrieves a set of trips, with the resource being user trips. The status filter (planned/completed/etc.) adds specificity, though the description itself lacks an explicit verb and does not distinguish itself from the sibling get_trip or get_travel_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_trip or get_travel_history. It includes prerequisites such as API key and cost, but these do not help an agent choose among the many sibling trip/travel/list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_entitiesLink EntitiesBInspect
Link Trip→Stay→Place / Event→Person (graph, not prose). ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| to_id | Yes | ||
| from_id | Yes | ||
| to_type | Yes | ||
| from_type | Yes | ||
| link_type | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| link | No | |
| linked | No | |
| message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful operational context beyond the annotations: it costs $0.10 and requires an API key, and it clarifies that the output is graph-structured rather than prose. It does not disclose whether duplicate links are ignored, whether existing links are replaced, or whether entity IDs must already exist, but the annotations already cover read-only and destructive intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no filler, and the primary purpose is front-loaded. The cost and API-key requirement are placed at the end, and each segment earns its place, though the arrow notation is dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The required parameters are represented in the arrow notation, and the idempotency keys are documented in the schema, with an output schema available for return values. However, with eight parameters and no enums, the description still leaves link_type semantics, notes, and ID sourcing unexplained, making it only minimally 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%, so the description needed to compensate for required parameters like from_type, to_type, link_type, and notes. The arrow notation gives clues about valid endpoint type values, but it does not explain ID formats, the meaning of link_type, or how notes should be used.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Link') and resource ('entities'), and the arrow notation 'Trip→Stay→Place / Event→Person' scopes the operation to particular graph relationships. It is clear enough to distinguish from sibling tools like link_people and link_inventory_person, though it does not fully define what a 'Stay' is or enumerate every valid endpoint combination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 allowed edge pattern implies when this tool should be used, and the 'graph, not prose' note suggests the intended output model. However, there is no explicit when-not-to-use guidance or alternative routing to sibling tools like link_people or unlink_people, so an agent must infer selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_inventory_personLink Inventory PersonCInspect
Provenance link e.g. inherited_from, gifted_by. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | ||
| request_id | No | Client idempotency key (retries return original result). | |
| inventory_id | Yes | ||
| relationship | Yes | ||
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| link | No | |
| message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and not destructive. The description adds useful operational context: a $0.10 cost and API key requirement. However, it does not state whether the link is created idempotently, whether existing links are replaced, or what failure modes might occur.
Agents need to know what a tool does to the 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 very short and front-loaded with the core concept and examples, but it is under-specified for a tool with five parameters and no guidance on usage behavior. The brevity is efficient but not sufficiently 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?
The tool has a simple purpose and an output schema, so return-value details are not required. However, the description leaves out required parameter semantics, allowed relationship values, idempotency behavior, and any guidance on selecting this tool over linking siblings, making it incomplete for correct autonomous 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 40%, and the three required parameters (inventory_id, person_id, relationship) have no schema descriptions. The description provides helpful relationship examples, which partially clarifies the relationship parameter, but it does not explain the semantics of inventory_id or person_id, nor does it specify allowed relationship values.
Input schemas describe structure but not intent. Descriptions should explain 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 title and description together communicate a specific operation: linking an inventory item to a person with a provenance relationship, with concrete examples 'inherited_from, gifted_by'. It is distinguishable from generic siblings like link_entities or link_people by the inventory-person scope, though it does not explicitly state the verb 'creates' or define the exact link behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as link_entities, link_people, or unlink_people. There is no mention of prerequisites, conflicts, or cases where another linking tool should be chosen instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_peopleLink PeopleBInspect
Create person↔person graph edge (knows/friends/…). ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| source | No | ||
| direction | No | ||
| person_id | Yes | ||
| confidence | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| idempotency_key | No | Alias for request_id. | |
| other_person_id | Yes | ||
| relationship_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| linked | No | |
| message | No | |
| connection | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating operation (readOnlyHint=false), and the description consistently says "Create." It adds useful cost and authentication context ("$0.10; API key required") but does not disclose side effects like duplicate-edge behavior or overwrite 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?
The description is one short, front-loaded sentence with no filler. It packs the core action, scope examples, cost, and authentication requirement into minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 9 parameters and low schema coverage, this description is incomplete. It omits relationship/direction semantics, the meaning of confidence/source/notes, and duplicate/overwrite behavior, so an agent would struggle to call it correctly beyond the two required IDs.
Complex tools with many parameters or behaviors need more documentation. 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 22% of parameters have schema descriptions, so the description needed to compensate. It does not define person_id, other_person_id, relationship_type, direction, confidence, source, or notes; the "knows/friends" example hints at relationship_type but leaves most parameters underdocumented.
Input schemas describe structure but not intent. Descriptions should explain 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 person↔person graph edge (knows/friends/…)." This clearly distinguishes the tool from sibling tools like link_entities and link_inventory_person by narrowing the scope to person-to-person relationships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool versus alternatives such as unlink_people or link_entities. The resource scope is implied, but the description does not state conditions, exclusions, or routing advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_clarificationsList ClarificationsBRead-onlyInspect
Ranked clarification queue: only person-typed mentions + duplicate CRM people. Non-person junk (places, orgs, media, command fragments) is auto-dismissed. Existing contacts auto-link. ($0.05; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Optional: entity_mention | duplicate_people | |
| limit | No | Max rows 1–50, default 15 | |
| auto_cleanup | No | Auto-dismiss non-person / auto-link existing (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| message | No | |
| truncated | No | |
| clarifications | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly discloses auto-dismissal and auto-linking behavior, plus cost and API key requirements. However, these behaviors contradict the readOnlyHint=true annotation: auto-dismissing non-person junk and auto-linking existing contacts imply state modification. This is an annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, covering scope, ranking, filtering, side effects, cost, and authentication in just two sentences. There is no filler or redundant 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 list-oriented tool with a full input schema and output schema, the description covers scope, behavior, cost, and prerequisites well. The main gap is the conflict between the described auto-cleanup side effects and the readOnlyHint annotation, which undermines the completeness of the tool's metadata.
Complex tools with many parameters or behaviors need more documentation. 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 parameters are already well documented. The description adds context like 'ranked' and reinforces the auto-cleanup behavior, but does not add substantial new meaning 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: 'List clarifications' as a ranked queue, and narrows scope to 'only person-typed mentions + duplicate CRM people'. It clearly explains what the tool returns, but it does not explicitly name sibling tools like dismiss_clarification or bulk_dismiss_clarifications to distinguish itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 context is clear: this is the ranked clarification queue for person mentions and duplicate people, and the API key requirement is stated. However, it does not explicitly say when to prefer this over sibling tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_eventLog Event (calendar write)AInspect
MUTATES the authenticated user calendar. Use for non-food days — funeral, cremation, appointment, dinner, anything that is not a food log. Do not store this as a chat memory. Example (funeral tonight): log_event({ title: "Funeral service — Mr Goh Choo Taw", date: "2026-08-29", time: "8pm", location: "Multi Purpose Hall, Blk 661 Jurong West St 64", category: "funeral" }). Example (Sunday cremation): log_event({ title: "Cremation — Mr Goh Choo Taw", date: "2026-08-30", location: "Mandai Crematorium", category: "funeral" }). Required: title + event_date (YYYY-MM-DD; alias date). Optional: event_time (8pm or 20:00; alias time), end_date, end_time, location, description, category, external_url, visibility (private|friends|public), image_url, timezone, share_with (Dayze handles e.g. ["boof"]), people / with / person_ids, idempotency_key (recommended; retries reuse the first write). Unknown people names do not fail the write. Public events return share_url (/e/{id}) for Explore + social. Inserts public.events, optional event_people / shared_events, then rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| event | Yes | A Dayze calendar event record. |
| people_tagged | Yes | |
| unresolved_people | Yes | |
| life_state_rebuilt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing storage side effects (inserts public.events, optional event_people / shared_events, rebuilds life_state), auth requirements (API key or OAuth scope context; share tokens cannot write), cost ($0.10), idempotency behavior, and that unknown people names do not fail the write.
Agents need to know what a tool does to the 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 mutation warning and the usage rule, then enumerates constraints. The two worked examples are verbose but functionally illustrative rather than filler; a slightly tighter phrasing would earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the description still notes the public share_url consequence. Auth, cost, persistence, and idempotency are all covered — nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 real value: it names required vs optional fields, gives format examples ('8pm or 20:00'), documents aliases (date/time/with), and demonstrates idempotency_key retry semantics and share_with handle handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('MUTATES the authenticated user calendar') and immediately scopes it against the obvious sibling by excluding food logs. An agent can tell this apart from log_food 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?
Explicit when-to-use ('non-food days — funeral, cremation, appointment, dinner'), an implied alternative ('anything that is not a food log'), and even a when-not ('Do not store this as a chat memory'). Routing is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_expenseLog ExpenseAInspect
Create an outgoing expense only. For money received (Venmo/Cash App/PayPal/Zelle) use log_transaction with direction=from and type=income. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| notes | No | ||
| amount | Yes | ||
| category | No | ||
| currency | No | ||
| merchant | No | Payee name (defaults when omitted) | |
| request_id | No | Client idempotency key (retries return original result). | |
| description | No | ||
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| expense | No | Expense/income transaction row. |
| message | No | |
| expense_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful operational context beyond the annotations: each call costs $0.10 and requires an API key. The 'Create' action also correctly implies a write operation consistent with readOnlyHint=false. It does not fully describe side effects, but the annotations already cover the basic safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that deliver purpose, scope, the key alternative, and cost/authentication. No filler or redundant restatement of the schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the critical selection criterion, cost, and auth, and an output schema exists so return values need not be explained. However, with nine parameters and low schema coverage, the lack of guidance on how to populate amount, category, currency, and notes leaves some ambiguity 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 33%, and the description does not compensate by explaining amount, date, category, currency, or notes. The only parameter-related value is the direction/income distinction, which is more about tool selection than parameter semantics. Most parameters remain underdocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Create an outgoing expense only.' It clearly differentiates the tool from log_transaction, which handles incoming money. The scope is precise and immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool versus the main alternative: for money received via Venmo/Cash App/PayPal/Zelle, use log_transaction with direction=from and type=income. This gives the agent an unambiguous routing decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_favorite_songLog Favorite Song (music write)AInspect
MUTATES the authenticated user favorite tracks list at /music. Use when they favorite or save a song — do not store this as a chat memory or in music_preferences. Example: “Henry Mancini - Piano And Strings (1995 Remastered)” → log_favorite_song({ track: "Henry Mancini - Piano And Strings (1995 Remastered)" }) or title + artist. Optional year_note, source_url. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Alias for source_url | |
| title | No | Track title (required unless track blob parses) | |
| track | No | Optional "Artist - Title (year remaster)" blob | |
| artist | No | Artist name (required unless track blob parses) | |
| year_note | No | Optional year or remaster note | |
| request_id | No | Client idempotency key (retries return original result). | |
| source_url | No | Optional https link | |
| remaster_note | No | Alias for year_note | |
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| track | Yes | Saved favorite-track record. |
| created | Yes | True when a new favorite was created. |
| message | Yes | |
| track_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even though readOnlyHint=false already signals a write operation, the description explicitly states it MUTATES the favorite tracks list, which removes any ambiguity. It adds valuable behavior beyond annotations: authentication requirements, share-token write restrictions, and a $0.10 cost. This is exactly the kind of context annotations do not capture.
Agents need to know what a tool does to the 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 information-dense and front-loaded with the key action word 'MUTATES'. The example is helpful rather than padding. However, the final parenthetical '($0.10; API key required)' partially repeats the earlier 'Requires API key' statement, introducing minor redundancy. Overall itearns a 4 for efficiency with a small deduction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, no required fields, an output schema, and various potential edge cases, the description covers purpose, routing, example usage, optional parameters, authentication, restrictions, and cost. The input schema and output schema handle parameter-level and response details, so nothing essential 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 crucial semantic meaning that the schema alone does not convey: the two acceptable input forms ('track' blob OR title+artist) and a concrete example showing the blob format. It also correctly highlights optional year_note and source_url. This goes beyond merely restating property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'MUTATES' plus the resource 'authenticated user favorite tracks list at /music' states exactly what the tool does. It is clearly distinguished from sibling logging tools by targeting a specific music write operation, and the title 'music write' reinforces this 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?
'Use when they favorite or save a song — do not store this as a chat memory or in music_preferences' gives explicit when-to-use and when-not-to-use guidance. It also names alternatives (chat memory, music_preferences) and provides authentication prerequisites ('Requires API key or OAuth with scope context. Share tokens cannot write.').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_foodLog Food (diary write)AInspect
MUTATES the authenticated user Food Diary and calendar. Use when they ate or drank — do not store this as a chat memory. Example: “I had Mee Pok for late lunch with my parents” → log_food({ what: "Mee Pok", kind: "meal", meal_period: "late lunch", with: ["my parents"] }). Optional: place/merchant, amount, consumed_at (ISO). Resolves with/Mum/Dad via person aliases; unknown names do not fail the food write. Tags companions on the mirrored event. Rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| what | Yes | What they ate or drank (required). Example: Mee Pok | |
| with | No | Companion names, aliases, ids, or group tokens. "my parents" / Mum / Dad resolve via aliases; "family" expands to CRM rows with family relationship labels | |
| notes | No | ||
| place | No | Venue or location | |
| amount | No | Price if mentioned | |
| paid_by | No | Who paid (name or alias) | |
| currency | No | ISO currency, e.g. SGD | |
| merchant | No | Restaurant, stall, or shop | |
| person_ids | No | Owned person UUIDs to tag (user-scoped) | |
| request_id | No | Client idempotency key (retries return original result). | |
| consumed_at | No | ISO 8601 datetime; wins over meal_period | |
| meal_period | No | Spoken period when consumed_at is omitted, e.g. "late lunch" | |
| people_names | No | Alias for with | |
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| food_id | Yes | |
| message | Yes | |
| event_id | Yes | |
| food_log | Yes | Saved Food Diary row. |
| people_tagged | Yes | |
| unresolved_people | Yes | |
| life_state_rebuilt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description reveals mutation, side effects ('Tags companions on the mirrored event', 'Rebuilds life_state'), alias resolution behavior, unknown-name tolerance, and authentication constraints ('Requires API key or OAuth... Share tokens cannot write'). These are meaningful behavioral facts not inferable from readOnlyHint/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?
Every sentence earns its place: mutation warning, trigger condition, worked example, optional fields, side effects, auth limitations, and pricing. The key information is front-loaded and the later sentences are short and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter mutating tool, the description, combined with a rich input schema and output schema, is complete. It provides a worked example, side-effect model, authentication requirements, and enough parameter semantics to make a correct call without additional inference.
Complex tools with many parameters or behaviors need more documentation. 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 87%, so the schema already documents most parameters. The description adds real value by mapping an utterance to what/kind/meal_period/with, noting the optional place/merchant/amount/consumed_at fields, and explaining alias resolution and non-failure for unknown 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?
Description opens with 'MUTATES the authenticated user Food Diary and calendar,' naming the exact action and resource, then supplies a concrete natural-language example. The title '(diary write)' plus 'Use when they ate or drank' clearly separates it from sibling tools like log_event and update_food.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'Use when they ate or drank — do not store this as a chat memory,' giving both a positive trigger and a negative instruction. It does not directly name sibling alternatives such as log_event, update_food, or delete_food, but the food/meal trigger makes the intended selection clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_incomeLog IncomeAInspect
Record money received (Stripe, refunds, payroll, Venmo). Alias of log_transaction with type=income and direction=from. Use external_id for Stripe/Gmail idempotency. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| notes | No | ||
| amount | Yes | ||
| source | No | ||
| currency | No | ||
| merchant | No | ||
| person_id | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| external_id | No | ||
| payment_method | No | ||
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| message | No | |
| direction | No | |
| duplicate | No | |
| expense_id | No | |
| transaction | No | Expense/income transaction row. |
| transaction_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the annotations: 'Record' signals a write operation, '$0.10' discloses cost, 'API key required' discloses auth needs, and external_id idempotency is explained. It also reveals the alias relationship to log_transaction with specific type and direction values. No contradiction with annotations exists.
Agents need to know what a tool does to the 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, each earning its place: purpose, alias semantics, and idempotency/cost/auth. Information is front-loaded with the core action first and no redundant 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?
The description provides key operational context such as source categories, alias behavior, external_id idempotency, cost, and auth, and an output schema exists. However, with 11 parameters and minimal schema descriptions, many optional parameters remain undocumented, so the overall picture is adequate but has 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 18%, so the description carries the burden of explaining parameters, but it only meaningfully adds semantics for external_id (Stripe/Gmail idempotency). Other parameters like source, merchant, person_id, payment_method, currency, and date are left without guidance, leaving the agent to guess at valid values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete action and resource: 'Record money received' and lists real source examples (Stripe, refunds, payroll, Venmo). It also distinguishes itself by stating it is an alias of log_transaction with type=income and direction=from, making the tool's role clear relative to sibling 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 first sentence gives clear context for when to use the tool: incoming money from specific channels. The alias statement and external_id idempotency guidance further clarify usage, though it does not explicitly name alternatives like log_expense or state 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.
log_sleepLog SleepAInspect
Sleep: log overnight or nap. Cross-midnight OK (e.g. 14:00→03:00 = 13h / 780m). ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| source | No | ||
| quality | No | ||
| ended_at | Yes | ISO end | |
| timezone | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| sleep_type | No | ||
| started_at | Yes | ISO start | |
| timezone_end | No | ||
| timezone_start | No | ||
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| sleep | No | |
| message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the cost ($0.10) and API key requirement, which are relevant operational details. It does not contradict the annotations (readOnlyHint=false, destructiveHint=false) and adds context about the operation's side effects without being misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using a single sentence with a helpful example and cost note. Every part earns its place, and it avoids redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple logging tool, the description is adequate to understand the core purpose and cross-midnight handling. However, it omits explanations for optional parameters and does not clarify the output or error behavior, leaving some gaps for an agent invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 36% (4 of 11 parameters described). The description implicitly references started_at and ended_at via the example but leaves notes, source, quality, timezones, idempotency keys, and other fields unexplained. Since coverage is low, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (log) and the resource (sleep), and specifies it covers overnight and nap. It also provides a concrete cross-midnight example, distinguishing it from other log_* tools that handle different domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 practical usage guidance via the cross-midnight example (14:00→03:00 = 13h / 780m), which clarifies how to handle overnight periods. However, it does not explicitly mention when to use this versus alternative tools like get_sleep or update_sleep, nor does it state any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_transactionLog TransactionAInspect
Income/expense/transfer write. direction=from + type=income for Venmo/Stripe/refunds received. Positive amount; external_id dedupes imports. Prefer this (or log_income) over log_expense for money received. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| type | No | ||
| notes | No | ||
| amount | Yes | ||
| source | No | ||
| currency | No | ||
| merchant | No | ||
| direction | Yes | ||
| person_id | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| external_id | No | ||
| payment_method | No | ||
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| message | No | |
| direction | No | |
| duplicate | No | |
| expense_id | No | |
| transaction | No | Expense/income transaction row. |
| transaction_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show this is a write (readOnlyHint=false) but the description adds important behavioral detail: it requires an API key, costs $0.10, requires positive amounts, and uses external_id to dedupe imports. No contradiction exists between the description and 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 short sentences deliver purpose, usage guidance, a deduplication caveat, and cost/API requirement with no fluff. The most important 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?
For a 13-parameter write operation, the description covers the essential invocation constraints and trade-offs, and an output schema exists for return values. It does not explain how to handle transfer direction or undocumented parameters, so it is strong but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. 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 15%, and the description compensates for key parameters by explaining the direction/type combination, positive amount constraint, and external_id deduplication semantics. However, many other fields (date, merchant, person_id, payment_method, etc.) remain undocumented by both schema and description, leaving a notable 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?
Starts with a precise verb-resource phrase ('Income/expense/transfer write') that immediately identifies the operationy and the target. It also differentiates the tool from siblings by explicitly stating it should be preferred over log_expense for money received, and names log_income as an acceptable alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear conditions for use: direction=from plus type=income for Venmo/Stripe/refunds, and tells the agent to prefer this tool (or log_income) over log_expense when money is received. It also states cost and API key requirement, but does not fully specify when to choose log_income instead of log_transaction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_peopleMerge PeopleADestructiveInspect
Merge duplicate CRM contacts into a primary person. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | Client idempotency key (retries return original result). | |
| idempotency_key | No | Alias for request_id. | |
| primary_person_id | Yes | ||
| duplicate_person_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| person | No | CRM person record. |
| message | No | |
| merged_person_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint true, and the description adds practical context: '$0.10; API key required' states cost and auth requirements. 'Merge ... into a primary person' also conveys that duplicate records are consolidated into one surviving record, though it does not spell out irreversibility or field-precedence 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?
One front-loaded sentence states the core action, followed by a compact parenthetical for cost and auth. No filler or redundant 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?
The description is adequate for a destructive merge with an existing output schema and annotations, but it omits when-not-to-use guidance and any detail about what happens to linked data or fields during the merge. These gaps leave an agent to infer important side effects beyond 'merge into primary.'
Complex tools with many parameters or behaviors need more documentation. 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 names 'primary person' and 'duplicate CRM contacts,' which maps to primary_person_id and duplicate_person_ids. The idempotency parameters are already described in the schema, but the description adds little beyond what the parameter names imply for the required IDs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Merge duplicate CRM contacts into a primary person.' This clearly identifies a consolidation action and distinguishes it from sibling tools like link_people or create_person.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'duplicate CRM contacts' gives clear context for when the tool applies, and the merge-into-primary wording implies consolidation rather than linking. However, it does not explicitly state when to prefer an alternative such as link_people or score_people_duplicates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notable_packNotable Knowledge PackARead-onlyInspect
DEFAULT for who is X: profile + life_in_days (age/day_number) + similar people + birthday peers. Timeline events include day_number. Prefer this over notable_profile. Example: albert-einstein. ($0.05)
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD target date | |
| slug | Yes | Person slug, e.g. albert-einstein | |
| peers | No | ||
| similar | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| profile | No | Public notable-person profile. |
| timeline | No | |
| life_in_days | No | Age and current day-number calculations. |
| birthday_peers | No | |
| similar_people | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint, openWorldHint, and destructiveHint annotations already cover safety, so the bar is lower. The description adds useful behavioral context: the response includes life_in_days with age/day_number, similar people, birthday peers, and timeline events including day_number. It also discloses a $0.05 cost, which is beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact, information-dense line. It front-loads the default usage, then packs the key response components, the sibling preference, an example, and pricing without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, an existing output schema, and annotations covering safety, the description covers the essential context: primary use case, response composition, preferred alternative, example, and cost. It does not explain all edge cases, but it provides enough for an agent to select and invoke 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 50%, leaving peers and similar without schema descriptions. The description compensates by mapping 'similar people' and 'birthday peers' to the likely similar and peers parameters. It also gives an example slug, albert-einstein, reinforcing the slug parameter's expected format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as the default 'who is X' knowledge pack and lists what it contains (profile, life_in_days, similar people, birthday peers). It distinguishes itself from notable_profile with 'Prefer this over notable_profile.' It lacks a strict verb like 'retrieve' but is still unambiguous about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool: 'DEFAULT for who is X.' It also names the alternative, notable_profile, and directs the agent to prefer this tool over it. This is direct routing guidance that leaves little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notable_profileNotable Person ProfileARead-onlyInspect
Bio-only profile JSON by slug (no life-in-days, similar, or birthday peers). Prefer notable_pack for “who is X / age in days / peers”. Example: taylor-swift. ($0.02)
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Person slug, e.g. albert-einstein |
Output Schema
| Name | Required | Description |
|---|---|---|
| bio | No | |
| name | Yes | |
| slug | Yes | |
| about | No | |
| handle | No | |
| sources | No | |
| timeline | No | |
| image_url | No | |
| birth_date | No | |
| death_date | No | |
| occupation | No | |
| profile_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context: it returns only bio data, excludes peer/life-in-days content, and costs $0.02. No contradiction with annotations is present.
Agents need to know what a tool does to the 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 entire description is compact and front-loaded: core behavior first, exclusions and routing second, then a concrete example and pricing. Every clause earns its place with no redundant 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 tool with an output schema and clear sibling routing, the description is complete. It tells the agent what the tool returns, what it excludes, when to use a different tool, and even cost. No critical context for 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?
The schema already fully documents the single slug parameter with 100% coverage. The description reinforces that the lookup is by slug and provides a concrete example, but it does not add substantially new semantic information 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 action and resource: returning a bio-only profile JSON by slug. It explicitly differentiates itself from notable_pack by listing what it does not include (life-in-days, similar, birthday peers), so an agent can immediately understand its narrow purpose versus 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?
The description explicitly says to prefer notable_pack for 'who is X / age in days / peers', giving a clear when-not-to-use condition and naming the alternative. The slug-based lookup and example 'taylor-swift' further clarify the intended invocation context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notable_searchSearch Notable PeopleARead-onlyInspect
Search the public Dayze notable-people catalog by name, occupation, or slug. Use when you need to find a person before fetching a pack. Example slug: albert-einstein. ($0.01)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | Number of matches returned. |
| results | Yes |
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 extra behavioral context: the catalog is public, a cost of $0.01 is associated with the call, and the example slug illustrates accepted input format. This goes beyond the annotation set without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: one main sentence plus a use-case sentence and a short example/cost note. It front-loads the verb and resource, and every clause adds 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?
Given an output schema and annotations that cover the read-only, non-destructive nature, the description covers all necessary invocation context: what to search, when to use it, an example, and the cost. The anyOf schema's q/query alias confusion is not addressed, but the schema already documents it, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the baseline is 3. The description adds value by clarifying that q accepts a name, occupation, or slug and provides a concrete example (albert-einstein), which the schema's 'Primary search query' does not convey. This extra semantic context justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'Search' and names the exact resource: the public Dayze notable-people catalog. It enumerates the search dimensions (name, occupation, slug), which differentiates it from sibling tools like notable_profile, notable_pack, and generic search. It is unmistakable what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: 'Use when you need to find a person before fetching a pack.' This gives the agent a clear trigger condition. It does not, however, state when not to use it or name alternative search tools, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
propose_life_updatePropose Life UpdateBInspect
Propose assertion create/correct without committing (flagged; off by default). ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | ||
| client_id | No | ||
| people_id | No | ||
| person_id | No | ||
| predicate | No | ||
| operations | No | ||
| request_id | No | ||
| source_text | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| enabled | No | |
| message | No | |
| proposal_id | No | |
| payload_hash | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=false, destructiveHint=false, and openWorldHint=false. The description adds useful non-schema behavior: the operation does not commit, is flagged and off by default, costs $0.10, and requires an API key. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences and front-loads the core action before adding availability, cost, and auth details. It is compact and avoids repetition, though the phrasing is somewhat cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter, nested-object tool with zero schema description coverage, the description omits critical invocation context: what a proposal contains, how it relates to commit_life_update, and what the parameters mean. The output schema reduces the need to explain return values, but parameter guidance is essentially 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?
The schema has 9 parameters with 0% description coverage, so the description carries the full burden of explaining them. It provides no parameter-level meaning beyond the vague phrase 'assertion create/correct,' leaving parameters such as value, operations, predicate, source_text, and idempotency_key entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (propose assertion create/correct) and immediately distinguishes it from committing by saying 'without committing.' It implies the contrast with commit_life_update without naming the sibling, so it is clear but not fully differentiated from 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?
The phrase 'without committing (flagged; off by default)' implies when the tool is relevant: when staging a proposal rather than finalizing one. However, it never explicitly names commit_life_update or states when to use this versus committing, so usage remains inferred 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.
read_gmail_messageRead Gmail Message (read-only)ARead-onlyInspect
Read one Gmail message by id from search_gmail. Returns subject, from, date, snippet, and plain-text body (truncated). Reuses the Integrations hub Gmail connection. Read-only — cannot send, archive, or delete. Never invent body text. If Gmail is not connected, connect at /integrations. Requires API key or OAuth with scope context. Share tokens cannot call this tool. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Alias for message_id | |
| message_id | Yes | Gmail message id from search_gmail |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but the description adds meaningful behavioral context: it cannot send/archive/delete, the body is truncated, and body text must never be invented. It also discloses auth requirements and connection handling, going well 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?
The description is compact yet information-dense: scope, return fields, truncation, connection reuse, read-only constraints, data integrity rule, prerequisites, and caller restrictions each earn their place. The most important facts are 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 single-message read operation with simple parameters and an output schema, this description covers everything an agent needs: source of the id, expected return content, auth scope, connection fallback, and prohibited actions. No critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents message_id and the id alias. The description repeats 'from search_gmail' but adds no new parameter-level meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact verb and resource ('Read one Gmail message by id from search_gmail') and specifies what is returned. It clearly distinguishes this tool from the sibling search_gmail by framing it as the follow-up retrieval step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly ties the tool to output of search_gmail and states it cannot send, archive, or delete. It gives clear prerequisites (Gmail connection, API key/OAuth) and exclusions (Share tokens cannot call), but does not explicitly name alternative tools beyond search_gmail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_purchaseRecord PurchaseAInspect
Atomic expense + optional inventory item creation. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| name | Yes | ||
| amount | Yes | ||
| currency | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| expense_id | No | |
| transaction | No | Expense/income transaction row. |
| inventory_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the transactional guarantee ('Atomic'), the $0.10 cost, and the API key requirement, none of which are present in the annotations. It aligns with readOnlyHint=false by indicating a write effect and does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the functional effect comes first, followed by cost and auth requirements in parentheses. Every part earns its place 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?
The presence of an output schema reduces the burden of describing return values, and required parameters are visible in the schema. However, the agent still has to infer when to use this tool relative to siblings and receives no help understanding the optional parameters, leaving 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%, and the description does not explain what name, amount, date, or currency mean or how they map to the expense/inventory fields. The description fails to compensate for the schema's low parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation as an expense record with optional inventory item creation, and the word 'Atomic' signals a single combined effect. It helps distinguish from siblings like log_expense and add_inventory_item, though it does not explicitly use the word 'purchase' in the description body.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Optional inventory item creation' implies the tool should be used when both an expense and an inventory item are needed, but it does not explicitly name alternatives like log_expense or add_inventory_item. The usage context is implied rather than clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_saleRecord SaleAInspect
Mark inventory sold + record sale proceeds with gain/loss. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | ||
| sold_at | No | ||
| currency | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| inventory_id | Yes | ||
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| expense_id | No | |
| inventory_id | No | |
| realized_gain_loss | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate non-read-only and non-destructive, so the description adds meaningful behavior: it mutates inventory state, records financial proceeds, computes gain/loss, and requires an API key at a $0.10 cost. It does not mention idempotency or what happens if the inventory is already sold, but those are partially covered by schema fields and the added context is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, front-loaded sentences. Every phrase earns its place: the core action, the financial outcome, the cost, and the auth requirement. No filler or redundant 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 mutating financial/inventory tool with six parameters, the description covers the essential action and operational cost but leaves ambiguity around optional parameters, currency defaults, and preconditions such as whether the inventory item must exist and be unsold. The presence of an output schema reduces the need to explain return values, but the missing parameter context prevents a higher score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, with amount, sold_at, currency, and inventory_id undocumented. The description clarifies amount as sale proceeds and inventory_id as the item to mark sold, but it does not explain currency format, sold_at meaning, or whether amount is gross proceeds. This is insufficient to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('record') with a clear resource ('sale') and states the core effects: marking inventory sold and recording sale proceeds with gain/loss. This distinguishes it from sibling tools like record_purchase and log_transaction without needing to open 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 phrase 'Mark inventory sold' clearly establishes when to use this tool, and the cost/API-key note adds operational context. However, it does not explicitly state when not to use it or name alternatives such as record_purchase or log_transaction, leaving some routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_trackerReset Streak TrackerARead-onlyInspect
MUTATES a sobriety/streak tracker for the authenticated user (sets current value to 0 and restarts the clock). Prefer tracker_id from get_trackers, or tracker_title fuzzy match. Optional reset_at (ISO) and note. Rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional note stored in tracking history | |
| title | No | Alias of tracker_title | |
| reset_at | No | ISO datetime of the reset (default now) | |
| request_id | No | Client idempotency key (retries return original result). | |
| tracker_id | No | Event UUID of the tracker | |
| tracker_title | No | Title match when id unknown | |
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| error | No | |
| message | No | |
| reset_date | No | |
| reset_time | No | |
| tracker_id | No | |
| invalidates | No | |
| previous_days | No | |
| tracker_title | No | |
| life_state_rebuilt | No | |
| tracker_reset_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations claim readOnlyHint=true and destructiveHint=false, but the description explicitly says 'MUTATES' and 'sets current value to 0', which contradicts those annotations. The description is transparent about the mutation, but the contradiction with annotations is a serious issue. However, the description adds behavior context beyond annotations: rebuilds life_state, requires auth, share tokens cannot write, and cost ($0.10). I flag the contradiction and score low due to the conflict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with high information density. Key action and scope are front-loaded. Each piece adds value: purpose, selection criteria, optional parameters, side effects, auth requirements, and constraints. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a complex mutation: it explains side effects (rebuilds life_state), auth requirements, token restrictions, cost, and parameter usage. Despite zero required parameters, it provides all necessary context. The presence of an output schema covers return details, so the description doesn't need to explain 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 100%, so the schema documents all parameters. The description adds value by clarifying the usage of tracker_id vs tracker_title ('prefer tracker_id from get_trackers, or tracker_title fuzzy match'), and mentions reset_at and note semantics. It also hints at idempotency via request_id. This goes beyond schema basics, though parameters are fully described in schema, so a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it mutates a sobriety/streak tracker by setting value to 0 and restarting the clock. This distinguishes it from sibling tools like get_trackers (read-only) and update_event (generic mutation), though it doesn't explicitly name siblings. The verb 'MUTATES' is explicit and the resource (tracker) is identified. It is concise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it tells the agent to prefer tracker_id from get_trackers or use tracker_title as a fallback. It also clarifies required authentication (API key or OAuth with scope context) and warns that share tokens cannot write. This directly aids selection and invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_clarificationResolve ClarificationBInspect
Link a clarification surface to an existing person. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| person_name | No | ||
| idempotency_key | No | Alias for request_id. | |
| clarification_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| resolved | No | |
| person_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds cost ($0.10) and authentication context (API key required), which is useful beyond the annotations. However, it does not disclose what happens to the clarification surface after linking, whether the operation is reversible, or how failures are handled, so behavioral transparency is only partially addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with the core action front-loaded and the cost/auth caveat appended compactly. There is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is incomplete for a 5-parameter tool with low schema coverage. It misses guidance on parameter selection, clarification resolution semantics, and behavioral edge cases, leaving an agent under-informed for a reliable 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?
With only 40% schema description coverage, the description needed to compensate for the undocumented person_id, person_name, and clarification_id fields. It does not explain how those parameters relate or which identifier should be used to identify the existing person, leaving real ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Link') and a clear resource ('a clarification surface') with a target ('an existing person'), which makes the tool's job immediately identifiable. It also differentiates from sibling tools like dismiss_clarification and create_person by implying resolution through association rather than dismissal or creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided. The description does not mention alternatives or conditions under which resolving via linking is preferred over dismissing a clarification or creating a person first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_personResolve PersonARead-onlyInspect
Resolve a nickname or surface name to a CRM person via person_aliases → exact name → slug → unique substring. Returns avatar_url, photo_count, has_photos, and photos[{url,is_primary}] preview; use get_person_photos for full gallery. Notes omitted unless include_notes=true (redacted). Prefer this before money or relationship tools when the agent only has a nickname. ($0.05; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nickname or display name to resolve | |
| query | No | Alias for name | |
| include_notes | No | Include redacted notes (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | No | |
| person | No | |
| aliases | No | |
| resolved | No | |
| candidates | No | |
| matched_via | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation readOnlyHint=true already signals safe read behavior; the description adds meaningful behavioral context beyond that: notes are omitted unless include_notes=true, 'redacted' status, cost ($0.05), API key requirement, and a preview of returned fields. This is substantial added transparency with no contradiction against annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence adds value: purpose, return preview, alternative tool, notes behavior, usage preference, and cost/auth. It is front-loaded with the core purpose, though the multiple clauses in a single block make it slightly less scannable than a more structured presentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description does not need to explain return values. It covers invocation context, alternative routing, notes behavior, cost, and auth requirements. An agent has enough guidance to decide when and how to call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all three parameters at 100% coverage. The description enriches meaning by explaining the resolution reach (aliases, exact name, slug, unique substring) and when include_notes matters, but it does not fully clarify the relationship between 'name' and 'query' beyond 'query' being an alias for 'name'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Resolve') and a concrete resource ('CRM person'), and even spells out the resolution pipeline: person_aliases → exact name → slug → unique substring. It clearly differentiates this tool from siblings like get_person_photos, get_people, and create_person.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to prefer this tool before money or relationship tools when the agent only has a nickname. It also names get_person_photos as the alternative for a full gallery, giving the agent clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_placeResolve PlaceBRead-onlyInspect
Canonicalize a venue name via place aliases and fuzzy match. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| place | No | ||
| query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| place | No | Canonical place record. |
| query | Yes | |
| resolved | Yes | |
| candidates | No | |
| matched_via | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and non-destructive behavior. The description adds meaningful context beyond those annotations, including the API key requirement, a $0.10 cost, and the fuzzy-match mechanism. This helps an agent anticipate side conditions before invoking the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one compact sentence that front-loads the core purpose and includes the most critical operational caveats (cost and API key). There is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and safety annotations, the description leaves a major gap: with three optional parameters and no parameter descriptions, an agent cannot confidently determine which input to provide. The description is too sparse to support correct invocation in all plausible cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the roles of 'name', 'place', or 'query'. Although 'venue name' hints that 'name' is likely the core input, it is unclear how the three parameters relate and when each should be supplied.
Input schemas describe structure but not intent. Descriptions should explain 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: 'Canonicalize a venue name via place aliases and fuzzy match.' This clearly conveys the operation, though it does not explicitly contrast with sibling tools such as resolve_person, 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?
No guidance is provided about when to use this tool versus alternatives like get_places, resolve_person, or search. The only usage-related details are the API key requirement and cost, which are prerequisites rather than selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_people_duplicatesScore People DuplicatesARead-onlyInspect
Score likely CRM duplicate pairs before merge_people. ($0.05; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| person_id | No | Score against one person; omit for global scan. | |
| min_probability | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| candidates | 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 valuable behavioral context beyond annotations by mentioning the $0.05 cost and API key requirement, which are important for an agent deciding whether to invoke the tool. It does not contradict the read-only/destructive hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the core action and includes essential cost/auth details without padding. Every element earns its place, and the structure makes the tool's purpose immediately scannable. No redundant or vague wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for understanding the tool's role and the fact that it is a non-destructive, paid, API-key-gated scoring step. However, it leaves limit and min_probability unexplained, which is a real gap given the sparse schema coverage. The output schema and annotations soften the omission, but parameter behavior is still under-specified.
Complex tools with many parameters or behaviors need more documentation. 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 person_id has a description. The tool description does not compensate by explaining limit or min_probability, leaving their semantics undocumented. The phrase 'score likely CRM duplicate pairs' adds no specific parameter meaning, so the description falls short on parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain 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 ('score'), a clear resource ('likely CRM duplicate pairs'), and a sequencing relationship ('before merge_people'). This distinguishes it from merge_people and makes the tool's role immediately understandable. The title reinforces the same purpose without adding ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before merge_people' provides clear workflow context, indicating this tool is a pre-merge step. It does not explicitly name alternatives or say when not to use it, but the intended placement in the duplicate-handling flow is clear. This meets the 'clear context, no exclusions' level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSemantic Life SearchARead-onlyInspect
Search the authenticated user life graph. Deterministic routing first: food + relative dates (e.g. "what did I eat yesterday?"); timeline/current-context; money+person; who-is → resolve_person. Otherwise semantic/keyword search. Event hits include event_date and food_id when mirrored from Food Diary. Browser-history titles are excluded. Credential/secret spans are redacted. Requires OAuth or a supported scoped credential. ($0.15; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | |
| intent | No | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and non-destructive, and the description goes further by disclosing deterministic routing, event-hit enrichment with event_date and food_id, exclusion of browser-history titles, redaction of credential/secret spans, auth requirements, cost, and API-key necessity. This is rich behavioral 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?
Every clause earns its place: scope, routing, output hints, exclusions, redaction, auth, and cost are packed into five dense sentences. The core action is front-loaded before the conditional routing details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a broad search tool with an output schema, the description provides all necessary operational context: what it searches, how queries are routed, what fields event hits include, what is excluded/redacted, and what credentials are required. No important calling decision is left unresolved.
Complex tools with many parameters or behaviors need more documentation. 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 context reports zero parameters and 100% schema description coverage, so the baseline is 4; nothing is left unclear. The description's example query supports the query semantics, and the schema itself already documents q, query, and limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search the authenticated user life graph.' It then details deterministic routing categories and a fallback, which clearly distinguishes this broad life-graph search from siblings like search_gmail, search_photos, and search_transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 concrete routing guidance: food plus relative dates, timeline/current-context, money+person, and who-is, explicitly delegating who-is to resolve_person. It does not, however, explicitly state when to prefer targeted sibling search tools over this generic search, so it lacks formal when-not-to-use exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_gmailSearch Gmail (read-only)ARead-onlyInspect
Search the authenticated user's already-connected Gmail inbox (read-only). Reuses the Dayze Integrations hub Gmail connection (service_connections provider=gmail, scope gmail.readonly) — no new OAuth vendor. Prefer Gmail operators: from:, subject:, is:unread, newer_than:7d, has:attachment. Returns id, subject, from, date, snippet only (no body). Follow up with read_gmail_message for the full body. Cannot send, archive, or delete. Never invent email contents. If Gmail is not connected, connect at /integrations. Requires API key or OAuth with scope context. Share tokens cannot call this tool. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Alias for query | |
| query | Yes | Gmail search query, e.g. "is:unread newer_than:7d", "from:airline subject:itinerary", "receipt newer_than:30d" | |
| max_results | No | Max messages to return (default 10, max 20) |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| messages | Yes | |
| result_size_estimate | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations already declaring readOnlyHint=true and destructiveHint=false, the description adds substantial behavioral context: the gmail.readonly scope, the limited return fields (id, subject, from, date, snippet only), the no-body guarantee, the prohibition on inventing email contents, and the authentication requirement. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and read-only status, and every additional sentence adds a distinct, useful constraint or follow-up. The length is justified by the authentication, security, and capability boundaries it communicates.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema and full parameter documentation, and the description covers connection prerequisites, result fields, capability limits, follow-up tool, and who cannot call it. For a search tool with these complexities, nothing essential 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 schema already documents all parameters with examples. The description adds extra value by highlighting which Gmail operators to prefer (from:, subject:, is:unread, newer_than:7d, has:attachment) and reinforcing the max_results cap, going slightly beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and resource ('the authenticated user's already-connected Gmail inbox'), making the tool's function immediately clear. It also differentiates from the sibling read_gmail_message by noting that this tool returns only metadata and that the sibling is needed for the full body.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides Gmail search operator guidance, states what the tool cannot do (send, archive, delete), and routes follow-up to read_gmail_message for full bodies. It also covers prerequisites such as requiring a connected Gmail account, API key or OAuth, and excludes share tokens.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_inventorySearch InventoryARead-onlyInspect
Search owned inventory by name/brand/model/notes. Returns photo_count, has_photos, cover_url; when empty, photo_hint explains upload_asset linkage. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| items | No | |
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, which is consistent with the description. The description adds valuable context beyond annotations: it mentions the cost ($0.10) and API key requirement, which are critical for the agent to know before invocation. However, it doesn't detail what happens if the query is empty or handle errors, but the openWorldHint=false indicates limited scope, making this adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose incl. fields, followed by return value summary and then the cost/auth note. Every sentence serves a purpose, no fluff. Minor deduction for lack of explicit structure to break out cost and auth, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema presentchers, the description doesn't need to explain returns, but it does touch on key return fields. However, the lack of parameter elaboration and alternative routing makes it less complete for a search tool that has nuances like 'owned inventory' vs other search scopes. Adequate for a simple search but missing edge cases like empty query 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?
The schema has zero description coverage, and the description does not elaborate on the 'query' parameter beyond what the name implies. With only one parameter, this is a significant gap—the agent gets no guidance on format, examples, or what constitutes a valid query. The description's mention of searching by fields gives some implicit meaning, but it's insufficient for a tool that relies heavily on the query parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: searching owned inventory by specific fields (name, brand, model, notes). This not only states the verb and resource but also distinguishes it from siblings like 'get_inventory' which likely returns all inventory, and 'search' which is broader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching within owned inventory, but does not explicitly state when to use this over alternatives like 'get_inventory' or broader 'search'. The context of 'owned inventory' and the fields mentioned give clear context, but no explicit when-not or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_photosSearch PhotosBRead-onlyInspect
Search person photos and entity assets by query/metadata. Returns inline MCP image attachments. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | ||
| query | No | ||
| place_id | No | ||
| person_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| query | No | |
| photos | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds genuinely useful behavioral context: it returns inline MCP image attachments, costs $0.10 per call, and requires an API key. This goes beyond what annotations provide. It does not cover limits or pagination, but the added cost/auth/return-format info is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise, information-dense segments: the main behavior and a parenthetical with cost/auth. Every word earns its place, and the core purpose 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?
Despite having an output schema, the description leaves too much unresolved for a 5-parameter, all-optional search tool: parameter meanings are absent, usage guidance is absent, and no pagination or filtering behavior is described. The cost and return-format notes help, but they do not make the definition complete enough for an agent to confidently construct a correct search call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only says searchable 'by query/metadata.' It does not explain what 'to', 'from', 'place_id', or 'person_ids' mean, how they combine, or which are most useful. With zero parameter documentation in the schema, the description should carry much more semantic weight.
Input schemas describe structure but not intent. Descriptions should explain 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: 'Search person photos and entity assets by query/metadata.' This is clear and distinguishes it from generic search tools like 'search' or 'search_gmail'. However, it does not explicitly differentiate it from photo-specific siblings like 'get_person_photos', 'get_photos_for_event', or 'get_photos_for_place', so it stops short of full 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 description gives no guidance on when to use this tool versus the many photo-related alternatives. It does not mention e.g. 'use get_person_photos when you already have a person_id' or 'use get_photos_for_place for a specific place.' The only implied usage is via 'query/metadata,' which is not enough to route the agent correctly among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_transactionsSearch TransactionsBRead-onlyInspect
Keyword search over transactions. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| query | No | |
| transactions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint and destructiveHint, and the description adds useful operational context: a per-call cost of $0.10 and the need for an API key. These are behavioral details beyond the structured annotations and help the agent anticipate side effects and prerequisites. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with one clause for purpose and a parenthetical for operational constraints. Both sentences earn their place, and the information is front-loaded with minimal 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?
The tool is simple with one parameter and has an output schema, so a short description can be adequate. However, it lacks usage guidance relative to siblings and leaves the semantics of the query parameter under-specified, which creates some gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the query parameter has no description beyond its name and type. The phrase 'keyword search' implies that query is the search term, but the description does not clarify requiredness, matching behavior, formatting, or the effect of additionalProperties. It only partially compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Keyword search over transactions.' It clearly indicates the operation and target, but it does not explicitly contrast with related siblings like get_transactions or get_person_transactions, so it falls 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?
No guidance is given about when to use this tool versus alternatives. The description mentions cost and API key requirements, but not the conditions under which an agent should pick search_transactions over get_transactions or other search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unlink_peopleUnlink PeopleBDestructiveInspect
Remove a person↔person graph edge. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| connection_id | No | ||
| idempotency_key | No | Alias for request_id. | |
| other_person_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| unlinked | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructive/write behavior, and the description adds useful context: the edge is removed rather than the people themselves, an API key is required, and the operation costs $0.10. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with no filler; the action is front-loaded and the pricing/auth detail is compactly appended in parentheses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, paid tool with zero required parameters, the description leaves critical ambiguity about how to identify the graph edge and which parameters are needed. The output schema helps, but it cannot compensate for the missing usage and parameter-selection 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 description coverage is only 40%, and person_id, connection_id, and other_person_id are undocumented. The description's 'person↔person' phrasing only weakly implies the two person IDs and does not clarify how connection_id relates to them or whether both IDs are required.
Input schemas describe structure but not intent. Descriptions should explain 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 names the verb and resource: 'Remove a person↔person graph edge.' It distinguishes the tool's core action from nearby tools like link_people without explicitly naming 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?
There is no guidance about when to use this tool versus link_people, merge_people, or link_entities. The agent must infer the inverse relationship from sibling tool names, which is not reliable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_assetUpdate AssetAInspect
Patch role, metadata, description, or parent_asset_id (e.g. mark as processed). ($0.08; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | original | cover | thumbnail | … | |
| asset_id | Yes | ||
| filename | No | ||
| metadata | No | ||
| asset_type | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| description | No | ||
| idempotency_key | No | Alias for request_id. | |
| parent_asset_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| asset | No | |
| message | No | |
| updated | No | |
| asset_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations identify only non-readOnly (mutation allowed) and non-destructive; the description adds that this is a partial 'Patch' (not full replace/delete), that the call costs $0.08, and that an API key is required. It doesn't mention idempotency or merge/replace behavior, but the schema already documents request_id/idempotency_key, so the added auth/cost/partial-update context earns credit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence front-loads the action and target fields, then appends cost and authentication requirements. 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?
Given 9 parameters, a nested metadata object, and low schema coverage, the description leaves too much implicit: only asset_id is required, but several optional fields have no guidance and no usage condition is given. It is adequate for a simple role update but incomplete for correct general 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 33%, so the description needed to compensate, but it merely lists four fields (role, metadata, description, parent_asset_id) without explaining semantics for metadata, parent_asset_id, filename, asset_type, or asset_id. It does add one useful clue ('mark as processed' for role), but that is not enough across 9 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Patch') with a clear resource (asset) and enumerates the updatable fields (role, metadata, description, parent_asset_id). This makes it distinct from the many sibling update_* tools, whose resources are named in their titles; the asset-specific scope is obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'e.g. mark as processed' example implies a common use case, but the description never states when to choose update_asset over siblings like upload_asset, attach_asset, or archive_asset, nor when not to use it. Usage must be inferred from the field list 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_current_locationUpdate Current LocationAInspect
MUTATES where the user is now: profiles.location + polaris current_city/country (same as in-app Dayze chat). Pass location ("The Madeira, Singapore") and/or city+country; optional place/venue + lat/lon records a fresh location_visits check-in so get_location_context returns is_current. set_home defaults true; check_in defaults true when place or coordinates are set. Does not invent GPS when omitted. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| place | No | Venue / residence name (e.g. The Madeira) | |
| venue | No | Alias for place | |
| address | No | ||
| country | No | ||
| check_in | No | Write a location_visits row when place or coordinates are set (default true in that case) | |
| latitude | No | ||
| location | No | Freeform “City, Country” or “Venue, City, Country” | |
| set_home | No | Also write profiles.location / home_location (default true) | |
| longitude | No | ||
| request_id | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| place | No | |
| context | No | Fresh get_location_context after write. |
| message | No | |
| updated | No | |
| check_in | No | |
| location | No | |
| set_home | No | |
| visit_id | No | |
| current_city | No | |
| current_country | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare a non-read-only write; the description goes well beyond by disclosing the exact persistent effects (profiles.location + polaris fields), the location_visits row written, that get_location_context will then return is_current, the defaults for set_home and check_in, the fact that GPS is not invented, plus cost ($0.10) and API-key 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-loaded with the mutation intent and dense but relevant clauses; the conditional defaults and the 'does not invent GPS' caveat are placed near the params they govern. Slightly long, but nearly every clause 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?
An output schema exists so return values need not be explained, and the description covers mutation semantics, defaults, and preconditions. Completeness is strong for a 12-param tool, though idempotency/request_id parameters are left to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 42% schema coverage, the description compensates meaningfully: it gives a format example for location ('The Madeira, Singapore'), clarifies city+country usage, and explains place/venue and the lat/lon trigger for check-in along with set_home/check_in defaults. Minor params (address, request_id, idempotency_key) 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 (MUTATES) and resource (where the user is now), naming the exact fields touched (profiles.location, polaris current_city/country). It distinguishes itself from the many place/location siblings by tying the write to location_visits and get_location_context's is_current, so an agent can differentiate 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 clear invocation context: pass location and/or city+country, plus optional place/venue+lat/lon to record a check-in. It explains default behavior (set_home, check_in) so the agent knows what happens when omitted. It stops short of explicitly naming alternative tools or when-not-to-use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_eventUpdate Event (calendar patch)AInspect
MUTATES one existing calendar event the authenticated user owns. Required: event_id (UUID). Optional patch (same fields as log_event): title, date / event_date, time / event_time, end_date, end_time, location, description, category, external_url, people / with / person_ids. Unknown or other-user event_id returns an error and does not create a row. For food-diary meals, prefer update_food (it syncs the mirrored event). Rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Alias for event_date. | |
| time | No | Alias for event_time. | |
| with | No | Alias for people. | |
| title | No | Updated title (replaces). Cannot be empty. | |
| people | No | People names or person UUIDs to add (event_people role=with). Does not remove existing tags. | |
| category | No | e.g. funeral, family, work, travel. Stored as events.category and event_type. | |
| end_date | No | Optional end date YYYY-MM-DD (all-day multi-day). | |
| end_time | No | Optional end time (same formats as event_time). | |
| event_id | Yes | UUID of a calendar event the authenticated user owns | |
| location | No | Empty or null clears | |
| event_date | No | Start date YYYY-MM-DD. Alias: date. | |
| event_time | No | Start time: 8pm, 20:00, or 20:00:00. Empty or null clears. Alias: time. | |
| person_ids | No | Owned person UUIDs to tag (user-scoped). | |
| request_id | No | Client idempotency key (retries return original result). | |
| description | No | Empty or null clears | |
| person_name | No | ||
| external_url | No | ||
| people_names | No | ||
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| event | Yes | A Dayze calendar event record. |
| changed | Yes | Changed fields with before and after values. |
| people_tagged | Yes | |
| unresolved_people | Yes | |
| life_state_rebuilt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only mark readOnlyHint=false, openWorldHint=false, destructiveHint=false. The description goes well beyond this by disclosing side effects ('Rebuilds life_state'), failure behavior ('does not create a row'), auth constraints ('Requires API key or OAuth with scope context. Share tokens cannot write'), and cost ('$0.10; API key required'). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Information-dense and front-loaded with the core purpose, then requirements, then routing, side effects, and auth/cost. Every sentence carries useful information, though the final '($0.10; API key required)' partially repeats the earlier 'Requires API key', a minor 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 19-parameter mutation tool with side effects, the description covers purpose, required parameter, optional patch fields, error handling, alternative routing, side effects, auth requirements, and cost. Since an output schema exists, return values need not be described. Nothing essential 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 84%, so the baseline is 3. The description adds some value by grouping alias sets (date/event_date, time/event_time, people/with/person_ids) and referencing 'same fields as log_event', but most parameter meaning is already present in the schema. It does not clarify formats 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?
States a specific verb ('MUTATES'), a precise resource ('one existing calendar event the authenticated user owns'), and differentiates from siblings by framing it as a patch to an existing event rather than a creation. The inclusion of the update_food alternative further disambiguates it from a closely related 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?
Explicitly names the alternative tool and the condition that selects it ('For food-diary meals, prefer update_food (it syncs the mirrored event)'), and gives a clear when-not via 'Unknown or other-user event_id returns an error'. It also warns that share tokens cannot write, which prevents misuse with insufficient credentials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_expenseUpdate ExpenseAInspect
PATCH an expense row. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD expense_date | |
| notes | No | ||
| amount | No | ||
| source | No | Alias of payment_method | |
| category | No | ||
| currency | No | ||
| merchant | No | ||
| expense_id | Yes | ||
| request_id | No | Client idempotency key (retries return original result). | |
| description | No | ||
| payment_method | No | e.g. venmo, cash, card | |
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| changed | No | |
| expense | No | Expense/income transaction row. |
| message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already indicating that this is a write operation (readOnlyHint=false) and not destructive, the description adds value beyond them by specifying the HTTP method 'PATCH', which implies partial update semantics. It also discloses authentication needs (API key) and cost ($0.10), which are not present in the annotations. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero filler. 'PATCH an expense row' immediately conveys the core action, and the parenthetical compactly adds essential operational details about cost and authorization. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimally viable: it names the operation, implies mutation of an existing expense, and includes key operational constraints. The input schema supplies property names and types, and an output schema exists so return values need not be described. However, for a 12-parameter write tool, the description lacks guidance on field semantics, partial-update behavior, and when to prefer log_expense, leaving 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?
The description provides no parameter-level meaning or guidance. Schema coverage is only 42%, and several parameters such as expense_id, amount, category, currency, merchant, and notes lack descriptions. The schema does describe some ambiguous fields like date and request_id, but the description itself does not 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 concrete operation: 'PATCH an expense row.' This is a specific verb plus resource, clearly distinguishing it from read tools like get_expenses and creation tools like log_expense. The HTTP verb 'PATCH' also communicates that this updates an existing expense rather than creating a new one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for updating an existing expense row via 'PATCH', and it provides operational prerequisites: cost and API key requirement. However, it does not explicitly state when to use this tool versus log_expense or other update tools, nor mention that expense_id must identify an existing row. Usage context is implied rather than made explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_foodUpdate Food (diary patch)AInspect
MUTATES one existing Food Diary row the authenticated user owns. Required: food_id (UUID). Optional patch (same fields as log_food): what, kind, place, merchant, notes, append_notes (concat), consumed_at / meal_period (profile TZ civil wall-clock), amount, currency, paid_by / payment_method, with / people_names / person_ids. Example: add hot tea onto an existing Salmon Bento → update_food({ food_id, what: "Salmon Bento + hot tea" }). Unknown or other-user food_id returns an error and does not create a row. Syncs the mirrored calendar event and rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| what | No | Full updated dish/drink text (replaces, does not append). Example: Salmon Bento + hot tea | |
| with | No | Companion names, aliases, or ids to add (does not remove existing tags) | |
| notes | No | Replaces notes. Empty or null clears | |
| place | No | Venue or location. Empty or null clears | |
| amount | No | Price if mentioned | |
| food_id | Yes | UUID of a food diary row the authenticated user owns | |
| paid_by | No | Who paid (name or alias) | |
| currency | No | ISO currency, e.g. SGD | |
| merchant | No | Restaurant, stall, or shop. Empty or null clears | |
| person_ids | No | Owned person UUIDs to tag (user-scoped) | |
| request_id | No | Client idempotency key (retries return original result). | |
| consumed_at | No | ISO 8601 datetime; wins over meal_period | |
| meal_period | No | Spoken period when consumed_at is omitted, e.g. "late lunch" | |
| append_notes | No | Append text to existing notes (newline-separated) | |
| people_names | No | Alias for with | |
| payment_method | No | Alias of paid_by for expense-style agents | |
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| changed | Yes | Changed fields with before and after values. |
| food_id | Yes | |
| event_id | Yes | |
| food_log | Yes | Updated Food Diary row. |
| people_tagged | Yes | |
| unresolved_people | Yes | |
| life_state_rebuilt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint:false and destructiveHint:false, but the description adds significant behavioral detail beyond them: error handling for unknown/other-user food_id ('returns an error and does not create a row'), side effects ('Syncs the mirrored calendar event and rebuilds life_state'), authentication requirements ('Requires API key or OAuth with scope context. Share tokens cannot write'), and pricing/cost ('$0.10; API key required'). These are not available in annotations and are crucial for correct invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient, front-loaded with 'MUTATES' and the required parameter. Every sentence contributes useful information (error behavior, side effects, auth, cost). While it is long, it doesn't waste words; the length is justified by the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage (94%), an existing output schema, and a complex tool (18 parameters), the description covers the key operational aspects: the mutation intent, required parameter, error/scoping behavior, side effects, auth and cost. It doesn't list every optional field, but that is already handled by the schema; the description adds the critical contextual details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 94%, so the schema already documents most parameters. The description still adds value by clarifying semantic nuances: 'append_notes (concat)' indicates concatenation behavior, 'consumed_at / meal_period (profile TZ civil wall-clock)' specifies timezone handling, and the example ('add hot tea onto an existing Salmon Bento') illustrates how to use the patch. This goes beyond the raw 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 the exact verb ('MUTATES'), the resource ('one existing Food Diary row'), and the ownership condition ('the authenticated user owns'). It differentiates from siblings by referencing 'same fields as log_food' and explicitly stating it 'does not create a row', which separates it from log_food (creation) and delete_food (deletion).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage for updating existing entries (vs. creating with log_food or deleting with delete_food) through the phrase 'same fields as log_food' and the example of 'update_food' on an existing row. It also clarifies that unknown or other-user food_id returns an error and does not create a row, which indirectly tells the agent when not to use it. However, it does not explicitly name alternative tools for creation or deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_inventory_itemUpdate Inventory ItemBInspect
PATCH semantics — unspecified fields untouched. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | What the user naturally calls the item. | |
| tags | No | Replace tags array (sanitized against category mismatches). | |
| brand | No | ||
| model | No | ||
| notes | No | ||
| status | No | ||
| subtype | No | Specific subtype (sweatshirt, jacket, guitar). Alias: item_type. | |
| category | No | Broad type: clothing, instruments, electronics, … | |
| location | No | ||
| condition | No | ||
| item_type | No | Alias for subtype. | |
| request_id | No | Client idempotency key (retries return original result). | |
| inventory_id | Yes | ||
| serial_number | No | ||
| purchase_price | No | ||
| estimated_value | No | ||
| idempotency_key | No | Alias for request_id. | |
| reference_number | No | ||
| subtype_confidence | No | 0–1 confidence when subtype is uncertain (agent_inferred). |
Output Schema
| Name | Required | Description |
|---|---|---|
| item | No | Inventory item record. |
| changed | No | |
| message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate the operation is not read-only and not destructive, leaving the description to carry the burden. The description adds meaningful behavior: PATCH semantics, cost per call, and the API-key requirement. It omits edge-case behaviors like not-found responses, but the main mutation risk is clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence plus a parenthetical cost/auth note. Every word delivers value, and the key PATCH semantics are stated first. For what it attempts, it is optimally 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 19-parameter mutation tool with low schema coverage, the description is insufficient. It lacks when-to-use guidance, required-parameter emphasis, alias handling, idempotency behavior, and error cases. The output-schema presence covers return values, but the input-side and usage context remain incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low at 42%, so the description needed to compensate for the many undocumented parameters. It does not: no parameter is mentioned, no aliases such as subtype/item_type or request_id/idempotency_key are explained, and the required inventory_id is not called out. The schema itself provides whatever little parameter meaning exists.
Input schemas describe structure but not intent. Descriptions should explain 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 conveys PATCH semantics, which implies partial update of an inventory item, and the tool name supplies the resource. It clearly differentiates from add_inventory_item or archive_inventory_item by its update nature, though it does not explicitly name the resource or contrast 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?
The phrase 'unspecified fields untouched' provides an important usage contract: this tool is for partial updates rather than a full overwrite. However, there is no explicit guidance about when to choose it over add_inventory_item or other update tools, and no prerequisites such as requiring an existing item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_personUpdate Person (CRM write)AInspect
MUTATES the authenticated user CRM. Patch one existing person they own (person_id UUID required). Optional fields: is_favorite, tier (vip|normal|low), relationship, notes (replaces stored notes — read first if you need to append), birthday (YYYY|YYYY-MM|YYYY-MM-DD or null to clear). Rejects unknown fields. Does not create or delete people. Rebuilds life_state so the next get_context_pack inner_circle is fresh. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Relationship priority. VIP stays in inner_circle even when not favorited | |
| notes | No | Replaces people.notes (does not append). Empty or null clears | |
| birthday | No | YYYY, YYYY-MM, or YYYY-MM-DD. Null/empty clears | |
| person_id | Yes | UUID of a person the authenticated user owns | |
| request_id | No | Client idempotency key (retries return original result). | |
| is_favorite | No | Favorite flag. Favorites (and VIP) appear in get_context_pack inner_circle | |
| relationship | No | Relationship label (friend, sister, …). Empty or null clears | |
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| person | Yes | A Dayze person or contact record. |
| changed | Yes | Changed fields with before and after values. |
| life_state_rebuilt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description reveals important behaviors: notes replace rather than append, birthday accepts a constrained format or null, unknown fields are rejected, life_state is rebuilt affecting get_context_pack, and Share tokens cannot write. It also discloses cost and API key requirements. Nothing contradicts 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?
Every sentence earns its place: mutation scope, required field, optional fields, side effects, auth constraints, and pricing. The structure front-loads the core purpose and then layers constraints and behavior without unnecessary 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?
The description, combined with a fully described schema and output schema, covers ownership requirements, mutation semantics, side effects on life_state, auth prerequisites, and rejection behavior. There is no obvious gap an agent would need to resolve before calling 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%, but the description adds meaningful semantics: notes replacement warning, birthday format variants, tier's inner_circle behavior, and ownership constraint on person_id. It does not individually cover request_id/idempotency_key, but the schema already documents those fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with "MUTATES the authenticated user CRM. Patch one existing person they own," giving a specific verb, resource, and ownership scope. It also explicitly says "Does not create or delete people," distinguishing it from create_person and deletion tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states this is for patching an existing owned person and that it does not create or delete people, giving practical when-not guidance. It also specifies auth requirements and notes the replacement behavior, but it does not explicitly name sibling alternatives like create_person for the creation case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_placeUpdate Place CardBInspect
Patch a saved place card by place_id / business_contact_id. Unspecified fields stay unchanged (hours, affordability, address, notes, …). ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| area | No | ||
| city | No | ||
| name | No | ||
| tags | No | ||
| hours | No | ||
| notes | No | ||
| phone | No | ||
| address | No | ||
| country | No | ||
| website | No | ||
| category | No | ||
| latitude | No | ||
| place_id | No | ||
| longitude | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| description | No | ||
| price_level | No | ||
| hours_source | No | ||
| affordability | No | ||
| opening_hours | No | ||
| phone_numbers | No | ||
| idempotency_key | No | Alias for request_id. | |
| business_contact_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| place | No | Saved place card. |
| message | No | |
| updated | No | |
| place_id | No | |
| business_contact_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (not read-only, not destructive, closed-world), and the description adds genuinely non-redundant context: partial-update semantics ('unspecified fields stay unchanged'), a per-call cost ($0.10), and an API-key requirement. It stops short of describing failure behavior for an unknown place_id or what the patch returns, so it is strong but not complete.
Agents need to know what a tool does to the 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 plus a parenthetical, with the core action and identifier keys front-loaded and no filler. Every clause carries information the schema or annotations do not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the annotations plus cost/auth note give a reasonable behavioral picture. For a 24-parameter mutation tool with 0 required params, however, the definition is thin: it never explains that no parameters are mandatory, how to distinguish the idempotency_key/request_id aliases, or what errors to expect.
Complex tools with many parameters or behaviors need more documentation. 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 8% across 24 parameters, so the description carries most of the burden and largely fails to. It names the two identifier params and gives a few example updatable fields (hours, affordability, address, notes), but leaves roughly twenty other parameters — price_level, opening_hours, hours_source, tags, latitude/longitude, idempotency_key alias — undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Patch a saved place card' — and names the two identifier keys (place_id / business_contact_id), so it is distinguishable from create_place and get_place. It does not, however, differentiate itself from the adjacent sibling enrich_place_from_google, which is also a place-card mutation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 and no named alternative. The patch semantics hint at 'use this to modify an existing card,' but the agent gets no help deciding between this, create_place, enrich_place_from_google, or resolve_place.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sleepUpdate SleepAInspect
Sleep: patch an existing sleep record by sleep_id. ($0.10; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| quality | No | ||
| ended_at | No | ||
| sleep_id | Yes | ||
| timezone | No | ||
| request_id | No | Client idempotency key (retries return original result). | |
| sleep_type | No | ||
| started_at | No | ||
| idempotency_key | No | Alias for request_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| sleep | No | |
| message | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it's a write operation (readOnlyHint false). The description adds cost ($0.10) and API key requirement, which are not in annotations. It does not disclose behavior like error handling or side effects of missing fields, but the bar is lower with annotations present.
Agents need to know what a tool does to the 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 very short and front-loaded with the core action. It is not verbose, but it sacrifices necessary detail. The structure is efficient but lacks completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters and low schema coverage, the description is too brief. It does not explain parameter semantics, usage conditions, or potential pitfalls. The output schema exists, but the description is insufficient for an agent to call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 22%, so the description should compensate. It only mentions sleep_id but does not explain its format or the meaning of other parameters like quality, timezone, or sleep_type. The description adds minimal value 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 clearly states the action (patch), the resource (sleep record), and the identifier (sleep_id). It distinguishes from siblings like log_sleep (create) and get_sleep (read) by specifying 'existing sleep record'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage for existing records, which separates it from creation tools. However, it does not explicitly name alternatives or state when not to use it. The context is clear but lacks explicit exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_assetUpload AssetAInspect
Upload image bytes to Dayze storage (WebP re-encode strips EXIF/AI metadata). Returns asset_id. For inventory item photos: pass entity_type=inventory, entity_id=inventory_id, role=photo, image_base64 from chat images. Or upload then attach_asset. ($0.15; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| role | No | original | cover | thumbnail | … | |
| filename | No | ||
| metadata | No | ||
| entity_id | No | ||
| mime_type | No | ||
| asset_type | No | photo | receipt | certificate | document | thumbnail | … | |
| request_id | No | Client idempotency key (retries return original result). | |
| description | No | ||
| entity_type | No | inventory_item maps to inventory | |
| image_base64 | No | ||
| idempotency_key | No | Alias for request_id. | |
| parent_asset_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| asset | No | |
| message | No | |
| asset_id | No | |
| metadata_stripped | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a nontrivial side effect: 'WebP re-encode strips EXIF/AI metadata' – something not present in annotations. It also mentions the cost ($0.15) and API key requirement, which are operationally important. Annotations only indicate readOnlyHint=false and destructiveHint=false, so the description adds significant behavioral context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loads the core function, and efficiently includes usage recipe, alternatives, and cost/auth. It's appropriately sized for the tool's complexity, though it could be slightly more structured with the use-case as a separate sentence for even better scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 13 parameters, low schema coverage, and an output schema, the description provides a concrete, actionable recipe for the most common scenario (inventory photos), mentions the return value (asset_id), and notes cost/auth. However, it doesn't cover other potential uses (e.g., uploading documents or receipts directly), nor does it explain the purpose of several less-common parameters. The tool's complexity warrants a more thorough description to be 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 description coverage is only 38% with 13 parameters, so the description must compensate. While it highlights the key parameters for the inventory workflow (entity_type, entity_id, role, image_base64), it omits explanations for url, filename, metadata, mime_type, asset_type, parent_asset_id, etc. The single use-case recipe doesn't cover the full parameter space, leaving many 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?
The description clearly states 'Upload image bytes to Dayze storage' – a specific verb and resource. It also distinguishes the tool by noting the WebP re-encode behavior and returning asset_id, separating it from siblings like attach_asset and upload_photo. The concrete inventory use-case further clarifies the intended scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It offers explicit guidance for the primary use case (inventory photos with entity_type=inventory, entity_id, role=photo, image_base64) and suggests an alternative workflow ('Or upload then attach_asset'). However, it doesn't explicitly state when not to use this tool (e.g., if the caller has a URL instead of bytes, or if an upload_photo is more appropriate), leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_photoUpload PhotoAInspect
Upload a photo to a Life Graph entity. Accepts image_base64 or url (one required). Re-encodes via WebP (strips EXIF/AI metadata). Person uploads also write the CRM gallery (person_photos) and avatar when set_as_avatar=true. ($0.15; API key required)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| asset | No | |
| message | No | |
| asset_id | No | |
| photo_id | No | |
| optimized | No | |
| avatar_updated | No | |
| metadata_stripped | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses important behaior beyond what annotations provide: re-encoding via WebP, stripping EXIF/AI metadata, person uploads writing to the CRM gallery and avatar, plus pricing and API-key requirement. This gives the agent clear expectations about side effects before invoking the 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 dense sentences cover the action, input constraint, transformation behavior, side effects, cost, and auth requirement without wasted words. The primary purpose is front-loaded and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the annotations already indicate this is a read-write operation, the description supplies the missing behavioral, side-effect, cost, and auth context. The agent has everything it needs to decide whether and how to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents most parameters, and the description reinforces the key constraint that exactly one of image_base64 or url is required. It also adds meaning for set_as_avatar by explaining the avatar side effect, which is not present in the schema property 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: upload a photo to a Life Graph entity. The description clearly establishes this as a photo-specific upload distinct from generic sibling tools like upload_asset, and adds meaningful scope by noting person-gallery behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Cleary states the main use case and the two acceptable input modes (image_base64 or url, one required). It also explains the person-upload side effect, giving an agent relevant context, though it does not explicitly name alternative sibling tools or state 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Added
commit_life_update - Added
get_current_states - Added
propose_life_update
1 tool update
- Added
update_current_location
5 tool updates
- Added
create_place - Added
enrich_place_from_google - Added
get_place - Changed
get_places6 fields changed- added
Input schema / properties / affordabilityAdded value: +{ + "description": "$ | $$ | $$$", + "type": "string" +} - added
Input schema / properties / areaAdded value: +{ + "type": "string" +} - added
Input schema / properties / nearAdded value: +{ + "description": "Filter saved cards by area/tag/notes (e.g. Madeira).", + "type": "string" +} - added
Input schema / properties / tagAdded value: +{ + "type": "string" +} - added
Output schema / properties / saved_countAdded value: +{ + "type": "number" +} - added
Output schema / properties / saved_placesAdded value: +{ + "items": { + "additionalProperties": true, + "description": "Saved place card (business_contacts).", + "type": "object" + }, + "type": "array" +}
- Added
update_place
1 tool update
- Changed
log_event1 field changed- changed
Input schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "category": { - "description": "e.g. funeral, family, work, travel. Stored as events.category and event_type.", - "type": "string" - }, - "date": { - "description": "Alias for event_date.", - "type": "string" - }, - "description": { - "type": "string" - }, - "end_date": { - "description": "Optional end date YYYY-MM-DD (all-day multi-day).", - "type": "string" - }, - "end_time": { - "description": "Optional end time (same formats as event_time).", - "type": "string" - }, - "event_date": { - "description": "Start date YYYY-MM-DD. Alias: date.", - "type": "string" - }, - "event_time": { - "description": "Optional start time: 8pm, 20:00, or 20:00:00. Alias: time.", - "type": "string" - }, - "external_url": { - "type": "string" - }, - "idempotency_key": { - "description": "Optional client key (max 128 chars). Retries with the same key return the original result instead of creating a duplicate. If omitted, Dayze fingerprints args for ~15 minutes.", - "type": "string" - }, - "location": { - "type": "string" - }, - "people": { - "description": "People names or person UUIDs to tag (event_people role=with).", - "items": { - "type": "string" - }, - "type": "array" - }, - "people_names": { - "items": { - "type": "string" - }, - "type": "array" - }, - "person_ids": { - "description": "Owned person UUIDs to tag (user-scoped).", - "items": { - "type": "string" - }, - "type": "array" - }, - "person_name": { - "type": "string" - }, - "request_id": { - "description": "Alias for idempotency_key (preferred by some clients).", - "type": "string" - }, - "time": { - "description": "Alias for event_time.", - "type": "string" - }, - "title": { - "description": "Event title (required).", - "type": "string" - }, - "with": { - "description": "Alias for people.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "title", - "event_date" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "category": { - "description": "e.g. funeral, family, work, travel. Stored as events.category and event_type.", - "type": "string" - }, - "date": { - "description": "Alias for event_date.", - "type": "string" - }, - "description": { - "type": "string" - }, - "end_date": { - "description": "Optional end date YYYY-MM-DD (all-day multi-day).", - "type": "string" - }, - "end_time": { - "description": "Optional end time (same formats as event_time).", - "type": "string" - }, - "event_date": { - "description": "Start date YYYY-MM-DD. Alias: date.", - "type": "string" - }, - "event_time": { - "description": "Optional start time: 8pm, 20:00, or 20:00:00. Alias: time.", - "type": "string" - }, - "external_url": { - "type": "string" - }, - "idempotency_key": { - "description": "Optional client key (max 128 chars). Retries with the same key return the original result instead of creating a duplicate. If omitted, Dayze fingerprints args for ~15 minutes.", - "type": "string" - }, - "location": { - "type": "string" - }, - "people": { - "description": "People names or person UUIDs to tag (event_people role=with).", - "items": { - "type": "string" - }, - "type": "array" - }, - "people_names": { - "items": { - "type": "string" - }, - "type": "array" - }, - "person_ids": { - "description": "Owned person UUIDs to tag (user-scoped).", - "items": { - "type": "string" - }, - "type": "array" - }, - "person_name": { - "type": "string" - }, - "request_id": { - "description": "Alias for idempotency_key (preferred by some clients).", - "type": "string" - }, - "time": { - "description": "Alias for event_time.", - "type": "string" - }, - "title": { - "description": "Event title (required).", - "type": "string" - }, - "with": { - "description": "Alias for people.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "title", - "date" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "category": { + "description": "e.g. funeral, family, work, travel. Stored as events.category and event_type.", + "type": "string" + }, + "date": { + "description": "Alias for event_date.", + "type": "string" + }, + "description": { + "type": "string" + }, + "end_date": { + "description": "Optional end date YYYY-MM-DD (all-day multi-day).", + "type": "string" + }, + "end_time": { + "description": "Optional end time (same formats as event_time).", + "type": "string" + }, + "event_date": { + "description": "Start date YYYY-MM-DD. Alias: date.", + "type": "string" + }, + "event_time": { + "description": "Optional start time: 8pm, 20:00, or 20:00:00. Alias: time.", + "type": "string" + }, + "external_url": { + "type": "string" + }, + "idempotency_key": { + "description": "Optional client key (max 128 chars). Retries with the same key return the original result instead of creating a duplicate. If omitted, Dayze fingerprints args for ~15 minutes.", + "type": "string" + }, + "image_url": { + "description": "Optional cover image URL for Explore + /e share cards.", + "type": "string" + }, + "location": { + "type": "string" + }, + "people": { + "description": "People names or person UUIDs to tag (event_people role=with).", + "items": { + "type": "string" + }, + "type": "array" + }, + "people_names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "person_ids": { + "description": "Owned person UUIDs to tag (user-scoped).", + "items": { + "type": "string" + }, + "type": "array" + }, + "person_name": { + "type": "string" + }, + "request_id": { + "description": "Alias for idempotency_key (preferred by some clients).", + "type": "string" + }, + "share_with": { + "description": "Dayze profile handles to add as collaborators via shared_events (e.g. [\"boof\"]). Leading @ stripped.", + "items": { + "type": "string" + }, + "type": "array" + }, + "time": { + "description": "Alias for event_time.", + "type": "string" + }, + "timezone": { + "description": "IANA timezone for wall-clock display (e.g. America/New_York).", + "type": "string" + }, + "title": { + "description": "Event title (required).", + "type": "string" + }, + "visibility": { + "description": "Calendar visibility. public → appears on /explore and gets share_url https://dayze.com/e/{id}. Default private.", + "enum": [ + "private", + "friends", + "public" + ], + "type": "string" + }, + "with": { + "description": "Alias for people.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "title", + "event_date" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "category": { + "description": "e.g. funeral, family, work, travel. Stored as events.category and event_type.", + "type": "string" + }, + "date": { + "description": "Alias for event_date.", + "type": "string" + }, + "description": { + "type": "string" + }, + "end_date": { + "description": "Optional end date YYYY-MM-DD (all-day multi-day).", + "type": "string" + }, + "end_time": { + "description": "Optional end time (same formats as event_time).", + "type": "string" + }, + "event_date": { + "description": "Start date YYYY-MM-DD. Alias: date.", + "type": "string" + }, + "event_time": { + "description": "Optional start time: 8pm, 20:00, or 20:00:00. Alias: time.", + "type": "string" + }, + "external_url": { + "type": "string" + }, + "idempotency_key": { + "description": "Optional client key (max 128 chars). Retries with the same key return the original result instead of creating a duplicate. If omitted, Dayze fingerprints args for ~15 minutes.", + "type": "string" + }, + "image_url": { + "description": "Optional cover image URL for Explore + /e share cards.", + "type": "string" + }, + "location": { + "type": "string" + }, + "people": { + "description": "People names or person UUIDs to tag (event_people role=with).", + "items": { + "type": "string" + }, + "type": "array" + }, + "people_names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "person_ids": { + "description": "Owned person UUIDs to tag (user-scoped).", + "items": { + "type": "string" + }, + "type": "array" + }, + "person_name": { + "type": "string" + }, + "request_id": { + "description": "Alias for idempotency_key (preferred by some clients).", + "type": "string" + }, + "share_with": { + "description": "Dayze profile handles to add as collaborators via shared_events (e.g. [\"boof\"]). Leading @ stripped.", + "items": { + "type": "string" + }, + "type": "array" + }, + "time": { + "description": "Alias for event_time.", + "type": "string" + }, + "timezone": { + "description": "IANA timezone for wall-clock display (e.g. America/New_York).", + "type": "string" + }, + "title": { + "description": "Event title (required).", + "type": "string" + }, + "visibility": { + "description": "Calendar visibility. public → appears on /explore and gets share_url https://dayze.com/e/{id}. Default private.", + "enum": [ + "private", + "friends", + "public" + ], + "type": "string" + }, + "with": { + "description": "Alias for people.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "title", + "date" + ], + "type": "object" + } +]
7 tool updates
- Changed
attach_asset1 field changed- changed
Input schema / properties / role / enumPrevious value: -[ - "original", - "processed", - "thumbnail", - "cover", - "document", - "receipt", - "certificate", - "other" -]New value: +[ + "original", + "processed", + "thumbnail", + "cover", + "document", + "receipt", + "certificate", + "photo", + "other" +]
- Changed
get_trackers2 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +true - added
Output schema / properties / noteAdded value: +{ + "type": "string" +}
- Added
reset_tracker - Changed
update_asset1 field changed- changed
Input schema / properties / role / enumPrevious value: -[ - "original", - "processed", - "thumbnail", - "cover", - "document", - "receipt", - "certificate", - "other" -]New value: +[ + "original", + "processed", + "thumbnail", + "cover", + "document", + "receipt", + "certificate", + "photo", + "other" +]
- Changed
update_expense4 fields changed- added
Input schema / properties / currencyAdded value: +{ + "type": "string" +} - added
Input schema / properties / descriptionAdded value: +{ + "type": "string" +} - added
Input schema / properties / payment_methodAdded value: +{ + "description": "e.g. venmo, cash, card", + "type": "string" +} - added
Input schema / properties / sourceAdded value: +{ + "description": "Alias of payment_method", + "type": "string" +}
- Changed
update_food2 fields changed- added
Input schema / properties / append_notesAdded value: +{ + "description": "Append text to existing notes (newline-separated)", + "type": "string" +} - added
Input schema / properties / payment_methodAdded value: +{ + "description": "Alias of paid_by for expense-style agents", + "type": "string" +}
- Changed
upload_asset1 field changed- changed
Input schema / properties / role / enumPrevious value: -[ - "original", - "processed", - "thumbnail", - "cover", - "document", - "receipt", - "certificate", - "other" -]New value: +[ + "original", + "processed", + "thumbnail", + "cover", + "document", + "receipt", + "certificate", + "photo", + "other" +]
2 tool updates
- Added
log_income - Changed
log_transaction1 field changed- added
Input schema / properties / payment_methodAdded value: +{ + "type": "string" +}
4 tool updates
- Added
get_sleep - Added
get_sleep_summary - Added
log_sleep - Added
update_sleep
36 tool updates
- Changed
add_inventory_item2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
add_inventory_valuation2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
archive_asset2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
archive_inventory_item2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
attach_asset2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Added
bulk_dismiss_clarifications - Changed
create_person2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
delete_event2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
delete_food2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Added
dismiss_clarification - Added
get_entity_links - Changed
get_events2 fields changed- added
Input schema / properties / include_calendar_blocksAdded value: +{ + "description": "Include Focus Time / calendar_block rows (default false)", + "type": "boolean" +} - added
Input schema / properties / kindsAdded value: +{ + "description": "Filter event_kind e.g. [\"life_event\",\"todo\"]", + "items": { + "type": "string" + }, + "type": "array" +}
- Added
get_person_connections - Added
link_entities - Changed
link_inventory_person2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Added
link_people - Changed
list_clarifications1 field changed- added
Input schema / properties / auto_cleanupAdded value: +{ + "description": "Auto-dismiss non-person / auto-link existing (default true)", + "type": "boolean" +}
- Changed
log_event1 field changed- changed
Input schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "category": { - "description": "e.g. funeral, family, work, travel. Stored as events.category and event_type.", - "type": "string" - }, - "date": { - "description": "Alias for event_date.", - "type": "string" - }, - "description": { - "type": "string" - }, - "end_date": { - "description": "Optional end date YYYY-MM-DD (all-day multi-day).", - "type": "string" - }, - "end_time": { - "description": "Optional end time (same formats as event_time).", - "type": "string" - }, - "event_date": { - "description": "Start date YYYY-MM-DD. Alias: date.", - "type": "string" - }, - "event_time": { - "description": "Optional start time: 8pm, 20:00, or 20:00:00. Alias: time.", - "type": "string" - }, - "external_url": { - "type": "string" - }, - "idempotency_key": { - "description": "Optional client key (max 128 chars). Retries with the same key return the original result instead of creating a duplicate. If omitted, Dayze fingerprints args for ~15 minutes.", - "type": "string" - }, - "location": { - "type": "string" - }, - "people": { - "description": "People names or person UUIDs to tag (event_people role=with).", - "items": { - "type": "string" - }, - "type": "array" - }, - "people_names": { - "items": { - "type": "string" - }, - "type": "array" - }, - "person_ids": { - "description": "Owned person UUIDs to tag (user-scoped).", - "items": { - "type": "string" - }, - "type": "array" - }, - "person_name": { - "type": "string" - }, - "time": { - "description": "Alias for event_time.", - "type": "string" - }, - "title": { - "description": "Event title (required).", - "type": "string" - }, - "with": { - "description": "Alias for people.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "title", - "event_date" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "category": { - "description": "e.g. funeral, family, work, travel. Stored as events.category and event_type.", - "type": "string" - }, - "date": { - "description": "Alias for event_date.", - "type": "string" - }, - "description": { - "type": "string" - }, - "end_date": { - "description": "Optional end date YYYY-MM-DD (all-day multi-day).", - "type": "string" - }, - "end_time": { - "description": "Optional end time (same formats as event_time).", - "type": "string" - }, - "event_date": { - "description": "Start date YYYY-MM-DD. Alias: date.", - "type": "string" - }, - "event_time": { - "description": "Optional start time: 8pm, 20:00, or 20:00:00. Alias: time.", - "type": "string" - }, - "external_url": { - "type": "string" - }, - "idempotency_key": { - "description": "Optional client key (max 128 chars). Retries with the same key return the original result instead of creating a duplicate. If omitted, Dayze fingerprints args for ~15 minutes.", - "type": "string" - }, - "location": { - "type": "string" - }, - "people": { - "description": "People names or person UUIDs to tag (event_people role=with).", - "items": { - "type": "string" - }, - "type": "array" - }, - "people_names": { - "items": { - "type": "string" - }, - "type": "array" - }, - "person_ids": { - "description": "Owned person UUIDs to tag (user-scoped).", - "items": { - "type": "string" - }, - "type": "array" - }, - "person_name": { - "type": "string" - }, - "time": { - "description": "Alias for event_time.", - "type": "string" - }, - "title": { - "description": "Event title (required).", - "type": "string" - }, - "with": { - "description": "Alias for people.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "title", - "date" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "category": { + "description": "e.g. funeral, family, work, travel. Stored as events.category and event_type.", + "type": "string" + }, + "date": { + "description": "Alias for event_date.", + "type": "string" + }, + "description": { + "type": "string" + }, + "end_date": { + "description": "Optional end date YYYY-MM-DD (all-day multi-day).", + "type": "string" + }, + "end_time": { + "description": "Optional end time (same formats as event_time).", + "type": "string" + }, + "event_date": { + "description": "Start date YYYY-MM-DD. Alias: date.", + "type": "string" + }, + "event_time": { + "description": "Optional start time: 8pm, 20:00, or 20:00:00. Alias: time.", + "type": "string" + }, + "external_url": { + "type": "string" + }, + "idempotency_key": { + "description": "Optional client key (max 128 chars). Retries with the same key return the original result instead of creating a duplicate. If omitted, Dayze fingerprints args for ~15 minutes.", + "type": "string" + }, + "location": { + "type": "string" + }, + "people": { + "description": "People names or person UUIDs to tag (event_people role=with).", + "items": { + "type": "string" + }, + "type": "array" + }, + "people_names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "person_ids": { + "description": "Owned person UUIDs to tag (user-scoped).", + "items": { + "type": "string" + }, + "type": "array" + }, + "person_name": { + "type": "string" + }, + "request_id": { + "description": "Alias for idempotency_key (preferred by some clients).", + "type": "string" + }, + "time": { + "description": "Alias for event_time.", + "type": "string" + }, + "title": { + "description": "Event title (required).", + "type": "string" + }, + "with": { + "description": "Alias for people.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "title", + "event_date" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "category": { + "description": "e.g. funeral, family, work, travel. Stored as events.category and event_type.", + "type": "string" + }, + "date": { + "description": "Alias for event_date.", + "type": "string" + }, + "description": { + "type": "string" + }, + "end_date": { + "description": "Optional end date YYYY-MM-DD (all-day multi-day).", + "type": "string" + }, + "end_time": { + "description": "Optional end time (same formats as event_time).", + "type": "string" + }, + "event_date": { + "description": "Start date YYYY-MM-DD. Alias: date.", + "type": "string" + }, + "event_time": { + "description": "Optional start time: 8pm, 20:00, or 20:00:00. Alias: time.", + "type": "string" + }, + "external_url": { + "type": "string" + }, + "idempotency_key": { + "description": "Optional client key (max 128 chars). Retries with the same key return the original result instead of creating a duplicate. If omitted, Dayze fingerprints args for ~15 minutes.", + "type": "string" + }, + "location": { + "type": "string" + }, + "people": { + "description": "People names or person UUIDs to tag (event_people role=with).", + "items": { + "type": "string" + }, + "type": "array" + }, + "people_names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "person_ids": { + "description": "Owned person UUIDs to tag (user-scoped).", + "items": { + "type": "string" + }, + "type": "array" + }, + "person_name": { + "type": "string" + }, + "request_id": { + "description": "Alias for idempotency_key (preferred by some clients).", + "type": "string" + }, + "time": { + "description": "Alias for event_time.", + "type": "string" + }, + "title": { + "description": "Event title (required).", + "type": "string" + }, + "with": { + "description": "Alias for people.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "title", + "date" + ], + "type": "object" + } +]
- Changed
log_expense2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
log_favorite_song2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
log_food2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
log_transaction2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
merge_people2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
record_purchase2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
record_sale2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Added
resolve_clarification - Added
score_people_duplicates - Added
unlink_people - Changed
update_asset2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
update_event2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
update_expense2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
update_food2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
update_inventory_item5 fields changed- changed
Input schema / properties / category / descriptionPrevious value: -"Broad type: clothing, shoes, bags, jewelry, …"New value: +"Broad type: clothing, instruments, electronics, …" - added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +} - changed
Input schema / properties / subtype / descriptionPrevious value: -"Specific subtype (sweatshirt, jacket, T-shirt). Alias: item_type."New value: +"Specific subtype (sweatshirt, jacket, guitar). Alias: item_type." - added
Input schema / properties / subtype_confidenceAdded value: +{ + "description": "0–1 confidence when subtype is uncertain (agent_inferred).", + "type": "number" +}
- Changed
update_person2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
upload_asset2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Alias for request_id.", + "type": "string" +} - added
Input schema / properties / request_idAdded value: +{ + "description": "Client idempotency key (retries return original result).", + "type": "string" +}
- Changed
upload_photo1 field changed- changed
Input schema / anyOfPrevious value: -[ - { - "additionalProperties": true, - "properties": { - "content_type": { - "type": "string" - }, - "description": { - "type": "string" - }, - "entity_id": { - "type": "string" - }, - "entity_type": { - "type": "string" - }, - "image_base64": { - "description": "Base64 image bytes (optional data: URL prefix).", - "type": "string" - }, - "set_as_avatar": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "url": { - "description": "Remote image URL to fetch and store.", - "type": "string" - } - }, - "required": [ - "entity_type", - "entity_id", - "image_base64" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "content_type": { - "type": "string" - }, - "description": { - "type": "string" - }, - "entity_id": { - "type": "string" - }, - "entity_type": { - "type": "string" - }, - "image_base64": { - "description": "Base64 image bytes (optional data: URL prefix).", - "type": "string" - }, - "set_as_avatar": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "url": { - "description": "Remote image URL to fetch and store.", - "type": "string" - } - }, - "required": [ - "entity_type", - "entity_id", - "url" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": true, + "properties": { + "content_type": { + "type": "string" + }, + "description": { + "type": "string" + }, + "entity_id": { + "type": "string" + }, + "entity_type": { + "type": "string" + }, + "idempotency_key": { + "description": "Alias for request_id.", + "type": "string" + }, + "image_base64": { + "description": "Base64 image bytes (optional data: URL prefix).", + "type": "string" + }, + "request_id": { + "description": "Client idempotency key (retries return original result).", + "type": "string" + }, + "set_as_avatar": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "url": { + "description": "Remote image URL to fetch and store.", + "type": "string" + } + }, + "required": [ + "entity_type", + "entity_id", + "image_base64" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "content_type": { + "type": "string" + }, + "description": { + "type": "string" + }, + "entity_id": { + "type": "string" + }, + "entity_type": { + "type": "string" + }, + "idempotency_key": { + "description": "Alias for request_id.", + "type": "string" + }, + "image_base64": { + "description": "Base64 image bytes (optional data: URL prefix).", + "type": "string" + }, + "request_id": { + "description": "Client idempotency key (retries return original result).", + "type": "string" + }, + "set_as_avatar": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "url": { + "description": "Remote image URL to fetch and store.", + "type": "string" + } + }, + "required": [ + "entity_type", + "entity_id", + "url" + ], + "type": "object" + } +]
1 tool update
- Changed
update_inventory_item5 fields changed- added
Input schema / properties / category / descriptionAdded value: +"Broad type: clothing, shoes, bags, jewelry, …" - added
Input schema / properties / item_typeAdded value: +{ + "description": "Alias for subtype.", + "type": "string" +} - added
Input schema / properties / name / descriptionAdded value: +"What the user naturally calls the item." - added
Input schema / properties / subtypeAdded value: +{ + "description": "Specific subtype (sweatshirt, jacket, T-shirt). Alias: item_type.", + "type": "string" +} - added
Input schema / properties / tagsAdded value: +{ + "description": "Replace tags array (sanitized against category mismatches).", + "items": { + "type": "string" + }, + "type": "array" +}
1 tool update
- Changed
log_event1 field changed- changed
Input schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "category": { - "description": "e.g. funeral, family, work, travel. Stored as events.category and event_type.", - "type": "string" - }, - "date": { - "description": "Alias for event_date.", - "type": "string" - }, - "description": { - "type": "string" - }, - "end_date": { - "description": "Optional end date YYYY-MM-DD (all-day multi-day).", - "type": "string" - }, - "end_time": { - "description": "Optional end time (same formats as event_time).", - "type": "string" - }, - "event_date": { - "description": "Start date YYYY-MM-DD. Alias: date.", - "type": "string" - }, - "event_time": { - "description": "Optional start time: 8pm, 20:00, or 20:00:00. Alias: time.", - "type": "string" - }, - "external_url": { - "type": "string" - }, - "location": { - "type": "string" - }, - "people": { - "description": "People names or person UUIDs to tag (event_people role=with).", - "items": { - "type": "string" - }, - "type": "array" - }, - "people_names": { - "items": { - "type": "string" - }, - "type": "array" - }, - "person_ids": { - "description": "Owned person UUIDs to tag (user-scoped).", - "items": { - "type": "string" - }, - "type": "array" - }, - "person_name": { - "type": "string" - }, - "time": { - "description": "Alias for event_time.", - "type": "string" - }, - "title": { - "description": "Event title (required).", - "type": "string" - }, - "with": { - "description": "Alias for people.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "title", - "event_date" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "category": { - "description": "e.g. funeral, family, work, travel. Stored as events.category and event_type.", - "type": "string" - }, - "date": { - "description": "Alias for event_date.", - "type": "string" - }, - "description": { - "type": "string" - }, - "end_date": { - "description": "Optional end date YYYY-MM-DD (all-day multi-day).", - "type": "string" - }, - "end_time": { - "description": "Optional end time (same formats as event_time).", - "type": "string" - }, - "event_date": { - "description": "Start date YYYY-MM-DD. Alias: date.", - "type": "string" - }, - "event_time": { - "description": "Optional start time: 8pm, 20:00, or 20:00:00. Alias: time.", - "type": "string" - }, - "external_url": { - "type": "string" - }, - "location": { - "type": "string" - }, - "people": { - "description": "People names or person UUIDs to tag (event_people role=with).", - "items": { - "type": "string" - }, - "type": "array" - }, - "people_names": { - "items": { - "type": "string" - }, - "type": "array" - }, - "person_ids": { - "description": "Owned person UUIDs to tag (user-scoped).", - "items": { - "type": "string" - }, - "type": "array" - }, - "person_name": { - "type": "string" - }, - "time": { - "description": "Alias for event_time.", - "type": "string" - }, - "title": { - "description": "Event title (required).", - "type": "string" - }, - "with": { - "description": "Alias for people.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "title", - "date" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "category": { + "description": "e.g. funeral, family, work, travel. Stored as events.category and event_type.", + "type": "string" + }, + "date": { + "description": "Alias for event_date.", + "type": "string" + }, + "description": { + "type": "string" + }, + "end_date": { + "description": "Optional end date YYYY-MM-DD (all-day multi-day).", + "type": "string" + }, + "end_time": { + "description": "Optional end time (same formats as event_time).", + "type": "string" + }, + "event_date": { + "description": "Start date YYYY-MM-DD. Alias: date.", + "type": "string" + }, + "event_time": { + "description": "Optional start time: 8pm, 20:00, or 20:00:00. Alias: time.", + "type": "string" + }, + "external_url": { + "type": "string" + }, + "idempotency_key": { + "description": "Optional client key (max 128 chars). Retries with the same key return the original result instead of creating a duplicate. If omitted, Dayze fingerprints args for ~15 minutes.", + "type": "string" + }, + "location": { + "type": "string" + }, + "people": { + "description": "People names or person UUIDs to tag (event_people role=with).", + "items": { + "type": "string" + }, + "type": "array" + }, + "people_names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "person_ids": { + "description": "Owned person UUIDs to tag (user-scoped).", + "items": { + "type": "string" + }, + "type": "array" + }, + "person_name": { + "type": "string" + }, + "time": { + "description": "Alias for event_time.", + "type": "string" + }, + "title": { + "description": "Event title (required).", + "type": "string" + }, + "with": { + "description": "Alias for people.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "title", + "event_date" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "category": { + "description": "e.g. funeral, family, work, travel. Stored as events.category and event_type.", + "type": "string" + }, + "date": { + "description": "Alias for event_date.", + "type": "string" + }, + "description": { + "type": "string" + }, + "end_date": { + "description": "Optional end date YYYY-MM-DD (all-day multi-day).", + "type": "string" + }, + "end_time": { + "description": "Optional end time (same formats as event_time).", + "type": "string" + }, + "event_date": { + "description": "Start date YYYY-MM-DD. Alias: date.", + "type": "string" + }, + "event_time": { + "description": "Optional start time: 8pm, 20:00, or 20:00:00. Alias: time.", + "type": "string" + }, + "external_url": { + "type": "string" + }, + "idempotency_key": { + "description": "Optional client key (max 128 chars). Retries with the same key return the original result instead of creating a duplicate. If omitted, Dayze fingerprints args for ~15 minutes.", + "type": "string" + }, + "location": { + "type": "string" + }, + "people": { + "description": "People names or person UUIDs to tag (event_people role=with).", + "items": { + "type": "string" + }, + "type": "array" + }, + "people_names": { + "items": { + "type": "string" + }, + "type": "array" + }, + "person_ids": { + "description": "Owned person UUIDs to tag (user-scoped).", + "items": { + "type": "string" + }, + "type": "array" + }, + "person_name": { + "type": "string" + }, + "time": { + "description": "Alias for event_time.", + "type": "string" + }, + "title": { + "description": "Event title (required).", + "type": "string" + }, + "with": { + "description": "Alias for people.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "title", + "date" + ], + "type": "object" + } +]
1 tool update
- Changed
upload_photo3 fields changed- added
Output schema / properties / assetAdded value: +{ + "additionalProperties": true, + "type": "object" +} - added
Output schema / properties / asset_idAdded value: +{ + "type": "string" +} - added
Output schema / properties / avatar_updatedAdded value: +{ + "type": "boolean" +}
Related MCP Connectors
Universal Language briefings, FusionGirl context JSONs, service catalog, agent info. x402-enabled.
x402-paid tools: EU company & sanctions data, web search, LLM chat, crypto intel, x402 monitoring.
x402 LLM proxy + data-enriched analysis (17 sources) + TimesFM predictive IoT intelligence.
Compact, citation-verifiable public web context for AI agents, paid per use with x402.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceProvides a unified context layer for AI agents, enabling ranked search, file management, context bundles, database queries, and connected source access through MCP, all scoped to organizational permissions with citations.-
- AlicenseNot gradedqualityCmaintenanceEnables read-only access to Pocket Agent's product information, public persona templates, and app catalog. No authentication required.521MIT
- AlicenseNot gradedqualityDmaintenanceQuery ontological research briefings, Universal Language frameworks, and structured AI context documents through 4 MCP tools — including an 8-document Context JSON library sourced from the FusionGirl wiki. Supports x402 micropayments on Base and serves an A2A agent card for inter-agent discovery.MIT
- FlicenseNot gradedqualityBmaintenanceCompiles and routes context from trust-domain sources (session, workdir, knowledge, shared) into unified, trust-tagged context envelopes for agents, without storing any data itself.-
Glama MCP Gateway
Add one secure layer between your agents and this server.